web-never give up

mac2022-06-30  85

打开题目连接

?id=1 ,疑是注入点 但是输入其他数字无果

打开源码,发现注释有网页链接

 

打开连接 123.206.87.240:8006/test/1p.html

发现回到了bugku的论坛首页,应该是重定向出问题

 

观察在连接前面添加  view-source 用来查看源码

用url解码得到中间一串base64编码

1 JTIyJTNCaWYlMjglMjElMjRfR0VUJTVCJTI3aWQlMjclNUQlMjklMEElN0IlMEElMDloZWFkZXIlMjglMjdMb2NhdGlvbiUzQSUyMGhlbGxvLnBocCUzRmlkJTNEMSUyNyUyOSUzQiUwQSUwOWV4aXQlMjglMjklM0IlMEElN0QlMEElMjRpZCUzRCUyNF9HRVQlNUIlMjdpZCUyNyU1RCUzQiUwQSUyNGElM0QlMjRfR0VUJTVCJTI3YSUyNyU1RCUzQiUwQSUyNGIlM0QlMjRfR0VUJTVCJTI3YiUyNyU1RCUzQiUwQWlmJTI4c3RyaXBvcyUyOCUyNGElMkMlMjcuJTI3JTI5JTI5JTBBJTdCJTBBJTA5ZWNobyUyMCUyN25vJTIwbm8lMjBubyUyMG5vJTIwbm8lMjBubyUyMG5vJTI3JTNCJTBBJTA5cmV0dXJuJTIwJTNCJTBBJTdEJTBBJTI0ZGF0YSUyMCUzRCUyMEBmaWxlX2dldF9jb250ZW50cyUyOCUyNGElMkMlMjdyJTI3JTI5JTNCJTBBaWYlMjglMjRkYXRhJTNEJTNEJTIyYnVna3UlMjBpcyUyMGElMjBuaWNlJTIwcGxhdGVmb3JtJTIxJTIyJTIwYW5kJTIwJTI0aWQlM0QlM0QwJTIwYW5kJTIwc3RybGVuJTI4JTI0YiUyOSUzRTUlMjBhbmQlMjBlcmVnaSUyOCUyMjExMSUyMi5zdWJzdHIlMjglMjRiJTJDMCUyQzElMjklMkMlMjIxMTE0JTIyJTI5JTIwYW5kJTIwc3Vic3RyJTI4JTI0YiUyQzAlMkMxJTI5JTIxJTNENCUyOSUwQSU3QiUwQSUwOXJlcXVpcmUlMjglMjJmNGwyYTNnLnR4dCUyMiUyOSUzQiUwQSU3RCUwQWVsc2UlMEElN0IlMEElMDlwcmludCUyMCUyMm5ldmVyJTIwbmV2ZXIlMjBuZXZlciUyMGdpdmUlMjB1cCUyMCUyMSUyMSUyMSUyMiUzQiUwQSU3RCUwQSUwQSUwQSUzRiUzRQ==

 

 base64解码

1 ";if(!$_GET['id']) { header('Location: hello.php?id=1'); exit(); } $id=$_GET['id']; $a=$_GET['a']; $b=$_GET['b']; if(stripos($a,'.')) { echo 'no no no no no no no'; return ; } $data = @file_get_contents($a,'r'); if($data=="bugku is a nice plateform!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4) { require("f4l2a3g.txt"); } else { print "never never never give up !!!"; } ?>

得到一串url编码,继续解码

1 if(!$_GET['id']) 2 { 3 header('Location: hello.php?id=1'); 4 exit(); 5 } 6 $id=$_GET['id']; 7 $a=$_GET['a']; 8 $b=$_GET['b']; 9 if(stripos($a,'.')) 10 { 11 echo 'no no no no no no no'; 12 return ; 13 } 14 $data = @file_get_contents($a,'r'); 15 if($data=="bugku is a nice plateform!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4) 16 { 17 require("f4l2a3g.txt"); 18 } 19 else 20 { 21 print "never never never give up !!!"; 22 } 23 24 25 ?>

分析代码,要满足以下条件,才能得到flag

1、要使id为非空非零的变量

2、a不能包含符号 “ . ”

3、$data要传值,内容为“bugku is a nice plateform!”

4、id等于0

5、b长度大于5,且“1114”等于 “111b[0]” , 但b[0]不能为4

 

 $id可以用  .  或0e绕过(弱类型)

 $a用伪协议php://input来传值bugku is a nice plateform!

$b可以用*或?或 . 号绕过正则表达式的匹配

构造payloa  ?id=.&a=php://input&b=.12345

 

 

补充

stripos(a,b)   寻找b在a第一次出现的位置

file_get_contents()  把整个文件读入一个字符串中

strlen() 返回字符串长度

substr(start,length)    开始截断,以及截断长度

eregi()  在一个字符串搜索指定的模式的字符串。搜索不区分大小写

 

转载于:https://www.cnblogs.com/gaonuoqi/p/11376109.html

相关资源:微信小程序源码-合集4.rar
最新回复(0)