参考连接1:https://www.pentestgeek.com/what-is-burpsuite 参考连接2:https://www.pentestgeek.com/web-applications/burp-suite-tutorial-1 参考连接3:https://www.pentestgeek.com/web-applications/how-to-use-burp-suite 参考连接4:https://www.pentestgeek.com/penetration-testing/credential-harvesting-via-mitm-burp-suite-tutorialjavascript
注意1:本文中出现的非汉语部分为不翻译更好或者我不知道怎么翻译好。 注意2:我并无配置出站SOCKS代理,而是简单地将火狐浏览器的代理设置为burp suite,具体步骤参照我以前发布的kali linux Burp Suite极简使用教程css
什么是Burp Suite? Burp Suite是一个基于Java的Web渗透测试框架。 它已成为信息安全专业人员使用的行业标准工具套件。 Burp Suite可帮助您识别漏洞并验证影响Web应用程序的攻击媒介。 因为其受欢迎程度,广度以及功能的深度,他们建立了这个有用的页面做为Burp Suite知识和信息的集合。html
Burp Suite最简单的形式可被认为是拦截代理。 在浏览目标应用程序时,渗透测试人员能够配置其Internet浏览器以经过Burp Suite代理服务器路由流量。 而后,Burp Suite经过捕获和分析来往目标Web应用程序的每一个请求,以便对它们进行分析,从而充当(中间人)。 渗透测试人员能够暂停,操做和重放各个HTTP请求,以便分析潜在的参数或注入点。 能够为手动和自动模糊测试指定注入点,以发现可能意外的应用程序行为,崩溃和错误消息。java
他们强烈建议您购买The Web Application Hacker's Handbook。 本书涵盖了Burp Suite的每一个方面都很是详细,对于任何认真对待Web渗透测试的专业人士来讲,都应该被认为是绝对必读的。linux
免责声明:测试您没有书面受权能够进行测试的Web应用程序是非法的,会受到法律惩罚。web
根据您的参与范围,可能须要经过出站SOCKS代理隧道传输您的Burp Suite流量。 这可确保测试流量来自您批准的测试环境。 我更喜欢使用一个简单的SSH链接,它能够很好地用于此目的。 经过这样的'-D'选项SSH到您的测试服务器并在您的localhost上设置SOCKS代理。数据库
ssh –D 9292 –l username servername
转到Burp Suite顶部菜单最右侧附近的“选项”选项卡。 从“链接”子选项卡,向下滚动到标记为“SOCKS代理”的第三部分。 键入localhost做为host选项,输入9292做为port选项。浏览器
<div align="center"> </div> 安全
如今,Burp Suite配置为经过出站SSH隧道路由流量。 配置浏览器的代理设置以使用Burp Suite。 导航到www.whatismyip.com来确保您的IP地址来自您的测试环境。 ProTip我使用单独的浏览器进行Web应用程序测试。 这能够确保我不会意外地将任何我的数据传递到个人客户的某个站点,例如个人Gmail账户的密码。服务器
我也更喜欢使用代理交换插件,例如Google Chrome的“SwitchySharp”。 这使我能够在不一样的会话期间轻松地在各类代理配置之间来回切换。 如下是我对Burp Suite的配置设置。
<div align="center"> </div>
我接下来要作的是配置代理拦截功能。 将其设置为仅暂停对目标站点的请求和响应。 导航到“Proxy”子选项卡下的“option”选项卡。 第二和第三标题显示用于拦截请求和响应的可配置选项。 取消选中Burp Suite默认值并选中“URL is in target scope”。 接下来关闭拦截,由于初始应用程序演练不须要它。 从**“Intercept**”子选项卡确保切换按钮显示“Intercept is off”
<div align="center"> </div>
出于某种缘由,不少人都喜欢跳过这一步。我不推荐这个。在目标应用程序的初始演练过程当中,手动点击尽量多的站点很是重要。尝试并抵制开始在Burp Suite中分析事物的冲动。相反,花一点时间点击每一个连接并查看每一个页面。就像普通用户同样。想一想网站是如何运做的,或者它“应该”如何运做。 您应该考虑如下问题:
若是您偶然发现输入表单,请务必执行一些手动测试用例。输入一个勾选并在您遇到的任何搜索表单或邮政编码字段上点击提交。您可能会惊讶于经过奇怪的探索而不是经过自动扫描发现安全漏洞的频率。
如今您已经很好地了解了目标应用程序的工做时间,从而开始分析一些GET和帖子。 可是,在使用Burp Suite进行任何测试以前,最好正肯定义目标范围。 这将确保您不会向您无权测试的网站发送任何潜在的恶意流量。
ProTip:做者被受权测试www.pentestgeek.com。 *咱们没有。 因此,请选择你有测试许可的URL。
转到“Target”选项卡,而后转到“Site map”子选项卡。 从左侧显示窗格中选择目标网站。 右键单击并选择“Add to scope”。 接下来,突出显示显示窗格中的全部其余站点,右键单击并选择从范围中删除。 若是您已正确完成此操做,则您的Burp Suite范围选项卡应以下图所示。
<div align="center"> </div>
单击“Target”选项卡和“Site Map”子选项卡。 向下滚动到相应的站点分支并展开全部箭头,直到您得到目标站点的完整picture。 这应该包括您浏览的全部单个页面以及任何javascript和css文件。 花点时间沉浸到全部这些中,尝试并从手动演练中找出您没法识别的文件。 您可使用Burp Suite以右下方显示窗格的“Resposne”选项卡上的多种不一样格式查看每一个请求的响应。 浏览每一个回复搜索有趣的宝石。 你可能会惊讶地发现的事情包括:
您还能够利用Burp Suite为您作一些繁重的工做。 右键单击节点,从“Engagement tools”子菜单中选择“Search”(pro版功能)。 我最喜欢的搜索之一是扫描字符串“set-cookie”。 这可让您知道哪些页面足够有趣,须要一个惟一的cookie。 Web应用程序开发人员一般使用Cookie来区分来自多个站点用户的请求。 这确保用户'A'不能查看属于用户'B'的信息。 所以,最好识别这些页面并特别注意它们。
<div align="center"> </div>
在进行了一些手动操做以后,让Burp Suite沿主机地址爬行一般是有益的。 只需右键单击站点地图中目标的根分支,而后选择“Spider this host”。
爬虫完成后,返回您的站点地图,看看您是否选择了新页面。 若是有,请在浏览器中以及在Burp Suite中手动查看它们,看看它们是否产生任何有趣的内容。 是否有任何新的登陆提示或输入框? 若是您对全部发现的内容仍然不满意,能够尝试使用Burp Suite的发现模块。 右键单击目标站点的根分支,而后从“Engagement tools”子菜单中选择“Discover Content”。 在大多数网站上,这个模块能够而且将会运行很长时间,因此要注意它是一个好习惯。 确保在运行太长时间以前手动完成或关闭它。
<div align="center">
</div> 特别注意的是,专业版中我没有找到spider this host这个选项,不过在engagement tools中我找到了Analyze this target这个选项,能够查看网络的拓扑结构等一些简单信息。 <div align="center">
</div>
Repeater选项卡能够说是Burp Suite中最有用的功能之一。 我在我测试的每一个Web应用程序上使用它数百次。 它很是有价值,并且使用起来很是简单。 只需右键单击“Target”或“Proxy”选项卡中的任何请求,而后选择“Send to Repeater”。 接下来,点击“Repeater”标签,而后点击“Go”。 你会看到这样的东西。
<div align="center">
</div> 在这里,您可使用burp suite来操做HTTP请求标头的任何部分,并查看响应的样子。 我建议在这里花一些时间玩HTTP请求的各个方面。 特别是与请求一块儿发送的最佳GET / POST参数。
若是您的时间有限而且有太多的请求和个别参数来进行完全的手动测试。 Burp Suite Intruder是一种很是强大的自动和半目标模糊测试方法。 您能够将其用于HTTP请求中的一个或多个参数。 像咱们以前同样右键单击任何请求,此次选择“Send to Intruder”。 转到“Positions”选项卡,而后单击“Positions”子选项卡。 你应该看到这样的东西。
<div align="center">
</div>
我建议使用“Clear”按钮删除最初选择的内容。 默认行为是使用“=”符号测试全部内容。 突出显示您要模糊的参数,而后单击“Add”。 接下来,您须要转到“Payloads”子选项卡,告诉Burp Suite在模糊测试期间执行哪些测试用例。 一个好的开始是“Fuzzing - full”。 这将向您在“Positions”子选项卡上突出显示的每一个参数发送一些基本测试用例。
<div align="center"> </div>
我在测试Web应用程序时最近作的事是使用Burp Suite执行自动扫描。 返回“Site map”子选项卡,右键单击目标站点的根分支,而后选择“Passively scan this host”。 这将分析您在Burp Suite会话期间生成的每一个请求和响应。 它将在“Scanner”选项卡上的“Results”子选项卡上生成漏洞顾问程序。 我喜欢先进行被动扫描,由于它不会向目标服务器发送任何流量。 或者,您能够将Burp Suite配置为在“Live scanning”子选项卡中自动分析请求和响应。 您也能够执行此操做以进行主动扫描,但我不建议这样作。 在进行主动扫描时,我喜欢使用如下设置。
<div align="center"> </div>
上图是原做者的图,实际上我在community版的burp suite中scan功能是不可用的
<div align="center"> </div> 而在专业版的burp suite中的scan功能也和原做者有所不一样: <div align="center"> </div> 内部界面以下: <div align="center"> </div>
完全验证任何自动扫描工具的结果老是一个好主意。 Burp Suite在“Scanner/Results”选项卡上提供了执行此操做所需的一切。 单击左窗格中的节点以查看与该目标关联的已识别漏洞。 右下方窗格显示与右上方窗格中选择的特定漏洞相关的详细请求/响应信息。 “Advisory”选项卡包含有关漏洞的信息,包括高级详细信息,说明和建议的建议。 “Request”和“Response”选项卡将准确显示Burp Suite发送给目标应用程序的内容,以便检查漏洞以及应用程序返回的内容。 看看下面的例子。
<div align="center"> </div> 很遗憾因为个人scan功能一直不可用,所以这以后的内容都难以完成,须要的朋友们能够去原地址自行查看https://www.pentestgeek.com/web-applications/how-to-use-burp-suite。若是您能告诉我我是何种缘由不能使用scan功能,我会很是感激。