Burp Suite - Application Security Testing Software - PortSwigger
目录
1.准备工作
1.1 启动burp
启动之后可以设置一下画面和字体👇
1.2 配置代理
2.Proxy模块
web代理功能,代理所有的收获截获得的信息
2.1) intercept
截断,默认情况下burp不会截断所有径过他的流量,当按下【intercept is off】会截断流量请求。👇
2.2)HTTP history
凡是经过截断代理的所有数据历史记录默认情况下就会记录在该视图下。
2.3)web Sockets history
有的application他是没有这个界面的,他是一个web socket长连接来通过一种类似于api的方式来实现数据的传输,burp也是可以通过这个来截获这一种信息。
2.4)Proxy setting
关于代理功能的配置。
2.4.1)proxy listeners
默认情况下是监听在本机的8080端口,你也可以根据情况进行修改添加和删除。
默认的监听是在本地的换回网卡地址上的8080端口,监听这个端口只能在本地来使用代理功能。
从另外一台机器即使设置了这台机器的IP地址burp也不会进行代理工作,因为他侦听接口已经设置为【Loopback】,当然你也可以设置【all interfaces】让所有接口都监听,可以让别人的机器都通过burp。
👇
👆如果在【host】指定一个地址1.1.1.1 凡是请求发给burp代理的服务,burp不会把请求转发给真实的目标ip地址,而是会指定给1.1.1.1
如果在【port】指定一个端口如:8888,就会重定向到1.1.1.1的8888端口上。
【Force use of TLS】即使客户端访问真实的目标服务器使用是明文http协议的话,当客户端流量流到burp代理的时候,burp要求使用ssl加密的方式进行沟通通信。
【support invisible proxying】会有一些插件或者客户端无法代理但是还走http程序的客户端程序做代理功能。
2.4.2)Request interception rules
默认开启请求拦截规则,属于该过滤规则的不会进行截断。
【Automatically update Content-Length header when the request is edited】当对拦截进行修改时会改变字节大小,该选项会自动修改 改变后的字节大小。👇
2.4.3)Response interception rules
默认关闭 响应拦截规则👇
2.4.4)Response modification rules
对返回内容进行修改
👆返回页面会有隐藏的表单,勾选的时候服务器返回的页面有隐藏表单就会显示出来,下面的是会把它高亮显示出来。
👆有一些页面的表单会禁用掉,不能添加数据。通过该选项可以把表单激活。
👆有些页面会通过客户端来表单输入内容的长度限制来限制sql注入,如账号输入只能12字符,通过客户端脚本来限制的可以通过burp来去掉限制,即使没有去掉也可以通过浏览器用开发工具进行修改。
👆去掉客户端JavaScript的校验,比如判断是否是一个合法的邮箱地址或者身份证。有些功能是在客户端通过JavaScript来验证。如果勾选该选项就会在中间把这先限制去掉。
👆去除所有的JavaScript,如果勾选该选项很有可能会影响功能,导致无法正常显示。
2.4.5)Match and replace rules
匹配就替换
👆我添加一个User-Agent,如果提交内容匹配到了那么就会替换。
👆当我未开启的时候进项访问他就会显示未修改的user-agent。
👆打开的时候如果匹配到了user-agent就会替换成你设置好的内容。
👆如果修改之后无法打开网页那么修改为user-agent:xxxxx即可。
2.4.6)TLS pass through
👆让所有的加密流量通过burp,只通过不截获。
3.Target模块
通过截断代理截下来的内容访问请求都会保存在http history,target会显示你曾经访问过以及页面有相应的链接连接到那个域名下的URL地址,这些都会被burp截断下来。
👆【视图1】你访问的域名和IP都会在此显示出来,主要分两种【白色】【灰色】。白色表示真正发生过访问请求的,客户端浏览器真的对这个URL发生过请求服务端给他进行页面的返回内容。灰色表示 这个页面的URL爬网爬出来的,会发现页面有这个URL地址但是并没有对其进行真正的访问
【视图2】访问URL的内容和【试图3一起使用】
【视图4】发现当前的问题,【视图5】发现问题的具体内容和具体URL地址。
3.1)过滤
3.1.1)对一个IP地址进行过滤
👆如果我想只显示出192.168.3.134地址的访问,鼠标对其地址右击会出现选项,选择【add to scope】
👆 只需要我们勾选【show only in-scope items】就会只显示出我们刚才选中的192.168.3.134地址出来。
【show only requested items】真正发生过请求的内容。只有白色的显示出来,灰色不会显示出来
【show only parameterized requests】只显示带参数的页面
👆通过点击选项我们可以看到左侧只显示了刚才过滤的内容。而且也自通添加了过滤规则。
3.1.2)过滤参数选项
👆过滤当前ip地址中只有dvwa字的访问。
👇【show only commented items】只显示注释的内容
👇添加一个注释之后我们再选择【show only commented items】就只会显示这一个访问记录。
👇【show only highlighted items】只显示高亮
👇选择一个URl或多个对其进行单击选择一个颜色,然后选择【show only highlighted items】
👇如果你忘记选来的默认选项你可以点击齿轮按钮进行复原(只要有这个齿轮按钮都可以进行复原)
4.Intruder模块
👆选择一个你认为可以进行暴力破解的URL地址,或者需要模糊测试的地址,对其右键发送到intruder模块(你几乎可以在任何地方发送到不同模块,他们之间都是可以进行关联),我这里选择了一个登录的页面。
👆凡是里面有变量都会高亮显示用*"§ §"符号,表示这是一个变量。*
4.1)Sniper
只需要指定一个字典文件
因为是sniper所以只需要指定一个字典,我这里是两个变量用一个字典,他们不会同时去使用该字典,他们会一个先用字典另一个保持变量值不动。
4.2)Battering ram
只需要一个字典文件, 变量A和变量B同时使用一个字典里面的同一个数据,两个值同时使用同时替换相同的值。
4.3)Pitchfork
需要指定两个字典
在第一个变量中添加username的变量,在第二个中添加password的变量。
4.4)Cluster bomb
需要两个字典两个变量。
先用第一个字典的第一个数据尝试第二个里面所有的数据进行组合以此类推。
👇如何才能在众多记录中找到正确的账号密码呢?我们可以通过点击length来查看,正确和错误的返回肯定是不一样的所以数据长度也不会一样,但是这个dvwa不管错误和正确都是一样的长度
👆可以看到正确的是返回的index.php 但是错误的返确是login.php 我们可以设置过滤出来正确的关键词。
👆但是默认排除http头,所以需要把【exclude HTTP headers】给关闭。
5.Repeater模块
重发模块,该模块非常重要你可以在Target、proxy、intrudermo模块中发送到Repeater模块中。
👇下面两图修改一个参数对其进行访问。
接下来演示一下最简单的sql注入👇
我们拦截到之后直接右键发送到重发模块里面
我们什么都不修改直接发送看看效果👇
然后我们将id修改一下看看有什么变化👇
👆可以看出两次查询的内容发生变化,此处有可能会有sql注入。
输入order by 2不报错,这里空格用+号来代表。
👆查看到数据库名
上你也可以点击此箭头,< >来浏览之前或者后面修改的内容。
5.1)copy as curl command
通过curl指令也可以请求该内容
5.2)Engagement tools
如果你觉得该页面有CSRF漏洞可以右键选择【Engagement tools】
👆把里面的代码保存或者点击【test in browser】复制地址用浏览器打开。
👆除了右键还有一些重发的选项
6.Decoder
编码解码
6.1)解码
👇 将编码内容放进去之后点击右边的decoder,然后选择base64进行解码
6.1)编码
👇将内容放进去之后点击右边的necoder,然后选择URL进行编码
6.3)智能解码
👇 当你不知道是什么进行编码的时候,可以点击右边的智能解码
7.Comparer
对两个数据进行比较
7.1)软件内比较
👇将id为1的时候的响应包和id为2的时候的相应包发送到comparer
👇点击右下角的words即可
👆返回的响应不一样的内容会通过高亮的显示出来。右下角的【sync views】勾选上会两边同步预览
7.2)文件比较
将id=1的数据保存下载再将其加载进来,也是实现了两个数据的比较。
呜呜呜呜呜,如果对你有用的话请点一个赞....QAQ
版权归原作者 温馨提示:小心二刺螈 所有, 如有侵权,请联系我们删除。