解决文件重定向 -- 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),"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)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界面在这里没用到,可能是其他题的界面吧。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值