2018强网杯部分writeup

0x00 签到题
操作内容:

打开题目就看到flag

FLAG值:

flag{welcome_to_qwb}

0x01 Welcome
操作内容:

|拿到一张图片:

       2018强网杯部分writeup_第1张图片

       放进Stegsolve中,一点点偏移图片,慢慢发现有字,offset到100时就能清楚看到

2018强网杯部分writeup_第2张图片

得到flag

FLAG值:

QWB{W3lc0me}

0x02 web签到
操作内容:

感觉有些难。上来第一个md5挑战,前端提示如下:

2018强网杯部分writeup_第3张图片

发现是php弱相等漏洞,需要构造md5开头为0e的字符串,有很多,输入QNKCDZO和s878926199a,通关

之后是第二个md5挑战,前端提示如下:

2018强网杯部分writeup_第4张图片

发现是强相等,只能利用php的md5函数对于php数组的漏洞绕过,阅读前端的submit函数发现前端是利用$.post("/",{'param1':param1,'param2':param2}函数提交的表单,便可以修改submit函数来提交数组从而绕过。修改的部分如图所示:

2018强网杯部分writeup_第5张图片

构造发送包如下:

2018强网杯部分writeup_第6张图片

发送通关

最后是md5终极挑战,前端提示如下:

看了很久都没有发现漏洞,只好强行产生碰撞,md5近年来已经被发现存在碰撞,Google到碰撞字符串对提交,payload如下

param1=%D11%DD%02%C5%E6%EE%C4i%3D%9A%06%98%AF%F9%5C%2F%CA%B5%87%12F%7E%AB%40%04X%3E%B8%FB%7F%89U%AD4%06%09%F4%B3%02%83%E4%88%83%25qAZ%08Q%25%E8%F7%CD%C9%9F%D9%1D%BD%F2%807%3C%5B%D8%82%3E1V4%8F%5B%AEm%AC%D46%C9%19%C6%DDS%E2%B4%87%DA%03%FD%029c%06%D2H%CD%A0%E9%9F3B%0FW%7E%E8%CET%B6p%80%A8%0D%1E%C6%98%21%BC%B6%A8%83%93%96%F9e%2Bo%F7%2Ap¶m2=%D11%DD%02%C5%E6%EE%C4i%3D%9A%06%98%AF%F9%5C%2F%CA%B5%07%12F%7E%AB%40%04X%3E%B8%FB%7F%89U%AD4%06%09%F4%B3%02%83%E4%88%83%25%F1AZ%08Q%25%E8%F7%CD%C9%9F%D9%1D%BDr%807%3C%5B%D8%82%3E1V4%8F%5B%AEm%AC%D46%C9%19%C6%DDS%E24%87%DA%03%FD%029c%06%D2H%CD%A0%E9%9F3B%0FW%7E%E8%CET%B6p%80%28%0D%1E%C6%98%21%BC%B6%A8%83%93%96%F9e%ABo%F7%2Ap

提交即可获得flag

 

 

FLAG值:

QWB{s1gns1gns1gnaftermd5}

0x03 Simplecheck
操作内容:

将apk转换成dex2jar格式,用jd-gui打开,定位到关键函数:

 

2018强网杯部分writeup_第7张图片

 

就是解方程:a = b*x*x + c*x + d

上脚本:

2018强网杯部分writeup_第8张图片

执行后得到flag

FLAG值:

flag{MAth_i&_GOOd_DON7_90V_7hInK?}

0x03 StreamGame1
操作内容:

将压缩包下载下来之后打开发现key文件和一个python文件,用Python IDLE打开后发现Stream实现函数,flag经处理后生成若干个字节存放于key文件中,在python文件中提示了flag的长度1号、2号、4号flag的长度分别为24、25、27,去掉花括号和“flag”长度分别为17、19、21,并且由代码

 

 

可知flag中为零壹串。若爆破,求解的时间复杂度为

 

 

 

感觉可以用爆破求解!

步骤:

由于flag要达到一定的长度要求,将flag初始化为首位为1剩余位为0且与mask对齐的的N位(N=17,19,21)二进制数,然后循环处理,每次处理完毕后flag加一,将得到的结果与key中的数据一一对比,直到找到跟key中结果完全匹配的那个flag。

优化:

对比步骤优化:当比较第i个字节,若匹配,则比较下一个字节,直至结束,若不匹配、判断下一个flag是否匹配。

2018强网杯部分writeup_第9张图片

FLAG值:

flag{1110101100001101011}

0x05 StreamGame2
操作内容:

几乎与StreamGame1相同,进行了下优化:不用将所有字节对比完毕,经发现对比前三个字节得到的结果即可保证最后得到正确的结果,速度增加。

FLAG值:

flag{110111100101001101001}

0x06 StreamGame4
操作内容:

思路还是一样,进行下优化。

对比方式优化:将对比3个字节改为对比前19个bit,发现速度增加了4倍左右。

 

FLAG值:

flag{100100111010101101011}

0x07 调查问卷
操作内容:

填完调查问卷就能得到flag

FLAG值:

flag{强网杯强国梦}

 

你可能感兴趣的:(CTF)