博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Burp Suite 入门教程(BURP SUITE TUTORIAL )
阅读量:5840 次
发布时间:2019-06-18

本文共 4704 字,大约阅读时间需要 15 分钟。

参考链接1:

参考链接2:
参考链接3:
参考链接4:

注意1:本文中出现的非汉语部分为不翻译更好或者我不知道怎么翻译好。

注意2:我并没有配置出站SOCKS代理,而是简单地将火狐浏览器的代理设置为burp suite,具体步骤参照我之前发布的

什么是Burp Suite

什么是Burp Suite? Burp Suite是一个基于Java的Web渗透测试框架。 它已成为信息安全专业人员使用的行业标准工具套件。 Burp Suite可帮助您识别漏洞并验证影响Web应用程序的攻击媒介。 由于其受欢迎程度,广度以及功能的深度,他们创建了这个有用的页面作为Burp Suite知识和信息的集合。

Burp Suite最简单的形式可被认为是拦截代理。 在浏览目标应用程序时,渗透测试人员可以配置其Internet浏览器以通过Burp Suite代理服务器路由流量。 然后,Burp Suite通过捕获和分析来往目标Web应用程序的每个请求,以便对它们进行分析,从而充当(中间人)。 渗透测试人员可以暂停,操作和重放各个HTTP请求,以便分析潜在的参数或注入点。 可以为手动和自动模糊测试指定注入点,以发现可能意外的应用程序行为,崩溃和错误消息。

他们强烈建议您购买The Web Application Hacker's Handbook。 本书涵盖了Burp Suite的每个方面都非常详细,对于任何认真对待Web渗透测试的专业人士来说,都应该被认为是绝对必读的。

本教程范围

  • 出站SOCKS代理配置
  • 拦截和范围配置
  • 手动应用程序演练
  • 使用爬虫和发现
  • 使用“转发器”选项卡
  • 使用入侵者选项卡
  • 文本特定搜索
  • 使用自动扫描仪
  • 验证扫描程序结果
  • 导出扫描程序报告
  • 解析XML结果
  • 保存Burp会话和Burp扩展。

免责声明:测试您没有书面授权可以进行测试的Web应用程序是非法的,会受到法律惩罚。

配置出站SOCKS代理

根据您的参与范围,可能需要通过出站SOCKS代理隧道传输您的Burp Suite流量。 这可确保测试流量来自您批准的测试环境。 我更喜欢使用一个简单的SSH连接,它可以很好地用于此目的。 通过这样的'-D'选项SSH到您的测试服务器并在您的localhost上设置SOCKS代理。

ssh –D 9292 –l username servername

转到Burp Suite顶部菜单最右侧附近的“选项”选项卡。 从“连接”子选项卡,向下滚动到标记为“SOCKS代理”的第三部分。 键入localhost作为host选项,输入9292作为port选项。

1506386-20190511165212036-1403531247.png

现在,Burp Suite配置为通过出站SSH隧道路由流量。 配置浏览器的代理设置以使用Burp Suite。 导航到www.whatismyip.com来确保您的IP地址来自您的测试环境。

ProTip我使用单独的浏览器进行Web应用程序测试。 这可以确保我不会意外地将任何个人数据传递到我的客户的某个站点,例如我的Gmail帐户的密码。

我也更喜欢使用代理交换插件,例如Google Chrome的“SwitchySharp”。 这使我可以在不同的会话期间轻松地在各种代理配置之间来回切换。 以下是我对Burp Suite的配置设置。

1506386-20190511165216924-1556846387.png

配置拦截设置

我接下来要做的是配置代理拦截功能。 将其设置为仅暂停对目标站点的请求和响应。 导航到“Proxy”子选项卡下的“option”选项卡。 第二和第三标题显示用于拦截请求和响应的可配置选项。 取消选中Burp Suite默认值并选中“URL is in target scope”。 接下来关闭拦截,因为初始应用程序演练不需要它。 从“Intercept”子选项卡确保切换按钮显示“Intercept is off

1506386-20190511165222075-168507879.png

应用程序手操

