解决文件重定向 -- BugKu24 - never give up

打开链接显示一串字符,右键查看源码,发现1p.html
在这里插入图片描述
访问 1p.html ,发现页面自动跳转到 http://www.bugku.com/
应该是有 window.location.href 之类的重定向,那就直接查看1p.html的源码,在链接前面加 view-source:

view-source:http://120.24.86.145:8006/test/1p.html

也可以写脚本输出1p.html源码:

import requests

url="http://123.206.87.240:8006/test/1p.html"
s = requests.session()
r = s.get(url)
print(r.text)

有发现!根据%3C来看Words变量应该是url编码

解码后发现 注释部分还进行了base64编码

<script>window.location.href='http://www.bugku.com';</script> 
<!--JTIyJTNCaWYlMjglMjElMjRfR0VUJTVCJTI3aWQlMjclNUQlMjklMEElN0IlMEElMDloZWFkZXIlMjglMjdMb2NhdGlvbiUzQSUyMGhlbGxvLnBocCUzRmlkJTNEMSUyNyUyOSUzQiUwQSUwOWV4aXQlMjglMjklM0IlMEElN0QlMEElMjRpZCUzRCUyNF9HRVQlNUIlMjdpZCUyNyU1RCUzQiUwQSUyNGElM0QlMjRfR0VUJTVCJTI3YSUyNyU1RCUzQiUwQSUyNGIlM0QlMjRfR0VUJTVCJTI3YiUyNyU1RCUzQiUwQWlmJTI4c3RyaXBvcyUyOCUyNGElMkMlMjcuJTI3JTI5JTI5JTBBJTdCJTBBJTA5ZWNobyUyMCUyN25vJTIwbm8lMjBubyUyMG5vJTIwbm8lMjBubyUyMG5vJTI3JTNCJTBBJTA5cmV0dXJuJTIwJTNCJTBBJTdEJTBBJTI0ZGF0YSUyMCUzRCUyMEBmaWxlX2dldF9jb250ZW50cyUyOCUyNGElMkMlMjdyJTI3JTI5JTNCJTBBaWYlMjglMjRkYXRhJTNEJTNEJTIyYnVna3UlMjBpcyUyMGElMjBuaWNlJTIwcGxhdGVmb3JtJTIxJTIyJTIwYW5kJTIwJTI0aWQlM0QlM0QwJTIwYW5kJTIwc3RybGVuJTI4JTI0YiUyOSUzRTUlMjBhbmQlMjBlcmVnaSUyOCUyMjExMSUyMi5zdWJzdHIlMjglMjRiJTJDMCUyQzElMjklMkMlMjIxMTE0JTIyJTI5JTIwYW5kJTIwc3Vic3RyJTI4JTI0YiUyQzAlMkMxJTI5JTIxJTNENCUyOSUwQSU3QiUwQSUwOXJlcXVpcmUlMjglMjJmNGwyYTNnLnR4dCUyMiUyOSUzQiUwQSU3RCUwQWVsc2UlMEElN0IlMEElMDlwcmludCUyMCUyMm5ldmVyJTIwbmV2ZXIlMjBuZXZlciUyMGdpdmUlMjB1cCUyMCUyMSUyMSUyMSUyMiUzQiUwQSU3RCUwQSUwQSUwQSUzRiUzRQ==-->

在这里插入图片描述
注意这里和题目有差别,第一次url解码之后要讲注释结尾的两个%3D%3D换成==再继续base64解码后

还有一层url编码,继续
在这里插入图片描述
注意base64解码之后需要两层url才能解码干净,所不同的是,第一层解码的时候选择"encodeURL"而第二层只需要部分url解码的时候则选择“encodeURLCompent”

终于出来了,来分析代码

  • stripos(字符串a,字符串b) 函数查找字符串b在字符串a中第一次出现的位置(不区分大小写)。
  • file_get_contents 将整个文件读入一个字符串
  • strlen() 函数返回字符串的长度
  • substr() 函数返回字符串的一部分。 substr(string,start,length) ,length参数可选。如 substr($b,0,1) 就是在参数b里面 ,从0开始返回1个长度的字符串
  • eregi(“111”.substr( b , 0 , 1 ) , " 1114 " ) " 1114 " " 111 " . s u b s t r ( b,0,1),"1114") 就是判断"1114"这个字符串里面是否有符合"111".substr( b,0,1)这个规则的

总的来说,如果a参数传入文件内有 "bugku is a nice plateform!"字符串,并且id参数为0 , b参数长度大于5,“1114"这个字符串里面是否有符合"111”.substr( b , 0 , 1 ) s u b s t r ( b,0,1)这个规则的,substr( b,0,1)不能等于4 以上这些条件都满足,就请求 f4l2a3g.txt

这么麻烦,那就先试试能不能直接访问 f4l2a3g.txt 吧,在url栏输入:

http://123.206.87.240:8006/test/f4l2a3g.txt

即得flag:
在这里插入图片描述但是这个题有个bug就是我御剑扫描的时候会发现有Index.php和admin.php界面在这里没用到,可能是其他题的界面吧。
在这里插入图片描述

发布了30 篇原创文章 · 获赞 0 · 访问量 2045

猜你喜欢

转载自blog.csdn.net/s11show_163/article/details/103286101