在本教程中,您将使用 Burp Repeater 一遍又一遍地重新发出一个有趣的请求。这使您可以研究目标网站对不同输入的响应,而不必每次都拦截请求。例如,这使得探测漏洞或确认由 Burp Scanner 识别的漏洞变得更加简单。
网络安全学院要继续,您需要在 上有一个帐户portswigger.net。如果您还没有,注册是免费的,它授予您对网络安全学院的完全访问权限。
如果您还没有完成我们之前的Burp Proxy 入门教程,我们建议您先完成再继续。
向 Burp Repeater 发送请求使用 Burp Repeater 的最常见方式是从 Burp 的另一个工具向它发送请求。在这个例子中,我们将从 Burp Proxy 中的 HTTP 历史发送一个请求。
第 1 步:启动嵌入式浏览器在 Burp 中,转到Proxy > Intercept选项卡并确保拦截已关闭。使用嵌入式浏览器访问以下 URL,如果出现提示请登录:
https://portswigger.net/web-security/information-disclosure/exploiting/lab-infoleak-in-error-messages
页面加载后,单击“访问实验室”以启动您自己的虚假购物网站实例。这可能需要几秒钟才能加载。
第 2 步:浏览目标站点在浏览器中,通过单击几个产品页面来浏览该站点。
第 2 步:研究 HTTP 历史在 Burp 中,转到代理 > HTTP 历史记录选项卡。为便于阅读,请继续单击最左侧列 ( # )的标题,直到请求按降序排序。这样,您可以在顶部看到最近的请求。
第 3 步:确定一个有趣的请求请注意,每次访问产品页面时,浏览器都会发送一个GET /product带有productId查询参数的请求。

让我们使用 Burp Repeater 更仔细地观察这种行为。
第 4 步:将请求发送到 Burp Repeater右键单击任何GET /product?productId=[...]请求并选择Send to Repeater。

转到中继器选项卡,以查看您的请求是否在其自己的编号选项卡中等待您。
第 5 步:发出请求并查看响应单击发送以发出请求并查看来自服务器的响应。您可以根据需要多次重新发送此请求,并且每次都会更新响应。
使用 Burp Repeater 测试不同的输入通过每次使用不同的输入重新发送相同的请求,您可以识别和确认各种基于输入的漏洞。这是您在使用 Burp Suite 进行手动测试期间将执行的最常见任务之一。
第 1 步:使用不同的输入重新发出请求更改productId参数中的数字并重新发送请求。尝试使用一些任意数字,包括几个较大的数字。
第 2 步:查看请求历史记录使用箭头来回浏览您发送的请求及其匹配响应的历史记录。每个箭头旁边的下拉菜单还可以让您跳转到历史记录中的特定请求。

这对于返回您之前发送的请求以进一步调查特定输入很有用。
比较响应的内容,注意您可以通过输入它们的 ID 来成功请求不同的产品页面,但是Not Found如果服务器无法找到具有给定 ID 的产品,则会收到响应。现在我们知道这个页面应该如何工作,我们可以使用 Burp Repeater 来查看它如何响应意外输入。
第 3 步:尝试发送意外输入服务器似乎希望通过这个productId参数接收一个整数值。让我们看看如果我们发送不同的数据类型会发生什么。
发送另一个请求,其中productId是字符串。
第 4 步:研究响应观察发送非整数productId导致异常。服务器已发送包含堆栈跟踪的详细错误响应。

请注意,响应告诉您该网站正在使用 Apache Struts 框架 - 它甚至显示了哪个版本。

在实际场景中,此类信息可能对攻击者有用,尤其是在已知指定版本包含其他漏洞的情况下。
在浏览器中返回实验室并单击提交解决方案按钮。输入您在响应 (2 2.3.31) 中发现的 Apache Struts 版本号。

恭喜,这是您的另一个实验室!您已经使用 Burp Repeater 审计了网站的一部分,并成功发现了一个信息泄露漏洞。