我好菜啊,好多题都妹写出来,可能我害妹入门吧
ISCC简介:(复制粘贴来的)
信息安全已涉及到国家政治、经济、文化、社会和生态文明的建设,信息系统越发展到它的高级阶段,人们对其依赖性就越强,从某种程度上讲其越容易遭受攻击,遭受攻击的后果越严重。“网络安全和信息化是一体之两翼、驱动之双轮。没有网络安全就没有国家安全。”信息是社会发展的重要战略资源,国际上围绕信息的获取、使用和控制的斗争愈演愈烈,信息安全保障能力是综合国力、经济竞争实力和生存能力的重要组成部分,是世纪之交世界各国奋力攀登的至高点。
信息安全与对抗技术竞赛(ISCC:Information Security and Countermeasures Contest),于2004年首次举办(国内第一),2020年为第17届。2019年竞赛的注册人数近7000 人,参加竞赛的院校数1000 多所,ISCC竞赛的影响广泛且深远。竞赛不断追求“更高、更快、更强”,持续培养高素质信息安全对抗专业人才。
摘自官网: ISCC
Content:
有些题目妹写出来,(我好菜啊)
有些题目写了,但是环境妹有了复现不了......
所以就只能挑一些能复现的题目写wp了
MISC
签到题:
大水题,就是没看懂flag,后面发现还一层维吉尼亚加密......试了无数次错误的flag
签到 high
签到 high
题目说明忘记截图了......比赛平台关闭了呜呜呜,大概就是一个看JOJO的出题人在口嗨,也没啥有用的信息
文件名:high,第一反应:修改高度
Winhex修改IHDR 中的数据,将第三个字节的值改大一点即可
这里随便一个编辑器就行,不一定要Winhex
这里随便一个编辑器就行,不一定要Winhex
看到“flag”
看到“flag”
你以为你看到flag了,实际上不是
交了无数遍,怀疑自己敲错了,后面试试是暴力破解flag,康康能不能破解出可用信息......
最后发现是维吉尼亚加密,密钥是文件名:high(此时已经暴打出题人无数次
ISCC{W3lcome_to_Mi5C_Wryyy}
ISCC成绩查询-1
binwalk 一遍啥事没有,Stegesolve 跑一波
看到一个欧拉图?(大概
LSB分析,看到欧拉图
LSB分析,看到欧拉图
解出欧拉回路,找到可行解
做出欧拉回路
做出欧拉回路
得到 TRLNCHHAFCIEEIEEPR
做栅栏解密,做到三栏的时候得到可读字符串,解出flag
flag{THERAILFENCECIPHER}
寻找小明1
题目提示:最低位的背影
最低位的背影
最低位的背影
直接LSB,找到一个二维码
找到二维码
找到二维码
扫描进入一个站点,唯一有用的信息就是一串数组
[257,1,258,2,259,3,260,4,261,5,262,7,263,8,259,277,438,300,455,319,25,300,456,400,66,366,78,300,421,259,452,23]
这个形式大概是坐标了,用python的PIL绘图
from PIL import Image
img=Image.open("a.png")
img_array=img.load()
a = [257,1,
258,2,
259,3,
260,4,
261,5,
262,7,
263,8,
259,277,
438,300,
455,319,
25,300,
456,400,
66,366,
78,300,
421,259,
452,23]
ret = ""
for i in range(len(a)/2):
b = img_array[a[i*2],a[i*2+1]]
print(b,chr(b[0]),chr(b[1]),chr(b[2]))
ret =ret+chr(b[0])
print ret
得到RGB,RGB的R再转换成chr,得到flag:flag{ISCC*funny}
锟斤拷
毒瘤题,MISC硬生生打成RE (学弟出的题,向后辈致敬
锟斤拷
锟斤拷
首先看到 garbled-char.png 这个图像,“锟斤拷”三个大字,明显指出了这道题与编码有关, 更具体点应该是 gbk 与 unicode 。 然后MISC常用解法,先 binwork 一把梭,发现有东西,直接foremost 出来
binwalk
binwalk
得到文件,但是flag有密码
得到文件,但是flag有密码
首先看看 pwd.txt,发现用默认的 utf-8 编码无法打开,想想之前的“锟斤拷”,试着用 gbk 编码打开,得到下列字符串:
佛曰:梵除他罰耨離滅他侄亦梵倒瑟俱集怯羯麼諳殿瑟梵摩奢真冥般南得呐礙楞諳伽悉呼怯悉俱知。呐至呐娑俱數舍道哆想摩諳等怖冥依皤盧皤心礙隸呐曳怯無藐。怖奢離那
直接佛与论禅 跑一波
把字符串当作密码输入,不正确,还差了点,继续从剩下的文件找线索。 useful 文件像是一个程序,但无法运行,先放在一边。 information.txt 的第一行写了“for useful”,解读了这个文件,或许就能让 useful 运行了。
看剩下七行,第一个字符总是 g,b,k 中的一个,第二个字符是 1-7,之前又说与 gbk 有关, 似乎可以给行排个序? 按照感觉比较合理的顺序排个序,例如:g1,b2,k3,g4,b5,k6,g7。
继续看每行后面的内容,似曾相似,似乎是经典的凯撒密码,每行格式相似,而且既有数字也有小写字母,数字也比较连续,看样子数字和小写字母是分开使用交换加密的, 循环应该分别是 10 和 26,但是偏移量是多少呢?(此处省略脑部过程) 继续想到 gbk 和 unicode ………… u n i c o d e,一共是 7 个,g b k g b k g 也一共 7 个, 是不是从 g b k g b k g --> u n i c o d e 呢?字符对应的差值就是每一行对应相应的偏移 量?赶紧写份代码试试…… 运行后果然得到了下面的结果:
看样子是对 useful 异或加密了,而且还是分段的,写出解密程序,对 useful 进行解密。 用 file 命令判断下文件类型,果然是 ELF 文件。
拖到 ida 里面,发现函数很少,感觉被加了壳,继续分析,发现是简单的 upx 壳,直接脱壳即可。
脱完壳继续拖到 ida 里面,找到 main 函数,打开 graph 视图,发现逻辑很复杂,不像一般 的程序,比较像虚拟机之类的程序。
打开字符串窗口,看下是否有一些信息,发现了大量 Py 相关的字符串,有一条明确指出为 Python VM,看样子是 Python 虚拟机没错了,应该是 Python 脚本的包装器。
最常用的无疑就是 Pyinstaller 了,通过 pyi-bootloader-ignore-signals 等字符串也说明了是 该 ELF 是 Pyinstaller 打的包,开始反编译吧。 查找资料发现,有一款叫 pyinstxtractor 的开源程序可以反编译 Pyinstaller 打包程序,为了 防止一些奇奇怪怪的事情发生,我们直接到 github 上找最新的程序源码。 实验后发现 pyinstxtractor 只能解包 exe,不能解包 ELF……先放在一旁吧…… 继续查阅资料,发现 PyInstaller 自带 pyi-archive_viewer 这样一款工具,可以去提取可执行 文件中(当然包括 ELF)的 py 代码,有戏! 根据文档,我们可以把 pyc 文件 dump 出来,这不就相当于得到源码了吗! 用 pyi-archive_viewer 很简单就找到了 useful 这个 pyc 文件,同时发现了 cpython36 等字 样,说明该文件是在 python3.6 下用 PyInstaller 打包的。 现在 dump 到 pyc 文件,开始反编译吧。
反编译时工具很多,这里使用 uncompyle6。 但却发现出错了,有什么问题吗? 继续查阅资料,发现 PyInstaller 在打包.pyc 时,会把.pyc 的 magic 和时间戳+大小参数去 掉,而且各个版本所占字节数不同,同时用 pyi-archive_viewer dump 时并不会自动还原, 只好自己修复,时间戳+大小参数可以随意(可以用 00 填充),但 magic 应该怎么获取? Python 3.6 在 pyc 文件头该增加什么?回想起之前好像有个开源的 pyinstxtractor,而 Pyinstaller 在不同平台用的打包方式应该很相似,可以通过源码学习一下。 通过研究 pyinstxtractor 源码,我们知道了 pyc 缺失的部分的格式。 magic 可以使用对应版本的 python 获得,而 python 3.6 的 magic 后面还需要 8 个字节(时 间戳+大小参数),下载 Python 3.6,获得四个字节的 magic,故 pyc 一共缺失 12 个字节。
我们得到了 pyc 缺失的部分,手动用 hex 编辑器补上。
然后用 uncompyle6 反编译,得到 py 源码。