出于某种原因,很多人都喜欢跳过这一步。我不推荐这个。在目标应用程序的初始演练过程中,手动点击尽可能多的站点非常重要。尝试并抵制开始在Burp Suite中分析事物的冲动。相反,花一点时间点击每个链接并查看每个页面。就像普通用户一样。想想网站是如何运作的,或者它“应该”如何运作。

您应该考虑以下问题:

  • 从经过身份验证和未经身份验证的角度来看,某人可以采取哪些类型的行动?
  • 是否有任何请求似乎由服务器端作业或数据库操作处理?
  • 是否有任何可以控制的信息显示

如果您偶然发现输入表单,请务必执行一些手动测试用例。输入一个勾选并在您遇到的任何搜索表单或邮政编码字段上点击提交。您可能会惊讶于通过奇怪的探索而不是通过自动扫描发现安全漏洞的频率。

配置目标范围

现在您已经很好地了解了目标应用程序的工作时间,从而开始分析一些GET和帖子。 但是,在使用Burp Suite进行任何测试之前,最好正确定义目标范围。 这将确保您不会向您无权测试的网站发送任何潜在的恶意流量。

ProTip:作者被授权测试www.pentestgeek.com。 *我们没有。 所以,请选择你有测试许可的URL

转到“Target”选项卡,然后转到“Site map”子选项卡。 从左侧显示窗格中选择目标网站。 右键单击并选择“Add to scope”。 接下来,突出显示显示窗格中的所有其他站点,右键单击并选择从范围中删除。 如果您已正确完成此操作,则您的Burp Suite范围选项卡应如下图所示。

1506386-20190511165231192-958600605.png

初始化Pilfering

单击“Target”选项卡和“Site Map”子选项卡。 向下滚动到相应的站点分支并展开所有箭头,直到您获得目标站点的完整picture。 这应该包括您浏览的所有单个页面以及任何javascript和css文件。 花点时间沉浸到所有这些中,尝试并从手动演练中找出您无法识别的文件。 您可以使用Burp Suite以右下方显示窗格的“Resposne”选项卡上的多种不同格式查看每个请求的响应。 浏览每个回复搜索有趣的宝石。 你可能会惊讶地发现的事情包括:

  • 开发者评论
  • 电子邮件地址
  • 如果你很幸运,用户名和密码
  • 路径泄露到其他文件/目录
  • 等等…

搜索特定关键词

您还可以利用Burp Suite为您做一些繁重的工作。 右键单击节点,从“Engagement tools”子菜单中选择“Search”(pro版功能)。 我最喜欢的搜索之一是扫描字符串“set-cookie”。 这可以让您知道哪些页面足够有趣,需要一个唯一的cookie。 Web应用程序开发人员通常使用Cookie来区分来自多个站点用户的请求。 这确保用户'A'不能查看属于用户'B'的信息。 因此,最好识别这些页面并特别注意它们。

1506386-20190511165239641-1371420402.png

使用爬虫并探索

在进行了一些手动操作之后,让Burp Suite沿主机地址爬行通常是有益的。 只需右键单击站点地图中目标的根分支,然后选择“Spider this host”。

爬虫完成后,返回您的站点地图,看看您是否选择了新页面。 如果有,请在浏览器中以及在Burp Suite中手动查看它们,看看它们是否产生任何有趣的内容。 是否有任何新的登录提示或输入框? 如果您对所有发现的内容仍然不满意,可以尝试使用Burp Suite的发现模块。 右键单击目标站点的根分支,然后从“Engagement tools”子菜单中选择“Discover Content”。 在大多数网站上,这个模块可以并且将会运行很长时间,所以要注意它是一个好习惯。 确保在运行太长时间之前手动完成或关闭它。

1506386-20190511165448010-730552883.png

特别注意的是,专业版中我没有找到spider this host这个选项,不过在engagement tools中我找到了Analyze this target这个选项,可以查看网络的拓扑结构等一些简单信息。

1506386-20190511165506805-1441984173.png

使用中继器

Repeater选项卡可以说是Burp Suite中最有用的功能之一。 我在我测试的每个Web应用程序上使用它数百次。 它非常有价值,而且使用起来非常简单。 只需右键单击“Target”或“Proxy”选项卡中的任何请求,然后选择“Send to Repeater”。 接下来,点击“Repeater”标签,然后点击“Go”。 你会看到这样的东西。

