今天好好学习了吗


写在前面:做题的时候总是需要些提示才做的出来,反省一下感觉是因为整个知识框架很乱,指哪打哪。所以还是打算用博客整理,一方面用这样的仪式感督促自己,另一方面方便后期搜索整理。开始吧!

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_secret84cfe5dc-0065-4cf6-83a7-e574a2210e8c

    • /fllllllllllllag的MD5值:3bf9f6cf685a6dd8defadabfb41a03a1(取32位!!) https://md5jiami.51240.com/

    • url中的filename是/fllllllllllllag不是/fllllllllllllag.txt
  • 参考资料
    python SSTI tornado render模板注入
    服务端模板注入攻击 (SSTI)之浅析

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 下载文件。
posted @ 2020-04-15 11:24  poziiey  阅读(199)  评论(0编辑  收藏  举报