
目录
一:Burp Suite基础介绍
Burp Suite 是一款广泛用于 Web 应用程序安全测试的集成平台,由 PortSwigger 公司开发,它为渗透测试人员和安全专业人员提供了一系列强大的功能,可帮助他们发现、分析和利用 Web 应用程序中的安全漏洞。以下为你详细介绍:
主要组件
- Proxy(代理)
- 作为浏览器和目标 Web 应用程序之间的中间人,拦截并查看、修改浏览器与服务器之间的 HTTP/HTTPS 请求和响应。可以手动修改请求参数,观察服务器的不同响应,以此来发现潜在的安全问题,如 SQL 注入、跨站脚本攻击(XSS)等。
- Scanner(扫描器)
- 自动化地对 Web 应用程序进行安全漏洞扫描。它可以检测多种常见的安全漏洞,如 SQL 注入、XSS、文件包含漏洞、弱密码等。扫描器会对应用程序进行全面的测试,并生成详细的报告,指出发现的漏洞及其严重程度。
- Repeater(中继器)
- 允许用户手动发送和重新发送单个 HTTP 请求,并可以对请求进行任意修改,然后观察服务器的响应。这对于深入测试和验证发现的潜在漏洞非常有用,比如在发现一个可能存在 SQL 注入的参数后,使用 Repeater 可以反复尝试不同的注入语句。
- Intruder(入侵者)
- 用于对 Web 应用程序进行自动化的攻击测试,如暴力破解密码、枚举用户名、测试表单参数的边界情况等。它可以根据用户设置的规则,使用不同的有效负载(如密码列表、用户名列表等)对目标进行大量的请求,以发现可能存在的安全漏洞。
- Sequencer(会话分析器)
- 主要用于分析 Web 应用程序中会话令牌(如会话 ID)的随机性和安全性。通过捕获大量的会话令牌,Sequencer 可以分析其生成算法的质量,判断是否容易被预测或猜测。如果会话令牌的随机性不足,攻击者可能会利用这一点来劫持用户会话。
- Decoder(解码器)
- 提供了各种编码和解码功能,如 URL 编码、Base64 编码、HTML 实体编码等。在处理包含特殊字符或经过编码的请求参数时,使用 Decoder 可以对其进行解码,以便更好地理解和分析请求内容;也可以将测试数据进行编码后再发送给服务器。
- Comparer(比较器)
- 用于比较两个或多个 HTTP 请求或响应的差异。在测试过程中,通过比较正常请求和异常请求的响应,或者比较不同版本的应用程序响应,可以快速发现可能存在的安全问题或功能变化。
应用场景
- 漏洞发现:帮助安全测试人员全面检测 Web 应用程序中的各种安全漏洞,提前发现并修复问题,避免被攻击者利用。
- 安全评估:对企业的 Web 应用程序进行安全评估,为企业提供详细的安全报告和改进建议,帮助企业提升整体的安全防护水平。
- 渗透测试:在合法的授权下,模拟攻击者的行为,对 Web 应用程序进行渗透测试,以验证其安全性和可靠性。
使用流程
- 配置代理:在浏览器中配置代理服务器,使其通过 Burp Suite 的代理进行网络访问。
- 开始拦截:在 Burp Suite 的 Proxy 模块中开启拦截功能,然后在浏览器中访问目标 Web 应用程序,此时所有的 HTTP 请求和响应都会被拦截。
- 分析请求:查看拦截到的请求和响应,根据需要进行修改和测试。可以将请求发送到其他模块进行进一步的分析和处理。
- 漏洞扫描:使用 Scanner 模块对目标 Web 应用程序进行全面的漏洞扫描,等待扫描结果并进行分析。
- 深入测试:对于发现的潜在漏洞,使用 Repeater、Intruder 等模块进行深入测试和验证。
- 生成报告:根据测试结果生成详细的安全报告,包括发现的漏洞、漏洞的严重程度、修复建议等。
二:Burp Suite工具安装
本教程使用Burp Suite专业版v2024.10版本
1.打开本文上传的压缩包,打开下图所示
2.复制红框所选
打开红框
3.然后点击下一步
4.将图所示内容复制粘贴
5.将红框所选复制
粘贴到最下框内
6.点击下一步
安装成功
三:Burp Suite工具使用教程
1.漏洞扫描模块
填写需要扫描的URL(这里我使用pikachu靶场测试)
为节省时间,我选择轻量扫描
如果网站需要登录就输入账号密码
使用默认线程就ok
可以看到已经扫描出这个网站存在的漏洞
导出漏洞扫描结果
点击该主机问题报告
接下来点击下一步即可
在桌面创建一个html的文件,并将结果导入
然后点击所创建的html文件就可以看到漏洞扫描结果了
实时任务模块可以扫描所有经过代理的流量
选择要审计的漏洞
2.主动爬虫和被动爬虫区别
工作原理
• 主动爬虫:主动发起 HTTP 请求,向服务器请求网页内容,就像客户端主动向服务器索取信息一样。它会按照一定的规则和策略,遍历网页链接,获取所需的数据。例如,它可以从一个起始网页开始,解析其中的链接,然后依次访问这些链接对应的网页,不断重复这个过程,以获取更多的信息。
• 被动爬虫:也叫反向代理爬虫,不会主动发起请求,而是作为代理服务器,等待客户端(通常是浏览器)向其发送请求。当客户端请求访问某个网页时,被动爬虫会拦截这个请求,代替客户端向目标服务器获取网页内容,然后将内容返回给客户端,同时记录下相关的数据。
数据获取方式
• 主动爬虫:主动地从网页中提取数据,通过解析 HTML、XML 等文档结构,利用正则表达式、XPath、BeautifulSoup 等工具和技术,定位并提取出感兴趣的数据,如文本、图片链接、视频链接等。
• 被动爬虫:主要通过拦截客户端与服务器之间的通信数据来获取数据。它在代理过程中,对客户端请求的响应数据进行分析和提取,获取其中包含的有用信息。
对目标网站的影响
• 主动爬虫:由于会主动大量地向目标网站发送请求,如果爬取频率过高或策略不当,可能会给目标网站带来较大的负载压力,甚至可能被目标网站识别为恶意攻击,从而导致 IP 被封禁等问题。
• 被动爬虫:因为是被动地响应客户端请求,对目标网站来说,它看起来更像是正常的客户端访问,所以一般情况下对目标网站的负载影响相对较小,也不容易被目标网站轻易察觉和封禁。
3.设置代理
设置127.0.0.1端口为8080的代理
打开浏览器(以火狐为例)
搜索Foxy
安装就ok
配置ip端口号
然后开启代理
同时打开bp代理
然后再测试,看bp是否能拦截
成功拦截流量。
4.攻击模块
将需要攻击的流量发送到bp
有四个攻击模式
具体攻击案例:打开pikachu靶场的密码暴力破解模块,并且打开代理
打开bp开启拦截,然后再靶场随意输入账号密码
拦截成功然后添加需要攻击的位置,选择账号和密码
右边设置payload,我们选择简单列表
选择集群炸弹攻击
攻击模式 | 英文名称 | 说明 | 适用场景 | 示例 |
---|---|---|---|---|
狙击手模式 | Sniper | 此模式下,Burp Suite 会依次使用单一有效载荷集里的每个载荷替换请求中的每个标记位置。也就是说,它会单独对每个标记点进行攻击,每次只替换一个标记位置的内容。 假设标记位置有两个,载荷集有三个载荷,那么总共会产生 3×2 = 6 个请求。 | 适用于仅需对一个参数进行测试的场景,例如测试登录表单中的用户名或密码字段,或者想要逐个测试单个参数的不同取值对系统的影响。 | 要测试登录页面的用户名有效性,设置用户名参数为标记位置,载荷集包含不同的用户名,Burp Suite 会依次用这些用户名替换标记位置发送请求。 |
爆破模式 | Battering ram | 该模式会使用单一有效载荷集里的每个载荷同时替换请求中所有标记位置。即每个载荷会同时作用于所有标记点。 若标记位置有两个,载荷集有三个载荷,总共会产生 3 个请求。 | 适用于多个参数需使用相同测试值的情况,例如某些系统可能要求多个输入字段输入相同的验证码、密码重置时多个确认字段的测试等。 | 一个表单中有两次输入密码的字段,可将这两个字段设为标记位置,用同一组密码作为载荷集,Burp Suite 会用每个密码同时替换两个标记位置发送请求。 |
霰弹枪模式 | Pitchfork | 此模式会并行地从多个有效载荷集中依次取出载荷,同时替换请求中对应的标记位置。也就是第一个载荷集的第一个载荷与第二个载荷集的第一个载荷同时替换相应标记位置,以此类推。 若有两个载荷集,每个载荷集有三个载荷,总共会产生 3 个请求。 | 适用于需要同时对多个参数进行组合测试,且参数之间有一定关联的场景,如用户名和密码的组合测试。 | 测试登录页面时,将用户名和密码字段设为标记位置,分别准备用户名和密码的载荷集,Burp Suite 会将两个载荷集中对应位置的用户名和密码组合起来发送请求。 |
集群炸弹模式 | Cluster bomb | 该模式会对多个有效载荷集进行全排列组合,将每个组合依次替换请求中的标记位置。即第一个载荷集的每个载荷会与第二个载荷集的所有载荷进行组合。 若有两个载荷集,第一个载荷集有 3 个载荷,第二个载荷集有 2 个载荷,总共会产生 3×2 = 6 个请求。 | 适用于需要对多个参数进行全面组合测试的场景,以找出所有可能的参数组合对系统的影响,比如测试多个输入字段不同取值组合下的系统响应。 | 一个表单有两个重要参数,分别准备不同取值的载荷集,Burp Suite 会将两个载荷集中的所有取值进行两两组合,替换标记位置后发送请求。 |
设置账号和密码的payload集
资源池默认
开始攻击
根据长度判断,成功爆破出账号密码
5.重放器模块
按照将流量发给攻击模块的方法发送给重放器
模块功能:重放器(Repeater)是一个强大且实用的功能模块,主要用于对 HTTP 请求进行手动编辑、重复发送,并查看服务器响应结果,以下为你详细介绍其功能、使用场景、操作步骤等方面。
在这里可以可以多次重复发送相同的 HTTP 请求,方便测试人员观察服务器对同一请求的响应是否一致,排查因偶然因素导致的问题。可以修改请求方法(GET、POST 等)、URL、请求头、请求体等。通过修改请求内容,测试人员可以模拟不同的用户行为和数据输入,测试服务器在不同情况下的处理逻辑。使用重放器修改请求参数,验证漏洞是否真实存在。例如,在发现可能存在 SQL 注入漏洞的请求中,通过重放器修改参数值,尝试注入恶意 SQL 语句,观察服务器的响应来判断是否存在漏洞。
6.编码工具
7.对比工具
8.扩展模块
可在扩展模块中安装需要的插件如JWT,JSON等
9.Collaborator模块
这个模块作用为:当我们进行恶意代码注入后不能立即触发,就得不到反馈信息,如SSRF,如果注入后只提示是否合法得不到具体反馈信息,也就无法确定是否存在SSRF漏洞,这就叫盲SSRF。总之,当我们注入恶意代码后得不到具体反馈信息而只得到对与否就叫盲。如何解决呢?这就要利用到这个模块。模块原理是搭建一个外部服务器,可通过域名URL访问,再注入时带上外部服务器的URL,注入后目标服务器会与我们外部服务器交互。有利于我们判断漏洞是否存在。
(图一)
(图二)
(图三)
图一为带内攻击,图二为带外攻击
平时测试服务器会给我们一个反馈叫带内攻击,当需要外部服务器时就叫带外攻击
图三:当bp发送payload给目标程序后,目标程序会解析,payload为外部服务器URL,然后就会访问我们外部服务器将请求信息和响应信息发给外部服务器,bp在发送payload后会不断询问外部服务器是否收到交互信息。这就是这个模块工作流程
使用方法:将这个模块生成的payload作为恶意代码注入需要测试的网站
<script>src="http://c4ho3pt39xql0fg8utlez50s2j8aw2kr.oastify.com'</script>
xss的payload
10.sequencer模块
介绍:Burp Sequencer作为Burp Suite中一款用于检测数据样本随机性质量的工具,通常用于检测访问令牌是否可预测、密码重置令牌是否可预测等场景,通过Sequencer的数据样本分析,能很好地降低这些关键数据被伪造的风险。
总结
在网络安全的探索之路上,Burp Suite 宛如一把利器。这篇博客深入介绍其使用,从代理模块精准捕获请求,到重放器细致调试优化,再到 Intruder 模块强力发起攻击测试,一步步揭开 Web 应用安全测试的神秘面纱,引领读者开启安全防护新征。
(需要源代码联系博主免费领取!!还希望多多关注点赞支持,你的支持就是我的最大动力!!!)