Bugku刷题_秋名山车神

仅供个人学习记录使用,如有错误请各位佬多多指教

image

image

题目让我们计算这一串数字运算之后的值,还有一个提示是让我们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

posted @ 2024-07-11 14:59  Actwise  阅读(179)  评论(0)    收藏  举报