您的位置:首页 > 编程语言 > Python开发

实验吧 天下武功唯快不破

2017-08-15 22:07 211 查看
#小菜鸟第一次写自己的博客,不免小激动,文章如有错误,还望大佬多多指点#学了一段时间的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。

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Python ctf