bugku 秋名山老司机 以及 hackinglab 快速口算

秋名山老司机

100

http://120.24.86.145:8002/qiumingshan/

是不是老司机试试就知道。

题目要求2s内计算一个算式并提交结果,用python写一个脚本如下

import re
import requests
url="http://120.24.86.145:8002/qiumingshan/"
s=requests.Session()
response=s.get(url)
reg=re.compile(r'[0-9+\-*]{3,}[0-9]')#{3,}代表匹配次数>3次,本来是用一个+的,但会匹配response中的utf-8的-8
obj=reg.findall(response.text)
data={'value':eval(obj[0])}
reps=s.post(url,data=data)
print(reps.content.decode('utf-8'))

即可在返回结果中找到flag

 

 

快速口算 分值: 350

小明要参加一个高技能比赛,要求每个人都要能够快速口算四则运算,2秒钟之内就能够得到结果,但是小明就是一个小学生没有经过特殊的培训,那小明能否通过快速口算测验呢?
通关地址

题目要求是一样的,python脚本如下:

import re
import requests
url="http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php"
s=requests.Session()
response=s.get(url)
r=response.text
regstr=re.compile(r'[0-9+*()]+[)]')
obj=regstr.findall(r)
result=eval(obj[0])
data={'v':result}
rep=s.post(url,data=data)
print(rep.content.decode('utf-8'))

在这里记录一个疑问,在秋名山老司机中用下面这个脚本是不能获得flag的

import re
import requests
url="http://120.24.86.145:8002/qiumingshan/"
headers={"Cookie":"PHPSESSID=92fp7sultl136duhl39lqn33690o4qmd"}
s=requests.Session()
response=s.get(url,headers=headers)
reg=re.compile(r'[0-9+\-*]{3,}[0-9]')
obj=reg.findall(response.text)
data={'value':eval(obj[0])}
reps=s.post(url,data=data,headers=headers)
print(reps.content.decode('utf-8'))

也就是在发送请求的时候加了个headers参数,把我的cookie加进去.

但在快速口算中加了个headers参数,把我的cookie加进去,是可以获得flag的

import re
import requests
url="http://lab1.xseclab.com/xss2_0d557e6d2a4ac08b749b61473a075be1/index.php"
headers={"Cookie":"PHPSESSID=77d9d629775af0b56319254255388c6a"}
s=requests.Session()
response=s.get(url,headers=headers)
r=response.text
regstr=re.compile(r'[0-9+*()]+[)]')
obj=regstr.findall(r)
result=eval(obj[0])
data={'v':result}
rep=s.post(url,data=data,headers=headers)
print(rep.content.decode('utf-8'))

不知道为什么会有这个区别

你可能感兴趣的:(BugkuCTF,hackinglab)