博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

网鼎杯第一场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

 

 

 
posted @ 2018-08-21 20:41  crazy_py  阅读(...)  评论(... 编辑 收藏