Bugku刷题_秋名山车神
仅供个人学习记录使用,如有错误请各位佬多多指教
题目让我们计算这一串数字运算之后的值,还有一个提示是让我们post一个value,值就是计算之后的值。
两秒计算这么复杂的数字那就只能上脚本了。(作为一个python小白,写个脚本要学好多东西呜呜呜)
# 导入模块
import requests
import re
# 设置url
url = ''
# 实例化一个对象,自动处理cookie
requests = requests.session()
# 第一次请求获取要计算的值
response = requests.get(url)
# 匹配相应的值,这里存在的问号代表非贪婪模式,所以需要把问号用反斜杠转义
num = re.search('<div>(.*)=\?;</div>', response.text)
# eval() 函数用来执行一个字符串表达式,并返回表达式的值。
finish = eval(num.group(1))
# 将计算好的值post提交
key = {'value': finish}
flag = requests.post(url, data=key)
# 打印返回的数据
print(flag.text)
import re
import requests
import urllib.request
url= 'http://114.67.246.176:11866/'
s = requests.session()
retuen = s.get(url)
print(retuen)
# r表示字符串为非转义的原始字符串,让编译器忽略反斜杠,也就是忽略转义字符
# (\d+[+\-*])+(\d+):\d+ 表示匹配一个或多个数字;[+-*] 表示匹配一个加号或一个减号或一个乘号(注:减号在中括号内是特殊字符,要用反斜杠转义);所以 (\d+[+-*])+ 表示匹配多个数字和运算符组成的“表达式”;最后再加上一组数字 (\d+) 即可group()返回字符串
eql=re.search(r'(\d+[*\-+])+(\d+)',retuen.text).group()
result =eval(eql)
print(result)
key={'value':result}
print(s.post(url,data=key).text)
参考了别的师傅的脚本
https://blog.csdn.net/weixin_52116519/article/details/123775407
https://blog.csdn.net/weixin_46578840/article/details/119085801