宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

题目:Bugku 秋名山司机

CTFWeb——Bugku秋名山老司机 详细题解-编程部落CTFWeb——Bugku秋名山老司机 详细题解-编程部落

解答:

刷新提示让我们以post方式传入计算的值。
此题是快速反弹Post请求类题目,因为所给时间很短而且计算比较复杂,所以只能写脚本。
python中有eval函数可以快速计算,满足要求。

这道题的脚本如下:

#经常出现执行了但是不弹flag的情况,多试几次就行了import requests   
import re         #导入请求模块 和 正则模块
url="http://123.206.87.240:8002/qiumingshan/"
r=requests.session()  #此题必须要创建会话对象Session(),否则提交结果的时候,重新生成了一个新的表达式,结果会错误
text=r.get(url).text  #将get到的数据以文本形式显示出来
cont=re.findall('<div>(.*?)</div>',text) # re模块的findall函数返回的是 正则表达式在字符串中所有匹配结果的 列表 ,利用正则将我们需要的表达式提取出来cont="".join(cont) #列表转字符串,因为eval()接收的参数类型为string, bytes or code object
cont=cont[:-3] #删掉多余的字符
post=eval(cont) #eval()可以把字符串当做有效表达式进行计算
data={'value':post}  #构造post数据
ans=r.post(url,data=data)
print(ans.text)  #以post方式发送我们获取到的value的值,再将响应的内容打印出来

如果代码后面的注释也看不懂的话,建议先看看这篇文章:详解 CTF Web 中的快速反弹 POST 请求

参考链接:https://blog.csdn.net/zyl_wjl_1413/article/details/83958862

在VScode执行该脚本响应如下图所示:

CTFWeb——Bugku秋名山老司机 详细题解-编程部落

如果第一次写python爬虫类题目,有些操作不太懂的可以参考该教程:如何用VScode( Visual Studio Code)编写、运行python代码

得到Flag:Bugku{YOU_DID_IT_BY_SECOND}