Bugku:web 秋名山老司机

您所在的位置:网站首页 有没有秋名山 Bugku:web 秋名山老司机

Bugku:web 秋名山老司机

2024-07-06 16:28| 来源: 网络整理| 查看: 265

​打开这道题,发现有一点提示,是不是老司机试试就知道。

 

自然是要点进去一探究竟的。

 

 

里面的提示很过分,2秒钟就要计算出一大串的计算式,突然想到如果用手动计算再POST上去肯定有坑,所以刷新了一下。

 

果不其然啊!!老贼

 

 

也就是说你用人来做这道题肯定是不行的,必须要借助编程的力量。

 

之前还没有遇到用python可以编写的题目,虽然理了一下思路,但是还是先从网络上寻找别人的方法来研究一下。

 

老生常谈,打开源代码看一下,联想到这个计算式是利用程序自动随机生成的。

 

 

所以利用编程方式进行2秒钟计算的解决。

 

在打开python之后,我们需要用到requests包(模块),但是我这里的环境并没有安装,所以也去搜索了一下如何安装requests包以及未来其他的包。

 

 

主要命令为pip install requests,但是因为我是python3.8,所以要使用pip3 install requests,注意要进去python安装地址里面的Scripts文件夹才能进行自动安装,很多方法里面都忽略了这个细节。

 

接下来就是用pycharm编写程序。

 

 

编写之后直接运行即可。

但是这里要深挖细掘每一条语句的作用和意义。

 

  import requestsimport re​url = "http://123.206.87.240:8002/qiumingshan/"s = requests.session() #//用session会话保持表达式是同一个retuen = s.get(url)equation = re.search(r'(\d+[+-/*])+(\d+)', retuen.text).group()result = eval(equation) # //eval() 函数用来执行一个字符串表达式,并返回表达式的值。key = {'value':result}print(s.post(url,data=key).text)

 

首先import就是引入使用的包,这里用了requests模块来用作网络传输指令。

 

requests是使用Apache2 licensed 许可证的HTTP库。

用python编写。

比urllib2模块更简洁。

Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码。

在python内置模块的基础上进行了高度的封装,从而使得python进行网络请求时,变得人性化,使用Requests可以轻而易举的完成浏览器可有的任何操作。

现代,国际化,友好。

requests会自动实现持久连接keep-alive

 

 

而re模块则可以使用正则表达式。正则表达式非常复杂,可是表达出来会非常方便简洁,所以也是非常有必要学习的。【遥想当年,流下了痛苦的泪水

这里有个链接,可以学习一下正则表达式教程

https://www.runoob.com/regexp/regexp-tutorial.html

 

s = requests.session()这里表示了session函数保持会话的功能。

 

equation = re.search(r'(\d+[+-/*])+(\d+)', retuen.text).group()这里\d表示匹配一个数字字符,等价于[0-9];\d+表示多个[0-9]字符;这里的r...是他写错了啊!!!去掉能够运行的,不知道为何还是可以匹配。

 

search函数的使用方法:re.search(pattern, string, flags=0)

pattern : 正则中的模式字符串。

string : 要被查找替换的原始字符串。

flags : 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

 

.group()用来截断获取到的字符串,group() 和group(0)返回值一样,都是返回整体(所有)字符串。

 

result = eval(equation)eval用来执行字符串表达式,并返回结果。

 

之后的就不用解读了,将结果POST上去即可。

 

在pycharm运行界面得到flag:Bugku{YOU_DID_IT_BY_SECOND}

 

即将在编程路上越走越远!!

 

 

求关注!!~~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3