1.首先查看源码,有提示说要post margin的值 (难道是网页的margin???)
2.抓包,repeater 一下,能看到flag
3.两次解码,猜测第二次解码的值=margin,跑到网上看大佬们写的wp,知道repeater里的那个让我惊喜的flag值居然在变……它在变……go了几发终于死心,真的会变嘤;
无可奈何开始写脚本……
先贴出代码:
import requests
import base64
url="http://123.206.87.240:8002/web6/"
r=requests.session()
s = r.get(url)
head = s.headers['flag']
head = base64.b64decode(head)
head = head.decode()
payload = base64.b64decode(head.split(":")[1])
p = {"margin":payload}
print(r.post(url,data=p).text)
重点
脚本不难,但是
head = head.decode()
很重要!!!!!!!
b64decode操作后的对象是byte类型的字符串,而split函数要用str类型的
没有加
head=head.decode()那一步时一直报错;
——是因为字符串有byte类型和str类型,有时操作数类型和操作类型不匹配就会报错……这时候就要把类型转换一下(无论是转换操作数还是操作都行,只要两者匹配
一个简单的方法:
1、byte型转str型
head=head.decode()
2、str型转byte型
head=head.encode()