目录
一、两种命令启动
1、命令行启动
在burp当前目录下打开命令行cmd--java -jar burp-loader-keygen-2020-2.jar
2、图标启动(常用)
二、BurpSuite代理
1、Burp设置代理
burp默认127.0.0.1,端口是8080
2、火狐浏览器设置
(1)方法一
使用之前安装xray的插件FoxyProxy Standard即可。
(2)方法二
在火狐浏览器中进行网络代理配置,选择手动配置代理(在之前学习过)
-
想要使用抓包工具就要进行相应的配置;
-
设置--常规--网络设置--点击设置--改为使用手动配置代理--HTTP代理127.0.0.1,端口8080,勾选将此代理应用为HTTPS--确定--此时能够抓包HTTP协议的网站;
-
https://burp--下载CA证书--按照步骤安装证书--导入成功--关闭浏览器--重新打开--设置--隐私与安全--证书--查看证书--导入证书--将自己下载的CA证书导入--设置--隐私与安全--增强型跟踪保护--管理例外--网站地址https://burp--添加例外--保存--关闭浏览器--打开浏览器--此时就能够抓包HTTPS的网站。
Edge代理设置
-
Edge--设置--系统和性能--打开计算机的代理设置--打开--127.0.0.1--8080--保存
-
当把Edge里面的代理打开后,也可以进行抓到Google的流量,而把火狐的代理打开后,不可以扎到Google的流量,原因是Edge打开的是电脑的代理,而火狐只是进行局部的代理。
手机代理设置
-
用手机接入电脑的无线网络--cmd -- ipconfig--在手机上的主机名和电脑上面的一样--在手机上先手动设置代理--在Burp中add--192.168.0.101:8080(假设电脑是地址为192.168.0.101)
-
原理是手机和电脑使用同一个wifi网络,要想访问HTTPS,则需要安装burp的证书,建议使用qq进行上传,然后可以直接点击,就可以安装好了。
三、Burp的原理
-
Burp工具是以拦截代理的方式拦截所通过的流量,类似于中间人的存在。
-
有时候采用Burp进行抓包,刚开始抓到的包不是对应网站的,有可能就是网站后台流量,此时点击Forward就可以进行下一个包的抓取了。
-
很多主流APP内置防护,禁止Burp抓包,所以可能存在抓不到包的情况
四、Burp的使用
基本的操作在这里不解释也不进行说明,只是说一些具体的实践操作问题
1、burp和xray的联动(Burp的重定向)
(1)原理
-
客户端--burp--xray--WAF--服务器
-
客户端进行请求,将请求包经过burp,然后burp将请求包放过去,这个时候xray就可以接收到请求包了,然后传给服务器
-
一般情况下WAF是安全防护设备是放在服务前的前面的
(2)操作
-
Burp--options--Proxy listeners--add--request handling--redirect to host: 127.0.0.1 redirect to port:7777 保存即可
-
仅使用于http协议
-
-
User options--Upstream Proxy Servers--add--destination host: *baidu* --ok--则可以实现对百度的重定向了
-
星号表示匹配多个字符
-
Proxy host:127.0.0.1 proxy port:7777
-
2、burp target选项
右击鼠标会出现爬虫和扫描的选项,engegement tools--discover content
(1)目标域设置
(2)站点地图
(3)爬虫
3、burp的被动扫描
-
在Dashboard 下面有两个选项--live passive crawl实时被动爬取(探测路径),live audit form proxy 实时代码审计(查看漏洞)
-
被动扫描的特点是:burp不需要对请求包进行修改,而是对已经存在的请求包进行简单分析,相对于系统的检测比较安全,通常用于生产环境的检测,其缺点是检测相对来说不深且不全面。
4、burp的主动扫描
-
Dashboard--new scan--填写要扫描的网站
-
主动扫描的特点:burp会向应用发送新的请求并通过payload验证漏洞,这种模式下的操作,会产生大量的请求和响应,直接会影响系统的性能,通常会使用在非生产环境中
-
一般有两种漏洞可用主动扫描进行扫描:
-
客户端漏洞如xxs,http头注入,操作重定向
-
服务端漏洞如sql注入,命令行注入,文件遍历
-
5、burp的Intruder爆破功能
(1)常见的登录页面:
-
账号+密码
-
第一步测试有没有账号枚举 如admin/system/manage/root。账号枚举的意思是你输入一个账号,会提示账号不存在之类的提示,通过提示可以确定账号是否存在
-
第二步测试账号有没有锁定策略,如密码输入错误几次,会锁定n分钟之类的
-
第三步如果有锁定策略,则无法进行爆破;反之,进行密码测试
-
-
账号+密码+图形验证码
-
第一步测试有没有账号枚举
-
第二部测试图形验证码是否生效
-
第三步如果图形验证码生效,则无法进行爆破;反之可以进行爆破。
-
-
账号+密码+短信验证码
-
第一步测试有没有账号枚举:若账号存在,提示验证码已经发送;若账号不存在,给其他提示。
-
第二步测试短信轰炸。有的短信验证码一分钟只能发送一次,但是有的网站没有。通过burp反复发送验证码,看看是否会有很多个验证码出来
-
第三步测试短信验证码是否生效(当前网络环境中短信验证码一般情况都是生效的),是否可以绕过(可否绕过:输入正确的验证码后再返回的数据包中会返回一个true,输入错误的验证码会返回false,我们可以进行改包;),是否可以重复使用(五分钟之内有效:五分钟之内只能使用一次,一旦使用就失效)。
-
(2)爆破的具体操作
-
首先再docker中运行dvwa并且将其映射再浏览器中的某个端口,假如这里映射的就是8080.然后进入DVWA security进行安全等级的调整,调整到low,然后点击submit;点击brute force就是爆破模块,首先输入一个username和password,比如usernameL:admin,password:123,然后使用burp进行抓包--进入burp中将其send to intruder--再postion中进行要爆破参数的选择--再payloads中进行payload类型的选择和payload option字典的导入,或者添加--start attack。
运行docker中的dvwa镜像 docker rm -f $(docker ps -aq) docker run -d -p 8080:80 sagikazarmark/dvwa
-
根据响应数据包的长度进行正确密码的判断,因为错误的密码的响应长度都是一样的。然后确定可能的正确密码,然后再去进行测试,从而获取正确的密码。
-
使用options中找到grep-match,首先clear,然后添加welcome进行筛选,也可以确认正确的密码,这一个首先你要确定出现正确的密码之后会有什么现象,是提前得知的,对于DVWA而言,这里只要你输入了正确的密码,那么就会出现welcome,从而告诉你登录成功,所以这里选择添加的内容是welcome进行筛选。
-
登录页面是否能够爆破取决于想要爆破的数据包中是否存在随机变化的参数,如果有则不可以爆破,如果没有则可以爆破。
(3)Payload type类型讲解
这里总共有18种payload类型,这里就看一些常用的类型。
-
simple list:简单样式,通过load进行加载字典,最常用的一种类型;
-
runtime file:没用,一般情况不用;
-
custom iterator:给两种payload,则会将第一种和第二种进行排列组合;自定义迭代器,笛卡尔积原理;
-
character :字符串替换,例如将a替换为4--aaaa>>a4aa,aa4a,aaa4,4aaa,44aa这种依次替换;
-
case modification:大小写替换,五个选项,no change不做替换,to lower case:替换成小写,upper case替换成大写,首字母大写,驼峰规则;
-
character blocks:字符快,通常用来绕WAF的,通过添加脏数据(迅速在短暂的时间内添加很多个脏数据,用来消耗WAF的检测时间,让WAF检测到攻击特征的代码之前就将其进行消耗完,那么在攻击代码过去的时候,他没有能力去检测了,所以就会绕过)
-
Number:数字类型,以数字进行遍历进行爆破。适用于对于id的爆破,数字遍历
-
dates:日期遍历
-
brude forcer:暴力字典;常用;从你给出来的字符里面进行排列组合,可以指定最短长度和最长长度;
-
null payloads:反复提交,很有用;
-
要首先在请求包中对于变量标识进行清空,然后在请求正文中输入一个空格,将其进行标识,之后选择payload类型为空值,然后选择插入多少个,这个时候仅仅只是对于数据包中使用空值去替换空值,不会有任何的修改。只是将数据进行反复的提交。
-
-
character :字符替换,把字符转换成ASCLL值,然后使用ASCLL值进行加一,进行替换。如a的ASCLL值是97,b是98。原本的字符为abc,将a进行转换之后为a的ASCLL97+1,变成98,然后98对应的字母是b,所以abc对应的转换为bbc。这里采用的是依次进行转换,一个字母一个字母进行替换。
(4)Payload的攻击类型
-
sniper狙击手模式:对一个参数进行爆破;使用的是一组payload
-
battering ram攻城锤模式:对多个参数进行爆破,也就是可以标注多个payload位置,但是进行爆破的时候其payload的值都是相同的,使用的是一组payload(无应用场景)
-
pitchfork交叉模式:可以设置多个payload,但是第一种payload和第二种payload的数量是一样的,且第一种payload的第一个必须和第二种payload进行对应,第一种第二个必须和第二种第二个进行对应。
-
chuster bomb:使用多组payload集合,并且为排列组合模式,这里就是第一种payload可以和第二种payload进行排列组合。
(5)options可选项
-
在request engine中,可以设置线程数,用来提高爆破的速度,但是会消耗笔记本的性能,如果笔记本的硬件性能不是很好的话,不建议提高,这里可以通过将number of threads 的数值进行调大,来提高burp爆破的一个速度。
(6)攻击结果的分析
在给出来的结果中对于长度或者其他的参数进行升序或者降序的排列。
-
不同的http状态码
-
不同长度的应答
-
存在或不存在某些表达式
-
错误或者超时的发生
-
用来接收或者完成响应时间的差异
在实战中,慢慢尝试积累经验和字典。
6、burp的repeater功能
-
主要功能为对于数据包进行修改,然后做一个重放
7、burp的extensions功能
-
扩展功能,能够安装很多的插件
(1) BApp store
8、重点
proxy模块、intruder模块、repeater模块这三个模块需要特别熟悉,其他的只需要知道burp有这个功能就可以了。
所有前端的校验在burp中均是不生效的。
作业
网络安全C10-2024.9.21 作业:
1、安装burp,分别在本机上实现全局代理和局部代理,提供设置过程的说明文档;
上面文章中已经有了关于全局代理还局部代理的具体步骤。全局代理主要是指的是再Edge中进行代理,局部代理指的是在火狐浏览器中进行代理设置。
(1)火狐局部代理设置,有两种方式:第一种为在设置中进行手动代理的配置,第二种为安装插件FoxyProxy Standard。
方法一:
手动代理的配置:打开火狐浏览器--右上角的三个横线--点击设置--划到最下面进行网络设置--进入连接设置后点击将自动检测代理改为手动配置代理,HTTP代理为127.0.0.1,端口是8080;勾选将此代理用于HTTPS中,勾选SOCKS_v5,最后点击确定,这样已经配置好了http代理。
方法二:
打开火狐浏览器--点击三个横杠--找到扩展和主题--搜索插件FoxyProxy Standard--点击--然后添加到火狐浏览器中--在插件中就可以看到该插件了,如下图。
点击该插件--点击下面的选项--进入选项之后点击上面的Proxies--然后点击添加--在标题处可以填写Burp--hostname:127.0.0.1;端口:8080--点击保存就可以了。
当我们再次打开插件的时候就会出现如下图所示的情况,其中disable指的是不适用任何代理,burp则是我们的抓包代理,xray这里目前先忽略。这样我们在想要使用抓包工具的时候就选择burp,不想要使用抓包工具的时候就选择disable就可以啦。
(2)Edge的全局代理
打开Edge浏览器--设置--系统和性能--代理服务器设置--打开计算机的代理设置(这时会进入到电脑的网络设置中)--手动设置代理--打开--代理IP地址127.0.0.1,端口是8080.--保存。就可以了。
当我们使用Edge的时候发现设置的代理不再是一个浏览器这么简单,而是直接进入到电脑的网络设置了,这个时候我们也是可以抓包到火狐浏览器中的网页内容的。但是如果我们使用的仅仅是火狐浏览器的代理,那么不可能抓到其他浏览器中的数据包。这就是局部代理和全局代理的区别。
2、利用burp实现对https站点的抓包;
第一问的操作已经配置好http站点的抓包了,要想实现https站点的抓包,需要下载相关证书。
具体的操作为:打开浏览器--输入网址http://burp,然后会看到如下图所示的网页,点击CA Certificate,点击保存文件,将保存的文件双击进行安装,安装证书--下一步--下一步--完成--确定就可以了。
接下来在火狐浏览器中点击设置--隐私与安全--找到证书--查看证书--然后点击导入--选择刚才下载的证书--打开--最后点击确定。--这样就可以实现对https的抓包。
如我对https://www.baidu.com进行抓包,结果如下图所示。
3、使用Burp的Discover Content功能爬取任意站点的目录,给出爬取过程的说明文档、站点树截图;
首先打开burp,然后使用抓包工具对想要爬虫的网站进行抓包--点击Target找到刚才抓包的网站,然后右击--找到Engagement tools--discover content--点击session is not running--即开始进行爬虫。
4、分别使用Burp Scan的主动扫描和被动扫描功能对DVWA站点进行扫描,输出扫描报告;
关于主动扫描和被动扫描的相关原理在上文均已经提到,这里展示两种方式扫描的结果和扫描报告。
(1)主动扫描
(2)被动扫描
打开这两个按钮,新建扫描,则可以被动扫描出来问题。
5、Burp Intruder爆破
(我无法访问题目中给出来的靶场,这里我简单描述了一下爆破过程)
浅浅理解,还请批评指正。