此文章仅用于学习研究使用,请勿用于违法犯罪,请遵守《网络安全法》等相关法律法规。
Burpsuite认识与使用
基本配置与使用
配置字体大小
配置浏览器代理
先配置浏览器代理,这里以火狐浏览器为例
配置burp中的代理,默认是127.0.0.1:8080,这里要与浏览器代理配置一致
拦截https请求
在浏览器中安装Burpsuite CA证书
在浏览器中输入http://burp,安装ca证书
打开该文件,点击安装证书
验证:浏览器设置代理的情况下可以正常访问https即可
证书安装好后burp即可正常拦截https请求
Proxy模块
Burp Proxy是BurpSuite以用户驱动测试流程功能的核心,通过代理模式,可以让我们拦截、查看、修改所有在客户端和服务端之间传输的数据
HTTP history介绍
HTTP history可以查看提交过的HTTP请求
Filter可以过滤显示某些HTTP请求,点击Filter即可打开。对于制定URL可以选中右键点击,执行其他操作
Options介绍
Options具有的功能:代理监听设置、截断客户端请求、截断服务器响应、截断WebSocket通信、服务端响应修改(绕过JS验证文件上传)、匹配与替换HTTP消息中的内容等
- 设置Proxy Listeners
通过Proxy Listeners来截断数据流量
- 设置Intercept Client Requests
通过设置Intercept Client Requests可以根据相应条件来截断HTTP请求
- 设置Intercept Server Response
通过设置Intercept Server Response来筛选出符合条件的HTTP相应
- 设置截断Websocket通信以及修改Response的内容
- 设置Match and Replace
通过设置Match and Replace可以匹配及修改HTTP请求和HTTP响应中的内容
- 设置使用SSL/TLS连接到web服务器
老版Burp使用的是SSL连接,新版使用TLS连接
- 杂项设置
通过杂项设置对应的请求头等信息
Burpsuite抓取手机APP流量
WepAPP介绍
目前WebAPP(手机APP)的通信仍然使用HTTP协议进行对应的通信。可以通过Burp设置代理,然后手机设置网络代理,通过Burp截断手机APP流量
操作流程
Burp代理设置:
将手机网络的代理设置为主机的ip地址,注意端口号与Burp保持一致
两边代理设置好后,Burp即可截取到手机的HTTP通信信息
Burpsuite截断剔除Javascript脚本
Javascript脚本可以用来进行上传文件验证。例:只有.jpg格式的文件才可以上传到服务器,若要上传其他格式的文件,则需要绕过JS文件验证
绕过流程(绕过后端js校验)
在Proxy模块的Option下的Response Modification中,勾选Remove all JavaScript
在客户端点击上传后,Burp会截取到上传请求,将请求发送到Repeater模块进行验证
Target模块介绍
Target模块主要包含站点地图、目标域、Target工具三部分组成,用于帮助渗透测试人员更好地了解目标应用的整体状况、当前的工作涉及哪些目标域、分析可能存在的攻击面等信息
作用域Scope介绍
当我们对某个产品进行渗透测试时,可以通过域名或者主机名去限制拦截内容,这里的域名或主机名就是我们所说的作用域。例,只拦截login目录下所有的请求,此时就可以在此进行设置,作用域即目录。
站点地图Sitemap介绍
Sitemap的左边为访问的URL,按照网站的层级和深度,以树形结构展示整个应用系统的结构和关联其他域的url情况。右边显示的是某一个url被访问的明细列表、共访问哪些url、请求和应答内容等。基于左边的树形结构,可以选择某个分支,对指定的路径进行扫描和抓取。
可以通过站点地图分析其中页面的提交参数等
Spider模块介绍
Spider的功能主要使用于大型的应用系统测试,它能在很短的时间内帮助我们快速地了解系统结构和分布情况
新版本中已经去除了Spider模块,新版本可使用另一种方式代替
Scanner模块介绍
Scanner模块的功能主要是用于自动检测web系统的各种漏洞,对系统进行普通漏洞类型的渗透测试
新版本中已经去除了Scanner模块,新版本可使用另一种方式代替
Intruder模块介绍
Intruder可以在原始请求数据的基础上,通过修改各种请求参数,以获取不同的请求应答。每一次请求中,Intruder通常会携带一个或多个有效攻击载荷(Payload),在不同的位置进行攻击重放,通过应答数据的比对分析来获得需要的特征数据
Intruder模块使用场景
1、标识符枚举(Web应用程序经常使用标识符来引用用户、资产等数据信息)
2、提取有用的数据(在某些情况下,不只是要简单地识别有效标识符,还要通过标识符提取一些其他的数据)
3、模糊测试(很多输入型的漏洞,如SQL注入、跨站点脚本和文件路径遍历可以通过请求参数提交各种测试字符串,并分期错误信息和其他异常情况,开对应用程序进行检测。由于应用程序的大小和复杂性,手动执行这个测试是一个耗时且繁琐的过程,此时可以通过设置Payload自动化对Web应用程序进行模糊测试)
Intruder模块使用方式
例:使用Intruder枚举课程信息
1、设置代理,开启Burpsuite截断需要测试的HTTP请求
2、将截断的请求发送到Intruder模块,设置Payload测试
3、筛选Intruder结果,选取有用信息
例2:暴力破解用户密码
1、用户名已知,密码未知
Burp开启截断后,在登陆页面点击登录,Burp会截断请求
2、用户名未知,密码未知
用户名密码都未知则需使用集束炸弹
补充:有user_token情况下的一种破解思路(基于DVWA的high模式)
线程数设置为1,因需获取响应中的user_token,线程>1会报错
获取响应中的token
配置Payload
目录扫描
利用Intruder不断进行枚举,然后对相应状态码筛选
1、将截取的网站首页发送到Intruder
2、将目录设置为变量
3、配置Payloads
sql测试
可以利用Burp pro高级版中的Fuzzing判断是否存在sql注入(社区版无法使用)
首先Burp拦截网页,将网页发送到Intruder模块进行测试
根据长度及内置浏览器预览可以大致判断哪些可能存在SQL注入
Intruder模块Position介绍
针对HTTP某个位置或某几个位置进行模糊测试,需要选择不同的位置与Attack Type
Attack Type可选项:
- Sniper 狙击枪模式,只针对一个位置进行探测
- Battering ram 攻城锤模式,针对多个位置使用一个Payload
- Pitchfork 单叉模式,针对多个位置使用不同的多个Payload,单独组合
- Cluster Bomb 集束炸弹模式,针对多个位置,全部组合
Intruder模块Option介绍
可以设置Request请求内容和Request引擎,以及针对结果进行设置(存储请求或结果等)
标出符合特定表达式的结果
从响应结果中抓取出有用信息(例如可以找到user_token)
Repeater模块介绍
Burp Repeater是一款手工验证HTTP消息的测试工具,通常用于多次重放请求响应和手工修改请求消息后对服务器响应的消息分析
Sequencer模块介绍
Burp Sequencer是一款用于检测数据样本随机性质量的工具,通常用于检测访问令牌和密码重置令牌是否可以预测等场景。通过Sequencer的数据样本分析,能很好地降低关键数据被伪造的风险
例:对DVWA中的环境进行分析
开始后,将会不断发送数据包获取Cookie,以验证是否可伪造,并得出分析结果
Decoder模块介绍
Decoder可以用于对字符串进行加解密的操作
Comparer模块介绍
Comparer模块可以针对两个不同的HTTP请求进行比较
首先将不同的数据包发送到Comparer模块,然后点击Words或Bytes进行比较
查看比较结果