1506386-20190511165511482-845217730.png

在这里,您可以使用burp suite来操作HTTP请求标头的任何部分,并查看响应的样子。 我建议在这里花一些时间玩HTTP请求的各个方面。 特别是与请求一起发送的最佳GET / POST参数。

使用Intruder

如果您的时间有限并且有太多的请求和个别参数来进行彻底的手动测试。 Burp Suite Intruder是一种非常强大的自动和半目标模糊测试方法。 您可以将其用于HTTP请求中的一个或多个参数。 像我们之前一样右键单击任何请求,这次选择“Send to Intruder”。 转到“Positions”选项卡,然后单击“Positions”子选项卡。 你应该看到这样的东西。

1506386-20190511165517361-18901897.png

我建议使用“Clear”按钮删除最初选择的内容。 默认行为是使用“=”符号测试所有内容。 突出显示您要模糊的参数,然后单击“Add”。 接下来,您需要转到“Payloads”子选项卡,告诉Burp Suite在模糊测试期间执行哪些测试用例。 一个好的开始是“Fuzzing - full”。 这将向您在“Positions”子选项卡上突出显示的每个参数发送一些基本测试用例。

1506386-20190511165521808-247231791.png

自动扫描

我在测试Web应用程序时最近做的事是使用Burp Suite执行自动扫描。 返回“Site map”子选项卡,右键单击目标站点的根分支,然后选择“Passively scan this host”。 这将分析您在Burp Suite会话期间生成的每个请求和响应。 它将在“Scanner”选项卡上的“Results”子选项卡上生成漏洞顾问程序。 我喜欢先进行被动扫描,因为它不会向目标服务器发送任何流量。 或者,您可以将Burp Suite配置为在“Live scanning”子选项卡中自动分析请求和响应。 您也可以执行此操作以进行主动扫描,但我不建议这样做。

在进行主动扫描时,我喜欢使用以下设置。

1506386-20190511165526127-1608457505.png

上图是原作者的图,实际上我在community版的burp suite中scan功能是不可用的

1506386-20190511165533491-1300225847.png
而在专业版的burp suite中的scan功能也和原作者有所不同:
1506386-20190511165537640-1579183571.png
内部界面如下:
1506386-20190511165543458-926596977.png

验证扫描仪结果

彻底验证任何自动扫描工具的结果总是一个好主意。 Burp Suite在“Scanner/Results”选项卡上提供了执行此操作所需的一切。 单击左窗格中的节点以查看与该目标关联的已识别漏洞。 右下方窗格显示与右上方窗格中选择的特定漏洞相关的详细请求/响应信息。

Advisory”选项卡包含有关漏洞的信息,包括高级详细信息,说明和建议的建议。 “Request”和“Response”选项卡将准确显示Burp Suite发送给目标应用程序的内容,以便检查漏洞以及应用程序返回的内容。 看看下面的例子。

1506386-20190511165549142-191073088.png
很遗憾由于我的scan功能一直不可用,因此这之后的内容都难以完成,需要的朋友们可以去原地址自行查看https://www.pentestgeek.com/web-applications/how-to-use-burp-suite。如果您能告诉我我是何种原因不能使用scan功能,我会非常感激。

转载于:https://www.cnblogs.com/thechosenone95/p/10849219.html

你可能感兴趣的文章
[Programming Entity Framework] 第2章 探究实体数据模型(EDM)(一)
查看>>
shell环境
查看>>
Java调用C++类库--JNI
查看>>
gles和opengl版本对照表
查看>>
微信开发(二)自己的代码
查看>>
python netwokx环境搭建
查看>>
面向空实现类继承
查看>>
1303: Decimal
查看>>
云收藏
查看>>
高精度计算
查看>>
What’s PKCS
查看>>
奥数 --- 找规律 + 总结
查看>>
1.4 文件操作
查看>>
01 如何在.NET中使用PB12.5的datawindow - 消失的DW.NET
查看>>
《NodeJS开发指南》第五章微博实例开发总结
查看>>
数据类型的转换
查看>>
v4l2
查看>>
JavaScript引用类型之Object类型
查看>>
Q3ListBox在Qt4中出错
查看>>
SVN简介与安装
查看>>