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 requests

s = requests.Session()
r = s.get("http://120.24.86.145:8002/qiumingshan/")#得到页面对象,为了得到后面r.text的内容
searchObj = re.search(r'^<div>(.*)=\?;</div>$', 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'^<div>(.*)=\?;</div>$', 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部分

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值