Burp Suite是用于Web应用安全测试、攻击Web应用程序的集成平台,它将各种安全工
具无缝地融合在一起,以支持整个测试过程中,从最初的映射和应用程序的攻击面分
析,到发现和利用安全漏洞。
Burp Suite为这些工具设计了许多接口,以加快攻击应用程序的过程。所有工具都共享
一个请求,并能处理对应的HTTP 消息、持久性、认证、代理、日志、警报。Burp Suite
结合先进的手工技术与先进的自动化,使你的工作更快,更有效,更有趣。
Burp Suite是Java编写的,所以在使用前需要安装JDK环境,这里不进行具体讲解如何
安装JDK。
官方下载地址:https://portswigger.net/burp
安装过程非常简单,傻瓜式点击“下一步”安装。
安装成功之后运行如下所示,点击“Next” -> “Start Burp”显示主界面。
Burp Suite的模块几乎包含整个安全测试过程,从最初对目标程序的信息采集,到漏洞
扫描及其利用,多模块间高融合的配合,使得安全测试的过程更加高效。主要模块如下:
在“设置”->“添加附件”中搜索“foxyproxy”。
添加安装该附件,如下图所示。
点击添加安装。
添加成功之后,可以选择打开FoxyProxy功能或关闭,如下图所示。
该功能主要用于查看网站的目录及元素,这里以某学校的管理系统为例,该网站的目录
显示如下。
获取内容包括Host、提交方法、URL、参数、状态码、标题、Comment、Time等,并
且能够设置对应网址的注释Comment,如作者添加了“登录页面”注释。
右下部分能显示Request请求和Response响应信息,包括Raw、Headers、Hex、HTML
等,如下图所示。
点击Site map左脚上部分,能够选择要显示的信息,包括显示HTML、CSS、Images
等,显示状态码2xx、3xx、4xx、5xx等,显示和隐藏设置等。该功能可以按照请求类
型、请求的状态、mime类型、搜索关键字、文件后缀、监听的端口等等,按个人需求去
缩小需要的范围。
比如作者设置只显示2xx状态码页面,则显示如下图所示。
同时,可以为不同的条目自定义设置背景颜色,代表不同的功能或类型。如果认为某个
数据包比较重要,可将当前数据包设置某个醒目的颜色以提示其重要性。
选中链接右键能实现更多功能,比如Spider、Scope等。
Scope主要是配合Site map做一些过滤的功能,如图所示。
Proxy主要包括Intercept、HTTP histroy 、Websockets history、Options四个标签。
该模块主要是控制抓取到的数据包,用于显示修改HTTP请求及响应内容,并可以将拦
截的HTTP请求快速发送至其他模块处理。
比如当“Intercept is on”开启时,火狐浏览器输入用户名和密码点击登录,则可以看到
Burp Suite拦截的用户名和密码。
Raw:以纯文本形式显示数据包
Hex:可编辑数据包的二进制数据,在进行00截断时非常好用。
拦截信息如下所示,其中密码为MD5加密。
POST /cas/login HTTP/1.1
Host: xxxxx.edu.cn
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Referer: http://xxxxx.edu.cn/cas/login
Cookie: key_dcp_cas=nyfjdGZGmmYYdbN1fv2G349LydwzRhnrbGLqj4LMpRGd1YL3Qstl
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 221
service=http%3A%2F%2Fi.xxxx.edu.cn%2Fdcp%2Findex.jsp&serviceName=null&log
username=20190804&password=e10adc3949ba59abbe56e057f20f883e&replace-pwd=
在线解密,可以看到密码为“123456”,当然,这是错误的用户名和密码。
username=20190804
password=e10adc3949ba59abbe56e057f20f883e
该模块将记录经过代理服务器访问的所有请求,即使当Intercept is off时也会记录。包括
Host(主机)、Method(请求方式)、URL(请求地址)、Params(参数)、Edited(编辑)、
Status(状态)、Length(响应字节长度)、MIME type(响应的MLME类型)、Extension(地址
文件扩展名)、Title(页面标题)、Comment(注释)、SSL、IP(目标IP地址)、Cookies、
Time(发出请求时间)、Listener port(监听端口)。
当我们选中某个请求时,可以看他的请求包信息,同样也可查看他的响应包信息。
击某个数据包即可打开详情,通过Previous/next功能切换到其他数据包,同时,也可
将该数据包发送到其他功能模块当中。
该模块用于记录WebSockets的数据包,是HTML5中最强大的通信功能,定义了一个全
双工的通信信道,只需Web上的一个 Socket即可进行通信,能减少不必要的网络流量并
降低网络延迟。
该模块主要用于设置代理监听、请求和响应、拦截反应、匹配和替换、ssl等。
侦听从您的浏览器传入的连接本地HTTP代理服务器。它允许您监视和拦截所有的请求
和响应,并且位于BurpProxy的工作流的心脏。默认情况下,Burp默认监听12.0.0.1地
址,端口8080。
置拦截的匹配规则,当Intercept request based on the following rules为选中状态时,
burpsuite会配置列表中的规则进行拦截或转发。注意:如果该复选框未选中,那么即使
Intercept is on也无法截取数据包。
如下图所示,创建一个规则:只拦截请求头中匹配DVWA的数据包。在实际使用过中我
们可能需要创建更多更复杂的规则,来找到想要的数据包。
用于执行响应的自动修改,可以使用这些选项来自动修改HTML应用程序响应中匹配的
内容。比如,设置高亮隐藏部分,勾选unhide hidden form fields(显示隐藏的表单,在
html中type为hidden的表单)和prominently highlight unhidden fields(高亮隐藏部
分)。
示例如下:
remove javascipt form validation
删除javascript表单验证。某些站点通过JavaScript过滤表单的内容,如字符串长度、文
件后缀、字符串格式等,开启后删除验证javascript。
下面以某网址为例,进行简单的暴库测试。注意,它是HTTP的登录请求。
第一步,用Burp Suite进行拦截请求,找到请求参数进行篡改。
TextBoxUserName=15200000000
TextBoxPwd=111111
第二步,在界面中鼠标右键,在弹出菜单中选择“Send to Intruder”(Ctrl+I),此时会
将请求数据分发给Intruder模块,并且Intruder变红。
第三步,使用Burp Suite工具中的Intruder模块进行破解参数配置,运行破解任务并成
功破解用户名和密码。
(1)在Intruder模块中选择Positions选项,单击“Clear”按钮清楚相关默认参数前后的特
殊符号“§”。
(2)鼠标选中请求数据页面中的Password参数值(需要进行暴力破解的密码值),单
击“Add§”按钮进行位置标记。
TextBoxPwd=§111111§
(3)选择Payloads选项,单击“Load items form file”,在弹出的对话框中选择暴力破解
密码文件并单击“打开”按钮,将破解密码列表导入。
(4)单击“Start attack”按钮开始破解测试。
(5)在弹出的窗口“Intruder attack”中可以根据返回长度Length的不同判断破解是否成
功,这里隐藏的密码是“013579”,它的长度最大并且为最终密码。注意,Length越大那
么密码吻合就越大。
也可以通过查看Response返回信息或Status返回状态的不同信息判断是否成功。
错误的密码返回信息:
正确的密码返回信息:
(6)通过破解的密码尝试登陆。
(7)如果密码是经过MD5加密的,如上面第三部分测试的网站,则需要进行如下设
置。在“Payload Processing”中点击“Add”添加哈希MD5加密。
此时点击攻击如下图所示,是经过加密的匹配。
当我们想访问HTTPS网站时,需要导入Burp Suite安装证书并安装,基本流程如下:
第一步,配置好浏览器代理。
第二步,在地址栏输入http://burp,回车下载证书。注意这里的证书不能是零字节,不然
去找破解版。
第三步,向浏览器中导入证书,在firefox中,选项-> 高级->证书->查看证书->证书机
构。
第四步,导入证书,信任证书。
如下图所示:
第五步,找个HTTPS网站测试即可