网络信息安全攻防平台脚本关快速口算
快速口算
分值: 350
小明要参加一个高技能比赛,要求每个人都要能够快速口算四则运算,2秒钟之内就能够得到结果,但是小明就是一个小学生没有经过特殊的培训,那小明能否通过快速口算测验呢?
题目连接:http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php
每次进入题目的数据都是不一样的,所以我们只能写脚本来解决。恰好最近在学python,但从来没写过脚本,所以就百度了一下write up ,但发现里面用了正则,看不懂啊!!!!,所以还是决定自己写。先看一下源码
<html>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
</head>
<body>
<form action="" method="post">
请在2秒内口算结果并提交!<br/>
5849*20617+138*(5849+20617)=<input type="text" name="v"/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
要计算的式子在<br/>和=之间
代码如下:
#coding=utf-8
import requests
#导入requests模块,(requests是python的第三方库,要事先安装)
url='http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php'
s=requests.Session()
r=s.get(url)
res=r.content
#获取网页内容
a=res.find('<br/>')
b=res.find('=',a)
#找到我们要计算的式子的前后位置
num=res[a+7:b]
#将计算式赋值给一个变量
r=s.post(url,data={'v':eval(num)})
#eval():计算num的值,
print r.content
结果:
<html>
<head>
<meta http-equiv=Content-Type content="text/html;charset=utf-8">
</head>
<body>key is 123iohHKHJ%^&*(jkh </body>
</html>