Burp Suite从入门到精通


简介


Burp Suite是一个集成化的渗透测试工具,它集合了多种渗透测试组件,使我们能更好的完成对web应用的渗透测试。Burp Suite允许测试人员结合手工和自动技术去枚举、分析、攻击Web应用程序。
特点:

  • 跨平台( Java语言编写)
  • 海量插件(支持Java、Python、Ruby)
  • 联动其它工具(sqlmap、Xray等)
  • 需要手工配置一些参数触发自动化流程

程序界面:

各版本区别:
社区版功能最少,不支持扫描模块和插件等,专业版支持;企业版功能最多,它提供了一个自动扫描器,支持定期扫描
专业版和企业版详细区别:https://portswigger.net/burp/enterprise/resources/enterprise-edition-vs-professional

基本组件用法

Proxy组件

主要进行HTTP请求/响应拦截、 修改和代理转发。拦截所有在客户端和服务端之间传输的数据。

  • 客户端需要配置代理:127.0.0.1:8080(Burp默认监听)

  • Proxy组件默认不拦截图片、js、css等静态文件请求
  • 直接修改数据包、通过右键或点击Action进行其它操作
  • 默认只拦截请求,不拦截响应

拦截所有响应的设置方法:Proxy settings -> Response interception rules

拦截指定请求的响应:右键/Action -> Do Intercept -> Reponse to this request

Dashboard组件

主要用作任务管理(扫描任务创建、暂停、停止),事件日志记录,问题展示等。

  • Burp Suite默认会对经过Proxy组件的HTTP请求进行被动扫描。
  • Tasks显示扫描任务(默认显示被动扫描情况)和审计任务情况
  • 红色->表示高危漏洞橙色->表示中危漏洞蓝色->表示低危漏洞灰色->表示提示信息

Target组件

主要记录被测目标目录结构、参数和问题,设置Burp的拦截范围,URL和路径等。
如有时候只想拦截被测目标的请求忽略其他请求就可以在Target scopeInclude in scope中添加目标,排除目标就在Exclude from scope中添加排除目标。

Repeater组件

主要是手工对HTTP请求数据进行修改和重放,对HTTP响应数据进行人工分析。可通过Ctrl+R发送到Repeater组件。

在这个组件中可以直接修改HTTP请求,切换到Hex视图等,右键调出内置功能,包括扫描、发送到其他组件、调用插件、改变HTTP请求方法、改变Body编码、以及进行URL编解码、HTLM编解码和Base64编解码等。

Intruder组件

