#小菜鸟第一次写自己的博客,不免小激动,文章如有错误,还望大佬多多指点
#学了一段时间的py,写了几个小爬虫,刚好就看到了这道题可以用爬虫来解决一下,虽然爬虫很简单,不过路是一步一步走出来的。
#言归正传
****题目来源 http://www.shiyanbar.com/ctf/1854
看看响应头
格式:CTF{ }
标注是简单的一道题,题目也只有这一句话
先打开链接http://ctf5.shiyanbar.com/web/10/10.php
看看有什么发现
There is no martial art is indefectible, while the fastest speed is the only way for long success.
>>>>>>----You must do it as fast as you can!----<<<<<<
没什么用,然后用Firebug,看网站的响应头,很容易发现了FLAG UDBTVF9USElTX1QwX0NINE5HRV9GTDRHOnQ0dXplb1ZtcQ==
base64解码后得到P0ST_THIS_T0_CH4NGE_FL4G:t4uzeoVmq
把后面的字符串当做data发送post请求
直接发送的话得不到flag,因为这道题指出了唯快不破,所以就用到了py
我的是python3.6版本
import requests
import base64
url = "http://ctf5.shiyanbar.com/web/10/10.php"
flag=requests.get(url).headers['FLAG']
post={"key":base64.b64decode(flag).decode().split(':')[1]}
key=requests.post(url,data=post).text
print (key)
用这个小脚本就成功地解决了唯快不破的问题
还有一个问题就是headers里的FLAG的值是动态刷新的,你会发现你的FLAG和我写的我不一样,所以如果直接把第一次得到的解码值post过去是得不到的,当然用py实时获取就能成功解决这个问题
第一次用Python解决问题,而且是ctf,很开心。继续py继续ctf。