利用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数据。

本篇内容就此结束。

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

感谢阅读!

原文发布于微信公众号 - 州的先生(zmister2016)

原文发表时间:2017-11-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏葡萄城控件技术团队

如何在ASP.NET中生成HTML5离线Web应用

传统的Web应用程序有一个很大的症结是当用户的网络连接不好时,应用会加载失败,为了 解决这一问题,HTML5中引入了Web的离线工作的功能。离线功能使得Web应...

2106
来自专栏ml

如何搭建一个linux服务器

1, 首先 下载一个linux server 系统镜像    ubuntu 64bit下载      http://www.ubuntu.com/downloa...

3505
来自专栏nummy

设置VMWARE通过桥接方式使用主机无线网卡上网

将IP地址、子网掩码、默认网关、DNS设置和主机相同网段中。 如此才能真正的实现虚拟机的上网,祝你好运,配置能成功!

1152
来自专栏Jeffery的项目过程

云主机搭建Git服务器

版本控制是一个项目不可或缺的一部分,可以帮助开发者追踪文件的变更、分支管理、版本回退、版本发布等。所以建议当开始一个项目或者有想法进行开发时,都尽量考虑用上版本...

3722
来自专栏机器学习算法工程师

Windows下如何安装xgboost

最近有童鞋在后台询问windows下如何安装xgboost的问题,然后燕哥在团队中一问,哎!还真的有小伙伴会。然后一篇xgboost安装教程就热乎乎地出炉喽~ ...

2765
来自专栏Angular&服务

ionic3 在app首页跳转重定向报错

1972
来自专栏鸿的学习笔记

日志采集技术笔记

使用Linux的rename机制保证文件写入要么成功,要么失败,绝对不能出现写了一半的情况。

2325
来自专栏转载gongluck的CSDN博客

vsftp配置

最近需要一个ftp,正好借着正在学习centOS的机会配置一个vsftpd。 配置的过程中遇到了不少错误,这里记录下正确的完整的过程,以供大家分享。 首先下载v...

3375
来自专栏各种机器学习基础算法

开发服务器安全加固

目的 防范因为主机没有加固,造成储存在开发服务器中的源代码和测试数据被黑客获取。 范围 本规范适合于开发服务器安全加固配置。 MYSQL 1. 下载位置 MyS...

4658
来自专栏ytkah

如何修改dedecms专题目录默认名称special

  专题有一个聚合的效果,一般会比普通的文章页更符合用户需求。如果用dedecms建专题的话,默认的目录是special,怎么修改修改dedecms专题目录名称...

2795

扫码关注云+社区