实验吧-web-天下武功唯快不破(Python中byte和str的转换)

版权声明:本文为博主原创文章,转载需注明出处。 https://blog.csdn.net/zz_Caleb/article/details/87519789

题目:看看响应头

打开网站,既然已经提示我们看响应头了,那我们就看看呗(习惯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 base64

url = '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 bytes
  bytes(s, encoding = "utf8")

  # bytes to str
  str(b, encoding = "utf-8")
 

猜你喜欢

转载自blog.csdn.net/zz_Caleb/article/details/87519789