网鼎杯第一场wp
网鼎杯第一场WriteUP—-china H.L.B 团队
文章地址:https://www.o2oxy.cn/1661.html
1、签到题
回复1f5f2e进入下一关
2、Clip
下载题目是Disk 文件。第一反应是linux虚拟硬盘。
用winhex 打开如图:
在winhex中第196280 发现了png的头文件如图:
png 16进制文件头以 89504E47开头
第一张图片:
第二张图片
使用PS拼接如下如:
3. minified
用Stegsolve 打开图片
打开 Stegsolve 选择Data Extract 查看图片通道,如图,
选择0 通道发现是LSB 隐写。
分别把 alpha green 和blue 的0通道另存为 再进行异或处理 最终在alpha 和green 中发现flag
4、beijing
题目给了我们一个linux 下可执行的程序、放在虚拟机执行如下:
拖到IDA 里面进行尝试分析一下程序的逻辑、经过分析程序主要处理的两个函数、主要逻辑如下”
main 函数21次调用了encode 函数 然后将返回的结果按照字符打印如下
encode 函数按照a1 的数值进行对饮的亦或运算、返回char 类型结果
查看或部分对饮的数据段和对应的hex 数据
数据段数据hex数据
这里可以看到这段数据大部分都是可见字符、因此可以假设flag 就在这段数据中、但是顺序是被打乱的、而正确的main 函数的中的顺序
即
encode :
return flag[i]^xor[i]
main:
list[] <– 记录正确的flag打印顺序
print encode(list[i])
按照上面的理论 、可以得到如下的分组:
最后运算脚本:
python:
result=”
for i in range(0,20):
result +=flag[list[i]]
print result
Flag: flag{amazing_beijing}
5、advanced
把题目放入linux 中尝试运行了一下:
得到的数值进行ASCII 转换如下
解密得到内容使用脚本得到flag 如下:
Flag{d_with_a_template_phew}
PDF 下载:http://www.o2oxy.cn/wp-content/uploads/2018/08/China-H.L.B-网鼎杯部分WriteUp.pdf