从脚本学python(秋名山车神)

本文介绍了作者在Bugku平台遇到的秋名山车神题目,通过Python代码展示了如何利用requests库进行HTTP请求,特别是Session的使用,以保持跨请求的参数。文中提到,修改字典键名后的影响以及为何必须使用Session。同时,文章提供了关于requests库的参考资料,帮助读者理解相关知识。
摘要由CSDN通过智能技术生成

最近做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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值