BurpSuite 使用指导书
介绍:Burp Suite带有一个代理(proxy),通过默认端口8080上运行,使用这个代理,我们可以截获并修改从客户端到web应用程序的数据包;版本测试中,经常用proxy的拦截功能,测试参数或操作是否为服务端校验;
参见地址(rTools):
ftp://10.88.67.169:2021/Safe/SafeScan/BurpSuite/
BurpSuite基于JAVA开发,安装前请先确保计算机已经安装JRE环境。在“开始”—“运行——cmd”,命令提示符中输入“java -version”,若出现类似下图信息即证明已安装JRE环境。
对ie或者chorme浏览器
点击“高级(C)”,进入代理服务器设置。要拦截网段的小网IP,点击确定,配置完成。
比如说登录系统账户名和密码的拦截
拦截前关闭状态
需要拦截时打开
在登录时输入用户名密码,点击登录
拦截到的用户名和密码,点击登录,即把用户名和密码发送到服务器端进行校验
6 BurpSuite拦截过滤功能使用技巧
使用burpsuite进行拦截时,经常会遇到以下两种情况:
1, 点击某个按钮后,burpsuite拦截到多个HTTP报文,经常需要花费很多精力从其中找到有用的报文;
2, 部分HTTP报文是实现特定功能的“心跳报文”,这些报文每隔几秒就会出现一次,拦截到的这类“心跳报文”对于我们也是无用信息,同样需要花费很多精力去处理。
以上两种情况,其实利用BurpSuite的过滤功能都可以解决,方法如下:
方法一:设置白名单只拦截需要的报文
方法二:设置黑名单不拦截“心跳报文”
方法一:设置白名单只拦截需要的报文
客户端的按钮每次按下一般都会向服务器端发送一个HTTP请求报文,我们可以根据该报文的URI来进行白名单过滤。从研发处获得这些HTTP请求报文的URI,也可以使用burpsuite自己来找到。
以NetEco1000U为例,登录客户端进入“用户管理”页面,同时开启burpsuite拦截功能。点击NetEco
按钮,同时观察burpsuite拦截到的HTTP请求报文,如下所示
可知该HTTP请求报文的URI为:https://10.61.69.247:8443/securitys!toRegister.action
进入BurpSuite的Proxy-Options页面,设置白名单从而只拦截该报文,步骤如下:
1) 勾选“Intercept requests based on the following rules”,表示按照下面的规则进行拦截;
2) 点击Add,增加一条拦截规则;
3) Boolean operator选择And,Match type选择Any header,Match relationship选择Match,Match condition里输入“toRegister”(该报文的关键字),点击Ok按钮;
4) Proxy-Options页面往下拉,继续设置HTTP响应报文拦截:
5) 勾选“Intercept requests based on the following rules”,表示按照下面的规则进行拦截;
6) 点击Add,增加一条拦截规则;
7) Boolean operator选择And,Match type选择Any header,Match relationship选择In Request Match,Match condition里输入“refreshTip”(表1中第一条报文的关键字)
8) 点击ok按钮,即完成白名单的添加;
9) 随意操作NetEco客户端,即可发现Burpsuite只拦截到点击
按钮时的请求报文和响应报文,其他报文都过滤出去了。
7 Burp Suite XSS测试插件使用指导书
术语
反射型XSS:这种XSS,跨站代码一般存在于某一个链接中,当攻击者访问这样的连接时,跨站代码就被执行,这类跨站代码一般不会存储在服务器上面
存储型XSS:这种XSS用起来比较方便,跨站代码会存储在服务器上面数据库中,换句话就是可以持久的进行攻击,亦称持久型XSS
DOM型XSS:这是由于客户端脚本自身的解析不正确导致的安全问题
各种编码:HTML编码、javascirpt 编码 、jsunicode编码、URL编码、BASE64编码
示例:如把‘<’编码
简介
开发这个工具的背景是,目前分析内网实验室报告,发现检查出来很多XSS问题,包括存储型和反射型,主要都是通过手工检测出来的,主要是由于未对服务端返回的用户输入做HTML编码,也没有做任何过滤特使字符的操作,有的只是做了简单的过滤(如过滤掉<、>等),但是用户输入如果各种转码后,又可以达到攻击目的。所以做了这个插件。
该插件主要用于检查反射型XSS,对Burp Suite本身自带的XSS检查规则的补充,实现原理,就是在burp suite识别出来的URL的每个注入点(一般会把“=”号后面的内容识别为一个注入点)上,填入我们整理的规则(补充规则大部分从内网实验室报的问题单中提取),实施攻击,检查返回报文中,是否对规则做了HTML编码后返回。
对于存储型XSS,当前建议手工根据测试,也可以通过appscan工具辅助扫描排查。本插件在后续预研成果过的基础上也会对存储型XSS检查提供更好的支持。
1. XSS测试插件与既有的Scan功能一起使用,所以基本请求日志以及扫描进度会也显示在Scanner的Scan queue中。
2. 扫描结果也显示在Scanner的Results中,挂在[XSS TEST]节点下。异常描述信息、异常背景、和建议修改方案偏简陋,如需更详细化,需要产品线提供进一步信息显示需求。
3. 由于注入点是依托于工具本身的Scan功能去检测的,所以请根据实际业务需求勾选[Scanner]->[Options]->[Attack Insertion Points]。
4. 只执行XSS测试时,请将[Scanner]->[Options]->[Active Scanning Areas]中的勾选全部去除(除了XSS本身需要打钩)。
5. 如果执行Scan功能时,不想执行本插件,请将该插件去除。(去掉[Extender]中该插件的勾选)
该插件由以下两个包组成:
Ø xssTest.jar
Ø CustomLogger.jar(已开发日志插件,可以记录扫描的所有请求和响应报文)
将xssTest.jar导入到Burp Suite中。
同样的把CustomLogger.jar 插件也导入到Burp中
1、插件会自动加载整理注入点XSS的注入脚本,可以对XSS脚本导入、删除、清空、新增功能。
2、XSS脚本库可以在后续实践中,随着对XSS检查的更进一步理解,做新增修改和优化动作。
1、根据实际业务需求勾选[Scanner]->[Options]->[Attack Insertion Points]。
※如果只需检查Body部分的参数,所以只选中[Body parameter values]
2、只选[Scanner]->[Options]->[Active Scanning Areas]中XSS相关选项(工具本身的XSS检查)。
1、选择测试对象,点击右键,选择[Actively scan this branch]
XSS测试将扫描该测试对象下的所有请求。
2、扫描进度和结果集成在工具本身自带的scanner工具中(扫描结果中XSS TEST节点下的issue即为插件扫描出来的问题)
3、扫描的所有请求日志,可以在日志插件中查看
方法二:设置黑名单不拦截“心跳报文”
这里的“心跳报文”指客户端不进行任何点击操作也会发送出去的报文,包括页面请求刷新、判断会话失效等报文。我们可以从研发处获得这些http报文的URI,也可以使用burpsuite自己来找到。
以NetEco1000U为例,登录客户端进入“监控”页面,开启burpsuite拦截功能。客户端不进行任何操作,同时观察burpsuite拦截到的HTTP请求报文,可以发现客户端不断发送这8条HTTP请求报文:
表1
把“心跳报文”都整理出来后,进入BurpSuite的Proxy-Options页面,设置黑名单从而不拦截这些“心跳报文”:
10) 勾选“Intercept requests based on the following rules”,表示按照下面的规则进行拦截;
11) 点击Add,增加一条拦截规则;
12) Boolean operator选择And,Match type选择Any header,Match relationship选择Does not Match,Match condition里输入“refreshTip”(表1中第一条报文的关键字)
13) 点击ok按钮,即完成第一条黑名单的添加;
14) 按照2,3,4步,继续完成其他5条黑名单的添加,如下图所示:
15) Proxy-Options页面往下拉,继续设置HTTP响应报文拦截:
16) 勾选“Intercept requests based on the following rules”,表示按照下面的规则进行拦截;
17) 点击Add,增加一条拦截规则;
18) Boolean operator选择And,Match type选择Any header,Match relationship选择In Request Does not Match,Match condition里输入“refreshTip”(表1中第一条报文的关键字)
19) 点击ok按钮,即完成第一条黑名单的添加;
20) 按照8,9,10步,继续完成其他5条黑名单的添加.
21) 再次回到burpsuite的Proxy-Intercept页面,即可发现加入黑名单的“心跳报文”都被过滤掉了。
备注:
1,白名单和黑名单可以配合使用,如不拦截带有某几个关键字的一些URI,同时拦截带有某几个关键字的另一些URI;
2,拦截规则可参考大家Notes邮箱的拦截设置,每个rule和其他rule的关系有And和Or;Matchtype中有各种类型,包括主机名,IP地址,cookie信息,可以根据拦截特征进行多样化选择。
3,Match condition里输入要拦截的关键字,尽量使用相对某个类型特殊唯一的关键字。