CTFWeb——Bugku秋名山老司机 详细题解

题目: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('
(.*?)
'
,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秋名山老司机 详细题解_第1张图片

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

得到Flag:Bugku{YOU_DID_IT_BY_SECOND}

你可能感兴趣的:(#,Bugku题目题解,Bugku题解,python)