ctf | bugku 老司机

2019-03-06  本文已影响0人  你可以叫我风平

今天更新两个很类似的ctf题。都是编写Python脚本然后post提交信息得到flag。直接上图如下:

这一题就直接编写Python脚本上传计算结果就好了。Python代码如下:

import requests

import re

s =requests.Session()

r =s.get("

http://123.206.87.240:8002/qiumingshan/")

searchObj = re.search(r'^(.+)=\?;$',r.text,re.M|re.S)#re.M|re.S匹配多行或匹配一行

data = {

"value":eval(searchObj.group(1))#这里是value是从网页提示中得到的

}

flag = s.post("http://123.206.87.240:8002/qiumingshan/",data=data)

print(flag.text)


第二题上图:

没有提示先看源码,得到提示也是要上传一个margin。我们尝试抓包得到下图

根据flag后面的等号大致判断是个base64加密,解一下马提交发现不对,根据提示我们再抓一次包发现

flag又变了,根据提示快速,我们继续编写Python脚本快速提交得到的flag。Python脚本如下:

s =requests.Session()

headers =s.get("http://123.206.87.240:8002/web6/").headers

str1 = base64.b64decode(headers['flag'])

str2 = base64.b64decode(repr(str1).split(':')[1])

data= {'margin':str2}

flag = s.post("http://123.206.87.240:8002/web6/",data=data)

print(flag.text)

得到flag提交就好了。Python脚本看不懂的可以点下面这个链接。

requests库

这次就到这里了,很多细节还需要好好琢磨。

上一篇下一篇

猜你喜欢

热点阅读