打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
利用Python进行Web渗透测试(六):使用requests模块与Web应用进行交互

本篇概要

  • requests模块

  • 第一个脚本

  • 设置http请求头

  • 发送POST请求


requests模块


接触过Python爬虫的同学,对requests模块都不会陌生。这是一个高效便捷快速友好的HTTP请求库。


与爬虫类似,进行Web渗透测试也需要对Web应用进行请求,与网站进行交互或者是遍历网站路径亦或是测试SQL注入漏洞,还是上传带有后门的表单文件。


requests模块支持多种HTTP请求方式,基本上涵盖了HTTP协议所定义的请求方法:


 

同时能够方便地查看请求和响应的信息。

  • 查看状态码:使用status_code属性;

  • 查看响应头:使用header属性;

  • 查看响应内容:使用content或text属性;


下面我们通过写一个脚本,实际的使用一下requests这个库。


第一个脚本


第一个例子,我们使用requests库对上一篇介绍的HTTP请求和响应测试网站www.httpbin.org的/ip路径进行一个GET请求。



运行脚本,结果返回和浏览器上打开的结果一致的信息:


 

我们再来访问一下httpbin.org的跳转重定向链接:


 

这个链接会跳转到example.com的网站上。在这里,我们使用params参数来传递重定向的值:


 

返回了200状态码,表示请求成功:


 

我们可以再通过requests来看看头域的信息:



结果返回了:



设置请求头域


默认情况下,requests会使用自己的请求头,但是我们可以修改它。
比如:

  • 自定义一个头域;

  • 篡改我们的浏览器标识;

  • 更改host头;

  • 篡改任何的头域;


httpbin.org提供了一个测试http头域的工具:/headers:

 


其会返回客户端的请求头。我们直接使用requests.get请求一下,看看返回的结果:


 

可以看到,在默认请求下,requests的浏览器标识为“python-requests/2.18.2”,接受所有类型的响应:


 

下面,我们使用requests请求方法中的headers属性,将我们的请求头域修改一下,浏览器标识改为Iphone X:


 

结果我们的浏览器标识成功改成了Iphone X :


提交POST表单


在Web渗透测试之中,表单是测试的一个重点。有表单的地方就有输入,有输入的地方就会与服务器进行交互,有交互的地方就有机会出现漏洞,像经典的SQL注入多数情况下就是通过在输入框中构造SQL语句来达到入侵的效果。


在requests中,我们通过post()方法来进行POST请求,使用它的data属性来传输表单数据,同样是利用httpbin.org提供的post测试路径:



看看返回的结果:



表单数据中,是我们传输的name数据。


本篇内容就此结束。

有错误的地方还望指正,有疑问的地方欢迎留言讨论。

感谢阅读!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python+requests——发送post请求——各种情况
Python+requests入门
Python网络请求模块requests
Python进阶记录之requests模块
requests发送post请求的一些疑点
Python 第三方 http 库
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服