速度要快(Bugku)

 

 

这道题好坑的说……

一开始点开网页源代码,说让我post传一个margin过去,毫无思路……用burpsuite抓包看看

哇塞,在repeater里看到了什么!

惊喜!显然是个base64编码,赶快去解码一下,得到了:

咦好简单哦,半信半疑的把给的flag交了上去……Incorrect code……

(懵逼脸

虽然觉得不会这么简单……可是???????

------------------------------------------------------------------------正确思路----------------------------------------------------------------------------

跑到网上看大佬们写的wp,知道repeater里的那个让我惊喜的flag值居然在变……它在变……go了几发终于死心,真的会变嘤;

无可奈何开始写脚本……

先贴出代码:

import requests
import base64
url="http://120.24.86.145:8002/web6/"
r=requests.session()
headers=r.get(url).headers#因为flag在消息头里

mid=base64.b64decode(headers['flag'])
mid=mid.decode()#为了下一步用split不报错,b64decode后操作的对象是byte类型的字符串,而split函数要用str类型的

flag = base64.b64decode(mid.split(':')[1])#获得flag:后的值
data={'margin':flag}
print (r.post(url,data).text)#post方法传上去

从burpsuite中我们可以知道,我们看到的那个flag肯定是可以得到答案的,但是让人纠结的地方就是会变而已;

下一步我们也知道了这个flag进行了base64编码,只要进行解码就可以了;

根据这些开始写脚本,详见代码中的注释;

跑完就出真正的flag了

---------------------------------------------------------------------------------------------------------------------------------------我是分割线哇

注:

没有加mid=mid.decode()那一步时一直报错;

——是因为字符串有byte类型和str类型,有时操作数类型和操作类型不匹配就会报错……这时候就要把类型转换一下(无论是转换操作数还是操作都行,只要两者匹配

一个简单的方法:
  1、byte型转str型

          mid=mid.decode()

  2、str型转byte型

          mid=mid.encode()

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值