web——秋名山老司机(100)——Bugku

0×00 靶场链接

http://123.206.87.240:8002/web16/

 
0×01 题目描述

 

 

0×02 解题过程

一看大数运算就觉得要用python,然后就只能找wp看看

多刷新几次会有提示出来

一个value post

创建步骤

先建立文本文档,后缀改为.py,然后右键使用IDE打开

代码如下:

import re
import requestss = requests.Session()
r = s.get("http://120.24.86.145:8002/qiumingshan/")#得到页面对象,为了得到后面r.text的内容
searchObj = re.search(r'^(.*)=\?;$', r.text, re.M | re.S)#re.M匹配多行,re.S匹配一行
#print searchObj.group(1)  #通过正则表达式的过滤匹配得到整个页面的内容中的运算表达式
#print eval(searchObj.group(1)) #eval可以计算所得到的一串运算
d = {"value": eval(searchObj.group(1))
}
r = s.post("http://120.24.86.145:8002/qiumingshan/", data=d)
print r.content

 

首先注意在编辑python脚本之前需要使用pip install requests安装这个requests包

在session()库里我们用到了session(),get(),post()三个函数

s=requests.session()这个对象能跨请求的保留某些参数,比如cookie,cookie就是保留当前会话信息的一个对象

r=s.get(url)产生一个请求资源的对象,能更方便地获取url里的资源

 

我们还用到了自带的库re

这个库一般是用于字符串的匹配,因此可以用这个脚本计算算式

searchObj = re.search(r'^(.*)=\?;$', r.text, re.M | re.S)

 

re.search(pattern, string, flags=0)

在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象

pattern : 正则表达式的字符串或原生字符串表示

string : 待匹配字符串

flags : 正则表达式使用时的控制标记

e.M | re.S是为了过滤=?这两个字符,只把数字保留到对象中

eval(searchObj.group(1))这个函数eval()的官方解释是:将字符串str当成有效的表达式来求值并返回计算结果,大致就是这样

r = s.post("http://120.24.86.145:8002/qiumingshan/", data=d)是构造post的data部分

 


 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部