主要用来自动化测试,如模糊测试、参数枚举、Web漏洞Fuzz和口令暴破等。Burp Suite内置4种攻击类型,19种Payload类型和47组Payload。

  • 至少需要标记一个自动测试位置,选择要测试的参数后点击添加(支持自动添加:Auto
  • 设置Payload,以及对Payload的操作,如Hash、添加前缀、添加后缀、编码等,默认启动对特殊字符的url编码,按需设置
  • 根据测试场景选择对应的攻击模式(如模糊测试、参数枚举等通常使用Sniper,用户名密码暴破通常使用cluster bomb

攻击类型和说明:

Pitchforkcluster bomb每个标记位置都需要一组Payload。
Payload类型和说明:

使用场景

暴力破解401认证,如Tomcat:

暴力破解或Fuzz:
通过状态码、长度、错误、超时等进行筛选,查看响应验证是否成功

Decoder组件

主要用于各种编码解码和Hash计算等,如URL编码解码、Base64编码解码、MD5、SHA计算等。

Sequencer组件

主要用于分析数据随机性,通常用来测试应用程序的session tokens(会话tokens)或其他重要数据项的随机性,如CSRF tokens,密码重置tokens等。
1.Live capture 实时捕获

  1. Manual load 手动加载

可以从Repeter或其他位置发送到该组件,然后进行随机性分析,如Cookie随机性分析:

Comparer组件

提供一个可视化的差异比对功能,通过比对分析两次数据之间等区别,支持单词和字节方式。
单词对比:

字节对比:

Collaborator组件

主要提供一DNSLog平台,通过DNS请求来检测无回显(没有在Response显示Payload执行结果)的漏洞。

如无回显命令注入:

Extensions组件

主要用于插件安装和导入,以及插件所需Python环境和Ruby环境配置等。插件有两种安装方式:

  • 通过Bapp Store安装
  • 通过外部导入

配置Python环境:

安装自定义插件:

通过BApp Store安装插件:

插件使用

一些插件

插件名称地址说明
BurpCustomizerhttps://github.com/CoreyD97/BurpCustomizerBurp自定义主题
HaEhttps://github.com/gh0stkey/HaE请求高亮标记与信息提取
BurpAPIFinderhttps://github.com/shuanx/BurpAPIFinder信息收集插件集成了HaE、APIKit和sweetPotato
OneScanhttps://github.com/vaycore/OneScan递归目录扫描的BurpSuite插件
RouteVulScanhttps://github.com/F6JO/RouteVulScan递归式被动检测脆弱路径的burp插件
TProxerhttps://github.com/ethicalhackingplayground/TProxer用于自动查找基于反向代理路径的 SSRF 的过程
BurpJSLinkFinderhttps://github.com/InitRoot/BurpJSLinkFinder用于对端点链接的 JS 文件进行被动扫描
BurpFingerPrinthttps://github.com/shuanx/BurpFingerPrintBurpSuite插件集成Ehole指纹库并进行常见OA弱口令爆破插件
domain_hunter_prohttps://github.com/bit4woo/domain_hunter_prodomain_hunter的高级版本,SRC挖洞、HW打点之必备!自动化资产收集;快速Title获取;外部工具联动;等等
JsonDetecthttps://github.com/a1phaboy/JsonDetect用于检测 json 的 burp 扩展器,包括 fastjson、jackson、gson
BurpSuite_403Bypasserhttps://github.com/sting8k/BurpSuite_403Bypasser绕过 403 限制目录
ShiroScanhttps://github.com/Daybr4ak/ShiroScanburp插件 ShiroScan 主要用于框架、无dnslog key检测
BurpShiroPassiveScanhttps://github.com/pmiaowu/BurpShiroPassiveScan被动式shiro检测插件
fastjson-checkhttps://github.com/bigsizeme/fastjson-checkfastjson 被动扫描、不出网payload生成
BurpFastJsonScanhttps://github.com/pmiaowu/BurpFastJsonScanfstjson反序列化被动扫描
fastjson-exphttps://github.com/amaz1ngday/fastjson-expfastjson利用,支持tomcat、spring回显,哥斯拉内存马;回显利用链为dhcp、ibatis、c3p0
Struts2-RCEhttps://github.com/prakharathreya/Struts2-RCEStruts2漏洞扫描
SpringScanhttps://github.com/metaStor/SpringScanSpringScan 漏洞检测 Burp插件
inqlhttps://github.com/doyensec/inql用于高级 GraphQL 测试,提供直观的漏洞检测、可定制的扫描和无缝的 Burp 集成
captcha-killerhttps://github.com/c0ny1/captcha-killer验证码识别
NEW_xp_CAPTCHAhttps://github.com/smxiazi/NEW_xp_CAPTCHAxp_CAPTCHA(瞎跑 白嫖版) burp 验证码 识别 burp插件
log4j2burpscannerhttps://github.com/f0ng/log4j2burpscannerLog4j2漏洞扫描
Log4j2-CVE-2021-44228https://github.com/jas502n/Log4j2-CVE-2021-44228Log4j2 RCE 被动扫描插件
Log4j2Scanhttps://github.com/whwlsfb/Log4j2ScanLog4j2 RCE 被动扫描插件
Burp BountyProhttps://github.com/wagiro/BurpBounty主动/被动扫描器
burp-text4shellhttps://github.com/silentsignal/burp-text4shellText4Shell扫描插件
PowerScannerhttps://github.com/usualwyy/PowerScanner面向HW的红队半自动扫描器(Burp插件),适合有经验的渗透测试人员。误报率高!!!所有报告结果需经手动手动确认。
BurpBountyPlushttps://github.com/ggg4566/BurpBountyPlus在BurpBounty的基础添加了右键菜单功能,添加支持了对单个数据包单个参数的漏洞扫描和fuzzer,打通渗透测试的最后一公里,提高效率。
Galaxyhttps://github.com/outlaws-bai/Galaxy自动解密被加密的报文,让你像测试明文一样简单
AES-Killerhttps://github.com/Ebryx/AES-KillerAES加解密插件
BurpCryptohttps://github.com/whwlsfb/BurpCrypto支持多种加密算法(AES、RSA、DES)或直接执行JS代码的用于爆破前端加密的BurpSuite插件
U2Chttps://github.com/bit4woo/u2cUnicode编码转中文的burp插件
autoDecoderhttps://github.com/f0ng/autoDecoder根据自定义来达到对数据包的处理(适用于加解密、爆破等),类似mitmproxy,不同点在于经过了burp中转,在自动加解密的基础上,不影响APP、网站加解密正常逻辑等
passive-scan-clienthttps://github.com/c0ny1/passive-scan-clientburp联动xray被动扫描
JustC2filehttps://github.com/Peithon/JustC2fileMalleable C2 Profiles生成器;可以通过Burp代理选中请求,生成Cobalt Strike的profile文件(CSprofile)
BurpSuiteHTTPSmugglerhttps://github.com/nccgroup/BurpSuiteHTTPSmugglerHTTP请求走私插件,绕过WAF
Charset_encoding-Burphttps://github.com/GuoKerS/Charset_encoding-Burp利用字符集编码绕过waf的burpsuite插件
nuclei-burp-pluginhttps://github.com/projectdiscovery/nuclei-burp-pluginnuclei模板生成插件
sqlmap4burp++https://github.com/c0ny1/sqlmap4burp-plus-plus快速联动Burp和sqlmap
sql-suphttps://github.com/S9MF/sql-sup实现参数溢出、垃圾数据、字典笛卡尔积
chunked-coding-converterhttps://github.com/c0ny1/chunked-coding-converter分块传输辅助插件
burpFakeIPhttps://github.com/TheKingOfDuck/burpFakeIP服务端配置错误情况下用于伪造ip地址进行测试的Burp Suite插件
burp-awesome-tlshttps://github.com/sleeyax/burp-awesome-tlsBurp 扩展可逃避 TLS 指纹识别。绕过 WAF,欺骗任何浏览器

有一个不错的项目精选了一些Burp插件:https://github.com/snoopysecurity/awesome-burp-extensions

HaE插件使用

HaE能够准确匹配并处理HTTP请求与响应报文(包含WebSocket),对匹配成功的内容进行有效的标记和信息抽取并高亮显示。
GitHub项目地址
添加自定义信息提取和高亮显示,如车辆VIN:

sqlmap4burp++插件使用

Burp与sqlmap联动插件,调用sqlmap进行SQL注入测试。
GitHub项目地址
使用方法:

  • 右键 -> Extensions -> sqlmap4burp++ -> Send to sqlmap4burp++
  • 配置Python执行文件名称、sqlmap路径和参数

Burp Bounty Pro插件使用

Burp Bounty Pro改进了Burp内置的主动和被动扫描仪,具有高级和自定义的漏洞扫描配置文件。

  • 内置大量扫描规则和配置文件,规则库较新

  • 可以添加自己的漏洞配置文件
  • 检测可能存在漏洞的参数、版本检测等

通过Options标签进行配置

Dashboard标签查看扫描结果:

chunked-coding-converter插件使用

插件有4个功能:

  • 编码请求body
  • 解码请求body
  • 配置
  • 延时分块传输

配置支持:

  • 指定分块长度
  • 指定注释长度
  • 指定作用组件

使用方法:

  1. 右键 --> Extensions --> Chunked coding converter x.x.x --> Config进行配置,可以设置分块长度,注释长度和作用组件

    如选择Proxy,经过代理的所以数据都会使用配置的分块传输进行发送,用来绕过WAF等
  2. 手工直接编码或解码HTTP请求

Authz

此插件用于挖掘未授权访问漏洞,它会代替人工发送2次请求,第一次带Cookie,第二次不带Cookie,通过对比两次请求响应判断漏洞是否存在。使用比较简单,直接右键将Cookie有效的数据包发送到Authz插件,然后在Authz插件点击run即可。

工具联动

Xray

方法一:浏览器 --> Burp --> Xray

Xray开启扫描监听:xray_windows_amd64.exe ws --listen 127.0.0.1:7777 --ho __datetime__.html

Burp设置上游代理为Xray监听地址和端口:

方法二:浏览器 --> Xray --> Burp

也可以使目标先经过Xray,配置Xray代理,将流量转发到Burp,灵活运用即可。

hfinger

方法一:浏览器 --> Burp --> hfinger

启动hfinger监听模式:hfinger -l 127.0.0.1:8888,Burp设置上游代理为hfinger监听地址和端口即可。
方法二:浏览器 --> hfinger --> Burp

启动hfinger监听模式:hfinger -l 127.0.0.1:8888 -p http://127.0.0.1:8080,浏览器设置代理为hfinger代理地址即可。

Tips

  1. 新版火狐会自动检测证书是否有效,设置Burp代理后每个https请求都需要手动继续访问,取消OCSP查询即可:
  2. 在Target组件中添加排除火狐的其他请求如firefox.commozilla.com等没用,最好设置Include in scope而不是Exclude from scope

声明:Hack All Sec的博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Burp Suite从入门到精通


Hacker perspective for security