「文末高能」
编辑 | 哈比
前提声明:
此次 Gitchat 分享所写,只作为教学使用,本课具有一定的危险性,对本文所出现的教程内容读者在进行安全评估和渗透测试的途中需要取得授权,非法测试所造成的结果作者(rNma0y)不承担任何法律责任。
Burp Suite 尖端的网络安全扫描器在自动化 Web 应用程序安全领域处于领先地位。
真的是一点都不过分,了解详情请继续往下读。
Burp Suite 介绍
Burp Suite 是用于攻击 web 应用程序的集成平台。它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程。
所有的工具都共享一个能处理并显示 HTTP 消息,持久性,认证,代理,日志,警报的一个强大的可扩展的框架。
他的官方网址是 https://portswigger.net/burp/。
Burp Suite(以下简称 Burp),该公司发行了两个版本,一个是Community Edition社区版,另一个则是Professional专业版,所支持的功能也不大相同。
专业版提供了 Web 漏洞扫描功能和一些高级工具,而社区版则只是提供基本的手动工具,但 Pro 版的价格是昂贵的,需要用户每年 $ 349.00 美金。
笔者认为这个工具好就好在能够共享一个 HTTP 消息,能够在各种模块之间交换信息。
如果上天只能让我选择一个 Web 扫描器,那么我会选择 Burp,因为他不仅仅只起一个爬网的作用。
Burp Suite 安装:安装 Burp 很简单,在 Kali Linux 里已经集成了社区版的 Burp,故此不在多叙述。
Windows 的安装环境,需要各位读者先安装 “Java” 环境后才能打开。
下载好 Burp 之后,里面有两个文件,他们分别是 “BurpLoader.jar” 和 “burpsuite_pro_v1.7.11.jar”,点击 “BurpLoader.jar” 即可打开软件,如下图所示。
打开软件后会出现如图,现 Burp 官方版本号为 “v1.7.26”,笔者手里的是 Pro 版本。
Burp 模块介绍
- Target
Target 作为 Burp 的第一个模块,作用是一个站点地图,会在左侧出现所有通过代理服务器的网页都会在此显示。
当访问了之后,“Target” 功能模块已经将所有访问记录给爬取了下来,并显示在左侧,如图所示。
当然,如果想使用 Burp 进行测试,首先要修改一下本机浏览器的代理。
下面以火狐为例来讲解 Burp 的基本配置
首先需要在火狐的设置里,找到代理设置,设置为和 Burp 软件一样的 IP,即可。
需要注意的就是端口号需要和这上面设置的端口号一致,都是 8080
Proxy
在 Burp 里,“Proxy” 模块是一个至关重要的模块,他的布局是这样的。
Proxy 模块里面的 intercept 模块的作用是截断 HTTP/HTTPS 之间的请求流量,如果第三个按钮 “intercept is off”,这里是未开启拦截的意识,如果开启了则会变为 “intercept is on”
现在我们拦截下 CSDN 登陆页面的 HTTPS 流量。
在我输入了账号密码之后,点击了开启拦截,状态变为 “intercept is on”,此时,通过这个 HTTPS 请求下来的流量都会被拦截不发送并且显示在你的 “intercept” 模块下,如图所示。
去掉多余的参数,在 POST 登陆的实际请求只有这一句
&username=rNma0y&password=147258369&rememberMe=true<=LT-1269028-Xs5rYscId3GAlIBVB6NgisRx6zJCo5&execution=e2s1&_eventId=submit
当拦截开启的时候,整个网页他是无法请求的,因为发送的所有请求都被拦截下来了,如果你想访问下个网页,选择模块里的第一个按钮 “Forward”,这个按钮意味着放行,令他通过请求,发送此数据包。
Drop
Drop 则是丢掉这个包,重新抓取数据。
Action
Action 的功能如下,可以把请求发送到各个模块进行交互。
HTTP history
这个模块的功能则是这个就是截取包的历史记录,把先前截取的数据包历史停留在这里。
Scan
Scan 这个功能模块的作用则是扫描,一个 Web 应用程序的扫描器,是 Pro 版独有的,社区版则不带有此功能。
使用方法是在抓包后右键菜单,出现 “Do a active scan”,点击后则会发送到 Burp 的 Scan 模块下,最重要的指示则是会高亮黄色。
Intruder
Intruder 模块则是整个 Burp 工具里最有用的一块,在暴力破解这方面经常会上手,可以通过增加一个字典来实现自动化的攻击。
在 Intruder 模块下的 Position 下可以对 HTTP 请求进行操作,可以把 HTTP 请求里的某个单独的参数设置为变量,来进行替换,比如上图所示,标黄的部分即为变量参数。
Attack type
Attack type 里的参数有四种,分别是如下图所示:
Sniper
Sniper,就是将你添加的字典里的数值一次赋给我们的多个参数去组合尝试,比如我们设置了有三个参数,分别是 a,b,c,字典里面有五个值(1,2,3,4,5),那么该模式下 Burp 会把 a 去替换成字典里的数值,b、c 保持原值,然后 b 去替换字典里的数值,a、c 保持原值,c 则以此类推。
Battering ram
Battering ram,则是同时将 abc 赋值都用添加的字典去替换尝试。
Pitchfork
Pitchfork 则是需要用户导入三个字典,后依次替换变量。
Cluster bomb
Cluster bomb 也需要用户导入三个字典,但是他会把每个字典里的数值都去给变量测试替换一遍,比如 a 变量,字典一测试了字典二和三也会跟上去替换。
Payload
Payload,作用是导入字典的作用:
Simple list
在这个模块下的 Simple list 定义则是最基础的,适合小量数据。
Brute forcer
Brute forcer 则是单纯的暴力破解,选择这个模块后他会尝试字典的所有内容。
Options
Options 是 Intruder 最后一个模块,他的功能是线程等功能的设置。
Number of chreads,线程量。
Number of retries on network failure ,则是网络故障的重试次数,三次则是重试三次连接。
Pause before retry,重试失败的请求时,Burp 将在重试之前等待失败后的指定时间(以毫秒为单位)。如果服务器被流量淹没,或发生间歇性问题,最好在重试之前等待一段时间,默认值为 2000 毫秒。
Repeater
Repeater 即网页请求头,一般使用这个功能也是通过 Proxy 抓包然后 Send 发送过来的。
主要就是修改请求的各项参数等等然后点击左上角的 go 发送出去,然后在右边接受到请求,同时在右侧显示请求和状态,多作用于的 HTTP 请求的模糊测试。
HTTP/1.1 200 OKDate: Mon, 08 Jan 2018 08:18:06 GMTContent-Type: application/json; charset=utf-8Content-Length: 98Connection: closeX-DNS-Prefetch-Control: offX-Frame-Options: SAMEORIGINX-Download-Options: noopenX-Content-Type-Options: nosniffX-XSS-Protection: 1; mode=blockETag: W/"62-K/Yyr6AK6b7uRdHNc5GXLA"Vary: Accept-Encoding{"code":0,"message":"book configration updated successfully.","bookId":"5a521ce5"}
Decoder
Decoder 模块是一个方便的编码器,故此不再多叙述。
Comparer
Comparer 模块是一个文件比较的功能,也非常简单,请读者自行了解。
到这里就已经结束了 Burp 大部分功能,作用于渗透测试和安全评估中会经常使用的功能简介,接下来我们进入一次实战练习。
扫下方二维码,阅读完整原文
领取专属 10元无门槛券
私享最新 技术干货