CTF 网鼎杯第一场WriteUP

网鼎杯第一场WriteUP—-china H.L.B 团队

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

From:Print

本文由 孤独常伴 作者:孤独常伴 发表,其版权均为 孤独常伴 所有,文章内容系作者个人观点,不代表 孤独常伴 对观点赞同或支持。如需转载,请注明文章来源。

1

发表评论