ctf | bugku 老司机
今天更新两个很类似的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脚本看不懂的可以点下面这个链接。
这次就到这里了,很多细节还需要好好琢磨。