BurpSuite
BurpSuite --抓包工具
BurpSuite基础使用
一、BurpSuite 安装和配置
java -jar -Xmx2G /your_burpsuite_path/burpsuite.jar
java -jar -Xmx2048M /your_burpsuite_path/burpsuite.jar
java -jar /your_burpsuite_path/burpsuite.jar
二、Burp Suite代理和浏览器设置
-
IE设置
-
FireFox设置
-
Google Chrome设置
-
手机抓包代理
1.手机和电脑接入同一个WIFI,在电脑上确认WIFI的IP地址,即代理地址
ipconfig
2.在手机上进行代理设置
导入ca证书,电脑下好,微信发给手机 文件传输助手 点击证书安装即可
3.在burp上进行代理设置,与手机设置相同的代理地址
-
手机抓包配置
??????
参考配置https://zhuanlan.zhihu.com/p/380294929
https://zhuanlan.zhihu.com/p/380294929 -
- 1、安装软件。在手机上分别安装 JustTrustMe.apk / VirtualXposed_0.20.3.apk ;
-
- 2、打开 VirtualXposed 程序
-
- 3、进行应用迁移
-
- 4、查看迁移的应用(Xposed Installer 是自带的,不用迁移)
-
- 5、在VirtualXposed中打开 Xposed
-
- 6、点击按钮 找到 模块管理 ,勾选 JustTrustMe
-
- 7、手机安装Burp证书,将证书传到手机后,直接点击安装
-
- 8、将手机与电脑连接至同一Wi-Fi网络下,设置手机代理为电脑的IP,并在burpsuite中监听
-
- 9、手机打开微信,访问小程序进行抓包
xposed+justTrustme使用与分析
有时候在测试APP抓取数据包,配置正常,网络也是正常的,但就是抓取不到数据包;这可能是APP做了证书验证,APP通过进行证书验证,判断当前手机是否开启了代理端口,判断当前网络环境是否是证书所允许;如果开启了代理,APP中的数据流量就不会通过代理端口,我们就抓取不到数据包了。这时我们可以使用一个框架组合来解决此问题:Xposed框架+justTrustme。
- 安装包在线扫描
腾讯:https://service.security.tencent.com/kingkong
360:https://dev.360.cn/html/vulscan/scanning.html
梆梆安全:https://dev.bangcle.com/
娜迦科技:http://www.nagain.com/#/home/index
爱加密:
TideSipre:http://app.sdsecurity.org.cn:8181/
三、使用Burp Suite代理
Burp Proxy基本使用
- 首先,确认JRE已经安装好,Burp Suite可以启动并正常运行,且已经完成浏览器的代理服务器配置
- 打开Proxy功能中的Intercept选项卡,确认拦截功能为“Interception is on”状态,如果显示为“Intercept is off”则点击它,打开拦截功能。
- 打开浏览器,输入你需要访问的URL(以http://baike.baidu.com/为例)并回车,这时你将会看到数据流量经过Burp Proxy并暂停,直到你点击【Forward】,才会继续传输下去。如果你点击了【Drop】,则这次通过的数据将会被丢弃,不再继续处理。
- 当我们点击【Forward】之后,我们将看到这次请求返回的所有数据。(默认不开启)
- 当Burp Suite拦截的客户端和服务器交互之后,我们可以在Burp Suite的消息分析选项卡中查看这次请求的实体内容、消息头、请求参数等信息。消息分析选项视图主要包括以下四项:
raw
params
headers
hex
数据拦截与控制
可选项配置Options
-
客户端请求消息拦截
主要包含拦截规则配置、错误消息自动修复、自动更新Content-Length消息头三个部分。 -
服务器端返回消息拦截
它的功能主要包含intercept response based on the follow rules和Automatically update Content-Length header when the response edited两个选项,其功能分别与客户端请求消息拦截中的intercept request based on the follow rules、Automatically update Content-Length header when the request edited相对应。 -
服务器返回消息修改
-
- 显示form表单中隐藏字段
- 显示form表单中隐藏字段
-
- 高亮显示form表单中隐藏字段
-
- 使form表单中的disable字段生效,变成可输入域移除输入域长度限制
-
- 移除JavaScript验证
-
- 移除所有的JavaScript
-
- 移除标签
-
- 转换https超链接为http链接
-
- 移除所有cookie中的安全标志
-
正则表达式配置
-
其他配置项
历史记录History
HTTP历史界面由筛选过滤器、历史记录列表、消息详情3个部分组成
四、SSL和Proxy高级选项
卸载ca证书
windows+r mmc
Proxy监听设置
Proxy监听设置主要包含3块功能:
- 端口绑定模式:
Binding绑定的端口port是指Burp Proxy代理服务监听的端口,绑定IP地址分仅本地回路、所有接口、指定地址三种模式,在渗透测试中,无论你选择哪种模式,你需要明白一点,当你选择的非本地回路IP地址时,同局域网内的其他电脑也可以访问你的监听地址。
2. 请求处理Request Handling 请求处理主要是用来控制接受到Burp Proxy监听端口的请求后,如何对请求进行处理的,即使用burp再次转发。
只能针对http协议
https协议
端口的转发、主机名/域名的转发、强制使用SSL和隐形代理4个部分
3. SSL证书这些设置控制呈现给SSL客户端的服务器SSL证书。
可以解决使用拦截代理时出现的一些SSL问题:
a. 使用自签名证书(Use a self-signed certificate )
b. 生成每个主机的CA签名证书(Generate CA-signed per-host certificates)
c. 生成与特定的主机名CA签发的证书(Generate a CA-signed certificate with a specific
hostname)
d. 使用自定义证书(Use a custom certificate)
五、Burp Target
目标域设置 Target Scope
Include in scpoe:包含作用域,过滤想要的数据
Exclude form scope:不包含作用域,过滤不想要的数据
站点地图 Site Map
总结:
Target 工具的使用
Target 工具的使用的使用主要包括以下部分:
- 手工获取站点地图
- 站点比较
- 攻击面分析
动态url 带参数
静态url 不带参数
伪静态 提高安全系数,消耗服务器资源
当我们手工获取站点地图时,需要遵循以下操作步骤:
1、设置浏览器代理和Burp Proxy代理,并使之能正常工作。
2、关闭Burp Proxy的拦截功能。
3、手工浏览网页,这时,Target会自动记录站点地图信息。
手工获取站点地图的方式有一个好处就是,我们可以根据自己的需要和分析,自主地控制访问内容,记录的信息比较准确但是可能不够全面。与自动抓取相比,则需要更长的时间,如果需要渗透测试的产品系统是大型的系统,则对于系统的功能点依次操作一遍所需要的精力和时间对渗透测试人员来说付出都是很大的。
攻击面分析是Burp Suite 交互工具(Engagement tools)中的功能,这里我们先看看Analyze Target 使用。
-
1.首先,我们通过站点地图,打开Analyze Target,如图所示。
-
2.在弹出的分析界面中,我们能看到概况、动态URL、静态URL、参数4个视图。
-
3.概况视图主要展示当前站点动态URL数量、静态URL数量、参数的总数、唯一的参数名数目,通过这些信息,帮助我们对当前站点的总体状况有粗线条的了解。
-
4.动态URL视图展示所有动态的URL请求和应答消息,跟其他的工具类似,当你选中某一条消息时,下方会显示此消息的详细信息。
-
5.静态URL视图与动态URL视图类似,如图:
-
6.参数视图有上中下三部分组成,上部为参数和参数计数统计区,你可以通过参数使用的次数进行排序,对使用频繁的参数进行分析;中部为参数对应的使用情况列表,记录对于的参数每一次的使用记录;下部为某一次使用过程中,请求消息和应答消息的详细信息。
六、Discover Content
control
config
site map
七、Burp Scan
启动方法
三种。
被动扫描
new scan
右键scan选项 ][\ioiq
]
被动扫描
在Dashboard控制台模块下,有关于爬虫和审计两个功能的设置:
Live passive crawl from Proxy:实时被动爬虫(探测路径)
Live audit from Proxy:实时审计(审计漏洞)
主动扫描
在Dashboard控制台模块下,点击New scan,进行扫描配置。
导出扫描报告
1.在target->site map,选择某个url,右侧issues按ctrl+a全选,右键,点击Report selected issues
2.选择报告格式
HTML:生成HTML格式的报告,以便在浏览器中打印或查看。XML:生成XML格式的报告,适合导入其他工具或报告框架。
3.选择漏洞明细包含内容(保持默认配置)
问题背景 – 问题的标准描述,对于所有相同类型的问题都是相同的。
修复建议 – 标准的修复建议,对于所有相同类型的问题都是相同的。
参考内容 – 漏洞的补充说明。
问题详情 – 对于某些类型的问题,详情中包含有关特定问题的一些其他自定义信息,请注意某些可能适用于特定问题实例的详细信息。
修复细节 – 对于某些类型的问题,此处说明了进一步的修复细节,从这里也能看到问题的某些固定特
征。
漏洞分类 – 基于"常见漏洞举例(Common Weakness Enumeration)"对漏洞做了简单的分类。
4.请求消息和应答消息设置(保持默认配置)
以下选项可用于请求(requests)和响应(responses):
不包括任何消息 – 报告不包含任何有关HTTP的信息。
包含相关摘录 – 报告将工具内结果中突出显示的部分以及相关的HTTP信息包含在内。
包括完整 – 报告将包含完整的HTTP信息,可能包含与问题无关的部分。可以将每条消息限制为指定的
最大长度,以防止报告中呈现过大的消息而导致报告急剧膨胀。
八、Burp Intruder(掌握一个参数,多个参数爆破)
- Intruder使用场景和操作步骤
Burp Intruder通常被使用在以下场景:
- 标识符枚举:Web应用程序经常使用标识符来引用用户、账户、资产等数据信息。例如,用户
名,文件ID和账户号码。 - 提取有用的数据:在某些场景下,而不是简单地识别有效标识符,你需要通过简单标识符提取一些
其他的数据。比如说,你想通过用户的个人空间id,获取所有用户在个人空间的昵称和年龄。 - 模糊测试:很多输入型的漏洞,如SQL注入,跨站点脚本和文件路径遍历可以通过请求参数提交各
种测试字符串,并分析错误消息和其他异常情况,来对应用程序进行检测。由于的应用程序的大小
和复杂性,手动执行这个测试是一个耗时且繁琐的过程。这样的场景,可以通过设置Payload,通
过Burp Intruder自动化地对Web应用程序进行模糊测试。
通常来说,使用Burp Intruder进行测试,主要遵循以下步骤:
-
确认Burp Suite安装正确并正常启动,且完成了浏览器的代理设置。马哥教育
-
进入Burp Proxy选项卡,关闭代理拦截功能。
-
进行历史日志(History)子选项卡,查找可能存在问题的请求日志,并通过右击菜单,发送到
Intruder。 -
进行Intruder 选项卡,打开Target和Positions子选项卡。这时,你会看到上一步发送过来的请求消息。
-
因为我们了解到Burp Intruder攻击的基础是围绕刚刚发送过来的原始请求信息,在原始信息指定
的位置上设置一定数量的攻击载荷Payload,通过Payload来发送请求获取应答消息。默认情况
下,Burp Intruder会对请求参数和Cookie参数设置成Payload position,前缀添加 $ 缝合,如上
图红色标注位置所示。当发送请求时,会将$标识的参数替换为Payload。 -
在Position界面的右边,有【Add $】、【Clear $】、【Auto $】、【Rrfresh $】四个按钮,是用来控制请求消息中的参数在发送过程中是否被Payload替换,如果不想被替换,则选择此参数,点
击【Clear $】,即将参数前缀$去掉。 -
当我们打开Payload子选项卡,选择Payload的生成或者选择策略,默认情况下选择“Simple list",当然你也可以通过下拉选择其他Payload类型或者手工添加。
-
此时,我们再回到Position界面,检查一下要爆破的参数是否正确,确认无误后,在界面的右上
角,点击【Start attack】,发起攻击。
-
此时,Burp会自动打开一个新的界面,包含攻击执行的情况、Http状态码、长度等结果信息。
-
我们可以选择其中的某一次通信信息,查看请求消息和应答消息的详细。
-
很多时候,为了更好的标明应答消息中是否包含有我们需要的信息,通常在进行攻击前,会进行
Options选项的相关配置,使用最多的为正则表达式匹配(Grep - Match)。
-
同时,结果选项卡中所展示的列我们是可以进行指定的,我们可以在菜单Columns进行设置。
-
最后,选择我们需要的列,点击【Save】按钮,对攻击结果进行保存。
-
当然,保存之前我们也可以对保存的内容进行设置。
以上这些,是Burp Intruder一次完成的操作步骤,在实际使用中,根据每一个人的使用习惯,会存在或多或少的变动。而每一个环节中涉及的更详细的配置,将在接下来的章节中做更细致的阐述。
- 只有账号密码:弱锁定
- 账号+密码+图形验证码 无效图形验证码
- 账号+密码+短信验证码 4位验证码 (1/10^4概率)
- 账号+密码+图形验证码+短信验证码:
-
Payload类型与处理
古典加密 凯撒加密 abc bcd
现代加密 rsa aes -
Payload 位置和攻击类型(运用)
-
-
狙击手模式(Sniper)——它使用一组Payload集合,依次替换Payload位置上(一次攻击只能使
用一个Payload位置)被 § 标志的文本,没有被 § 标志的文本将不受影响,对服务器端进行请求,
通常用于测试请求参数是否存在漏洞。 -
攻城锤模式(Battering ram)——它使用单一的Payload集合,依次替换Payload位置上所有被 §
标志的文本,而没有被 § 标志的文本将不受影响,对服务器端进行请求。与狙击手模式的区别在
于,如果有多个参数且都为Payload位置标志时,使用的Payload值是相同的,而狙击手模式只能
使用一个Payload位置标志。 -
交叉模式(Pitchfork)——它可以使用多组Payload集合,在每一个不同的Payload标志位置上
(最多20个),遍历所有的Payload。举例来说,如果有两个Payload标志位置,第一个Payload
值为A和B,第二个Payload值为C和D,则发起攻击时,将共发起两次攻击,第一次使用的
Payload分别为A和C,第二次使用的Payload分别为B和D。 -
集束炸弹模式(Cluster bomb) 它可以使用多组Payload集合,在每一个不同的Payload标志位
置上(最多20个),依次遍历所有的Payload。它与交叉模式的主要区别在于,执行的Payload数
据Payload组的乘积。举例来说,如果有两个Payload标志位置,第一个Payload值为A和B,第二
个Payload值为C和D,则发起攻击时,将共发起四次攻击,第一次使用的Payload分别为A和C,第
二次使用的Payload分别为A和D,第三次使用的Payload分别为B和C,第四次使用的Payload分别
为B和D。 -
可选项设置(Options)
-
Intruder 攻击和结果分析