最近做bugku的时候,做到秋名山车神那题,连python都不会(泪)很惭愧
https://zhuanlan.zhihu.com/p/141333473
脚本代码来自上面这个writeup
import requests
url ="http://123.206.87.240:8002/qiumingshan/"
s = requests.Session()
req = s.get(url)
a = req.text[req.text.find('<div>')+5:req.text.find('=?')]
aa = eval(a)
d = {'value':aa}
req = s.post(url,data=d)
print(req.text)
- import requests //加载requests库
- url =“http://123.206.87.240:8002/qiumingshan/”//设置url
- s = requests.Session()//实例化session
- req = s.get(url) //使用session向url发送一个get请求
- req.text[req.text.find(’
’)+5:req.text.find(’=?’)]//截取算式部分,从
<div>
标签截取到’=?’
- aa = eval(a)使用eval()代码执行,算出算式的值
- d = {‘value’:aa}//创建d字典,令value键的值为aa变量
- req = s.post(url,data=d)//使用session向url发送一个post请求,值为d
- 打印返回报文主体
后来想如果d字典的键名不是value会怎么样,遂将其改为’jiegou’再次执行
原来题目已有提示
至于为什么一定要用session,看到现在的应该都明白了,因为session会跨请求保持某些参数,用其他请求就单单请求一次就会断开连接
参考文章
requests库详解
https://www.cnblogs.com/ranxf/p/7808537.html
requests.session()会话保持
https://blog.csdn.net/weixin_42575020/article/details/95179840