题目:看看响应头
打开网站,既然已经提示我们看响应头了,那我们就看看呗(习惯bp,也可直接F12查看)
可以看到,响应头部分有个FLAG,而且有提示:please post what you find with parameter:key
所以就将FLAG解码后post,解码之后是:P0ST_THIS_T0_CH4NGE_FL4G:omiFOwSfc
所以post:key=omiFOwSfc
这样再转码,再POST,发现是个死循环,FLAG是随机随机生成的,不管post多少次都拿不到我们要提交的flag。
于是上脚本
#coding:utf-8
import requests
import base64url = 'http://ctf5.shiyanbar.com/web/10/10.php'
s = requests.Session()
r = s.get(url) #打开网页
head = r.headers #获取http头f = base64.b64decode(head['flag'])
flag = str(f,encoding='utf-8').split(':')[1]
print(flag)key = {'key':flag}
result = s.post(url,data=key).text
print(result)
也提一下flag = str(f,encoding='utf-8').split(':')[1],这里base64.b64decode()后得到的是byte类型的数据,所以在split时要转成str类型的,下面是两者的转换
# str to bytesbytes(s, encoding = "utf8")# bytes to strstr(b, encoding = "utf-8")