今天好好学习了吗
写在前面:做题的时候总是需要些提示才做的出来,反省一下感觉是因为整个知识框架很乱,指哪打哪。所以还是打算用博客整理,一方面用这样的仪式感督促自己,另一方面方便后期搜索整理。开始吧!
1.SSTI注入
【护网杯2018】-攻防世界web-高手进阶区-easytornado
-
思路
-
url形如
http://159.138.137.79:55925/file?filename=/welcome.txt&filehash=bfa0e94f85fe24936b59f8e75a2c8bb8,既然说了flag在/fllllllllllllag,那前半部分就有了。 -
filehash计算方法:
md5(cookie_secret+md5(filename)),问题就是要拿到cookie_secret。 -
tornado render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页,如果用户对render内容可控,不仅可以注入XSS代码,而且还可以通过{{}}进行传递变量和执行简单的表达式。
-
-
GOGOGO
-
尝试直接输入/fllllllllllllag返回error,修改error的msg值为
{{2}},返回2,修改msg值为{{2*3}},返回orz,说明操作符被过滤。 -
现在要拿到tornado中的cookie,用的就是
handler.settings对象,handler 指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所有handler.settings就指向RequestHandler.application.settings了。传递error?msg={{handler.settings}},得到cookie_secret为84cfe5dc-0065-4cf6-83a7-e574a2210e8c。 -
/fllllllllllllag的MD5值:3bf9f6cf685a6dd8defadabfb41a03a1(取32位!!) https://md5jiami.51240.com/
-
-
坑
- url中的filename是
/fllllllllllllag不是/fllllllllllllag.txt
- url中的filename是
2.php弱类型比较
【XCTF 4th-QCTF-2018】-攻防世界web-高手进阶区-lottery
-
思路
- 感觉这题有点问题啊,直接把源码给出来了。
- 重点就是一个php中==是弱类型比较,if(true == 任何非零的数字) 会返回 true。 构造
payload = [true,true,true,true,true,true,true]即可中彩票!
-
坑
- 刚开始想的是源码中产生随机数的函数
openssl_random_pseudo_bytes有没有可能预测,被自己幼稚的想法逗笑了kk - 如果不给源码的话,御剑扫描目录,可以发现robots.txt【存放于网站根目录下的ASCII编码的文本文件】。提供线索
/.git/,进入.git/目录,用神器 GitHack 下载文件。
- 刚开始想的是源码中产生随机数的函数

浙公网安备 33010602011771号