Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

护网杯总结

0
0

题目是xor?

下载下来之后是一串字符串

AAoHAR0jJ1AlVVEkU1BUVCAlIlFTUVUiUFRTVFVeU1FXUCVUJxs=

题目的思维是异或

这个靠点脑洞,经过多次尝试发现了

这里是考爆破,我就写了个脚本爆破了一下

主要思维就是先解base64然后再爆破异或的内容

因为解base64有不可见字符,所以写脚本好一点

import base64 task="AAoHAR0jJ1AlVVEkU1BUVCAlIlFTUVUiUFRTVFVeU1FXUCVUJxs=" s="" c="" a=base64.b64decode(task) for k in range(0,200): for i in a: c= (ord(i)^k) s=s+chr(c) print s

最后发现了flag

flag{EA6C37B5622FCD7573D6252385716C2A}

WEB easy tornado

首先我们注意到

http://49.4.79.129:30452/error?msg=error

msg这里可以改内容会输出在屏幕上,当时只知道这一点

可以写个脚本测试过滤内容

import requests import re r=requests.get("http://49.4.79.129:30452/error?msg=OrzOrz") for i in range(32,126): url="http://49.4.79.129:30452/error?msg="+chr(i) r=requests.get(url) if (re.findall(r.content,'Orz')!=[]): print chr(i)
护网杯总结

测出来过滤掉了这些东西

当时卡在这里就没有思路了

不知道怎么构造 md5(cookie_secret + md5(filename)) 赛后看WP才知道这里这个

这是个Tornado框架的注入, 参考文档

所以payload为

http://49.4.79.129:30452/error?msg={{handler.settings}}

得到了cookie_secret就可以构造签名读取flag了

ltshop

登入账户后我们发现只有20¥

但是

这里条件竞争可以多买辣条


护网杯总结

当时试过溢出但是不知道溢出点在哪里参考了WP之后才明白了溢出的方式

这个有点像逻辑漏洞里面的,真的蛮有意思的题

溢出的总结

下面考虑溢出:

int: 2**32-1 = 4294967295

long: 2**63 -1 = 9223372036854775807

longlong: 2**64-1 = 18446744073709551615

但是要注意一点,这个题的逻辑是,numer*5 最大值>

所以,其临界值应该为 18446744073709551615 / 5 == 3689348814741910323

于是尝试 3689348814741910323+1 == 3689348814741910324

溢出后的值比较小,在辣条的数量之内,从而兑换成功。

所以我们兑换3689348814741910324个大辣条即为溢出点

可得到flag

总结

这次护网杯的题目质量算是蛮好的,WEB的思路为不全是脑洞,涉及到了很多细的知识点。在做CTF过程中,以后不要老局限于以前会的攻击方式,应该去看看一些平时不是经常接触的内容,发现新的内容应该勇于尝试,如tornado这个题,就需要快速学习能力,去看看开发手册,抓重点,WEB题在做的时候应该要多百度多google多看看文档,不要死磕在瞎测试。


Viewing all articles
Browse latest Browse all 12749