Burp Suite
Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描web应用程序漏洞,以暴力破解登陆表单,执行会话令牌等多种的随机性检查。本文将做一个Burp Suite完全正的演练,主要讨论它的以下特点.
-
1.代理–Burp Suite带有一个代理,通过默认端口8080上运行,使用这个代理,我们可以截获并修改从客户端到web应用程序的数据包.
-
2.Spider(蜘蛛)–Burp Suite的蜘蛛功能是用来抓取Web应用程序的链接和内容等,它会自动提交登陆表单(通过用户自定义输入)的情况下.Burp Suite的蜘蛛可以爬行扫描出网站上所有的链接,通过对这些链接的详细扫描来发现Web应用程序的漏洞 。
-
3.Scanner(扫描器)–它是用来扫描Web应用程序漏洞的.在测试的过程中可能会出现一些误报。重要的是要记住,自动扫描器扫描的结果不可能完全100%准确.
-
4.Intruder(入侵)–此功能呢可用语多种用途,如利用漏洞,Web应用程序模糊测试,进行暴力猜解等.
-
5.Repeater(中继器)–此功能用于根据不同的情况修改和发送相同的请求次数并分析.
-
6.Sequencer–此功能主要用来检查Web应用程序提供的会话令牌的随机性.并执行各种测试.
-
7.Decoder(解码)–此功能可用于解码数据找回原来的数据形式,或者进行编码和加密数据.
-
8.Comparer–此功能用来执行任意的两个请求,响应或任何其它形式的数据之间的比较.
Proxy(代理)
代理功能使我们能够截获并修改请求.为了拦截请求,并对其进行操作,我们必须通过Burp Suite配置我们的浏览器.
一旦在浏览器上设置好之后,就打开Burp Suite,去Proxy项进行Intercept(截断),需要确保intercept is on.
打开alerts标签,可以看到代理正运行在8080端口.我们可以在Proxy–>options下来修改这个配置.
打开Proxy下的options标签
在这里我们可以编辑代理正在监听的端口,甚至添加一个新的代理监听.Burp也有向SSL保护网站提交证书的选项.默认情况下,Burp创建一个自签名的证书之后立即安装.”generate CA-signed per-host certificates”选项选中之后Burp的证书功能将生成一个我们能够链接的证书签署的特定主机.在这里我们关心的唯一事情是,当一个用户链接到一个SSL保护的网站时,能后减少网站警告提示的次数.
如果我们不选中”listen on loopback interface only”选项,意味着Burp Proxy可以作为一个网络上其它系统的代理。这意味着在同一网络中的任何计算机都可以使用Burp Proxy功能成为代理,并中继通过它的流量.
“support invisible proxying for non-proxy-aware client”选项是用于客户端不知道他们使用的是代理的情况下.这意味着代理设置不是设置在浏览器,有时候设置在hosts文件中.在这种情况下,和将代理选项设置在浏览器本身所不同的是Burp需要知道它是从一个非代理客户端接收流量的.”redirect to host”和”redirect to port”选项将客户端重定向到我们在该选项后设置的主机和端口。
同样,我们可以拦截请求,并根据我们指定的规则返回响应.
这里有个选项用来修改从响应中接收到的html网页。我们可以取消隐藏的表单字段,删除javascript等。还有一个选项用自定义字符串替换掉寻找到的特定的模式.我们需要用指定正则表达式。Burp将解析请求或者响应以期望能够寻找到这种模式,将会用自定义的字符串来替换它.
display
User interface
设置允许您控制Burp的用户界面的外观。您可以配置用于整个用户界面(除了HTTP消息的显示)的字体大小,也是Java的外观和感觉。更改这些设置就会生效时Burp重新启动。
http message display
设置允许控制HTTP消息会显示在原始的HTTP消息编辑器中。可以设定字体和点大小和字体平滑是否被使用。还可以配置为请求参数和响应语法语法彩色化是否完成。
Character Sets
设置控制Burp显示原始的HTTP消息时如何处理不同的字符集。可用的选项有:
- 自动识别每个消息的字符集的基础上,邮件标题。这是默认选项,可让您同时在使用不同字符集的邮件的工作。
- 对所有消息使用平台默认的字符集。
- 显示消息的原始字节(使用ASCII编码),而不处理任何扩展字符。
- 对所有消息使用一个特定的字符集。
HTTP头始终显示在原料的形式 - 字符集编码选项只适用于邮件正文中。
需要注意的是所需的一些字符集的字形不支持的所有字体。如果你需要使用一个扩展的或不寻常的字符集,你应该首先尝试进行系统的字体,如宋体或Dialog。
HTML rendering
Html rendering是html转义的意思,渲染HTTP消息编辑器显示HTML内容中标签约,因为它会出现在你的浏览器。该选项控制Burp是否会作出所需要的完全呈现HTML内容(例如,用于嵌入式图像)的任何额外的HTTP请求。使用此选项涉及的速度和HTML渲染质量之间的权衡,以及您是否希望避免作出任何进一步的请求到目标应用程序。
Misc
此选项卡包含的设置hotkeys(热键),logging(记录),temporary files(临时文件)的位置,automatic backup(自动备份)和scheduled tasks(预定的任务)。
Hotkeys
设置允许您配置快捷键为常用操作。许多类型的动作可以被分配一个快捷键,在以下类别:
- 特定于某个HTTP请求或响应的动作,例如“send to repeater(发送到转发器)”。
- 全球行动,如“Switch to proxy(切换到代理服务器)”。
- 在编辑操作,如“剪切”和“撤消”。
所有的快捷键必须使用控制键(或在OSX上的Command键),也可以使用Shift和其他可用的修饰符。请注意,在某些Windows安装中的Ctrl + Alt组合是由Windows视为等同于键AltGr,并可能导致输入的字符时,在文本字段中压显现出来。
Logging
设置控制HTTP请求和响应的记录。可以记录每个工具或所有Burp流量进行配置。选择你要记录的,会弹出一个框让你选择保存的地方,可以在扫描的时候把扫描的一些扫描记录下来,然后放到sqlmap里进行跑。
Temporary Files Location
保存一些零时文件的地方,可以设置系统默认,也可以自定义路径。
Automatic backup
自动备份功能。设置允许您配置Burp保存的所有工具'的状态和配置的备份每隔多少分钟,并且还可以选择退出。
使用这些选项意味着你一般都会有你的工作,最近的备份副本在Burp异常退出的事件。如果您已配置目标范围为你的工作,你可以使用“include in-scope items only(仅仅包括在范围内的项目)”以减少数据必须保存量。
Scheduled Tasks
计划任务。仅限专业版使用,您可以使用任务调度程序自动启动和停止某些任务在规定的时间和间隔时间。您可以使用任务计划程序来启动和停止某些自动化任务了几个小时,而你没有工作,并定期或在特定时间保存您的工作。要使用此功能,请选择在Burp的任何地方一个HTTP请求,或任何部分目标站点地图,并在上下文菜单中的“Engagement(参与工具)”中选择“Schedule task(计划任务)” 。或者,您也可以通过在计划任务面板中直接添加一个新的任务。创建一个新的任务将打开一个向导,可以配置任务的详细信息。
任务计划有以下类型:
1)从URL扫描
2)暂停主动扫描
3)继续主动扫描
4)从URL蜘蛛
5)暂停蜘蛛
6)保存状态
根据任务的类型,您还可以配置一个URL (如扫描)或文件(如保存状态) 。每一个任务需要有配置了启动时间。或者,您可以配置任务重复在定义的时间间隔。
Suite functions
Generate CSRF POC
此功能可用于生成一个证明了概念验证(PoC )跨站点请求伪造(CSRF )攻击对于一个给定的请求。要使用此功能,请选择在Burp的任何地方URL或HTTP请求,并选择上下文菜单中的“Engagement tools(参与工具)”中的“Generate CSRF Poc(生成CSRF的一键通)”。
Burp显示了在顶部面板中选择的完整的请求,并将生成的HTML CSRF在较低的面板。在HTML使用的形式和/或JavaScript来生成在浏览器中所要求的请求。您可以手动编辑的要求,并单击“regenerate(重新生成)”按钮,根据更新的要求来重新生成CSRF的HTML 。你可以测试生成的PoC的效果在浏览器中,使用“测试中的浏览器”按钮。当您选择此选项,可以粘贴到浏览器(配置为使用Burp的当前实例作为其代理)一个唯一的URL 。由此产生的浏览器请求由服务Burp与当前显示的HTML,然后你可以决定的PoC是否是通过监测得到的请求( s)表示,通过代理服务器进行了卓有成效的。
Message Editor
HTTP消息编辑器是用于整个Burp查看和编辑的HTTP请求和响应。以及显示原始消息本身,编辑器包括大量的功能,帮助您快速进一步分析这些消息,推动Burp的核心工作流程,以及进行其他有用的任务。
Content Discovery
此功能可用于发现内容并不会从您可以浏览或蜘蛛可见内容链接功能。
要使用此功能,请选择在Burp的任何地方一个HTTP请求,或任何部分目标站点地图,并在上下文菜单中的“参与工具”中选择“查找内容”。
Burp使用各种技术来发现内容,包括姓名猜测,网络蜘蛛,并且从命名的应用程序中使用的观测约定外推。发现的内容被显示在一个特殊的网站地图是特定的发现会话,并且还可以任选地加入到suite site map。
Control
此选项卡显示您发现会话的当前状态。切换按钮指示是否会话正在运行,并允许您暂停和重新启动会话。
Target
这些选项可让您定义了内容发现会话启动目录,以及是否文件或目录要有针对性。下列选项可用:
Start directory(启动目录) - 这就是Burp就会开始寻找内容的位置。这条道路及其子目录内只有项目将在会议期间提出要求。
Discover(发现) - 此选项确定会话是否将寻找文件或目录,或两者兼而有之。如果你正在检查的目录,你可以选择是否以及如何深递归到子目录中发现的。
Filenames
这些选项可让您配置Burp应该使用生成的文件名来测试源。下列选项可用
内置的短文件列表 、内置短路目录列表 、内置长文件列表 、内置长目录列表
发现在目标站点上使用的名称。如果选择此选项,Burp会维护所有的目录和文件名茎已发现的目标网站上的名单,也将检查这些在测试每一个新的目录。
根据发现的物品推导。如果选择此选项,Burp会尝试猜测基于那些已经被发现的项目名称。例如,如果该目录AnnualReport2011被发现,Burp也将检查AnnualReport2012,AnnualReport2013等。
File Extensions
控制如何发现会话添加文件扩展名,正在测试。该文件的本身是根据文件名选择导出。当每个文件的在测试时,Burp会检查各种不同的扩展名,根据这些设置。下列选项可用:
- Test these extensions(测试这些扩展)- 此选项可让您设定的扩展,Burp会经常检查清单。你可以微调的基础上已知在对目标应用程序中使用的技术,默认列表。
- Test all extensions observed on target site(测试目标点观测到的所有分机) - 如果选择此选项,然后Burp会自动检查是否存在已在使用中被观察到目标站点上的文件扩展名。此选项很有用,当你不知道到底是什么扩展或技术都在使用。您还可以配置你不想要检查,即使发现是在使用中(如图像文件)的扩展名列表。
- Test these variant exxtensions on discovered files(在测试文件中发现这些变异扩展) - 此选项可让您设定的扩展名列表的Burp会额外检查以便发现文件名。这个选项是检查现有的文件的备份副本很有用。
- Test filestemswith no extension(测试文件无扩展名) - 如果选择此选项,Burp会为每个文件检查不带扩展名添加。
Discovery Engine
用于发现内容时发出HTTP请求的引擎,并带有套房站点地图互动。下列选项可用:
- 1)Case sensitivity(区分大小写) - 这个设置控制Burp是否会处理文件名的情况下,敏感。如果选择“自动检测”被选中,然后Burp会通过处理文件名的情况下灵敏启动,并在发现的第一个新项目,将测试情况变化的服务器的处理。根据所治疗,Burp可能恢复到处理文件名的情况下不区分大小写。
- 2)Add discovered content to suite site map(发现添加内容到套房站点地图) - 如果选择此选项,然后在当前会话的发现确定了新的项目将被自动添加到主浴室的站点地图。
- 3)Copy content from suite site map(复制主站点地图的内容) - 如果选择此选项,则发现会话将复制任何现有的相关内容从主套房站点地图进去发现网站地图,以提供发现新的内容较强的出发基础。
- 4)Number of discovery threads(蜘蛛从已发现的内容) - 如果选择此选项,则发现会话将执行常规的网络蜘蛛,并且将处理响应发现请求寻找链接到其他新的内容。发现执行绪数目 - 此选项控制并发请求数的发现引擎能够作出。蜘蛛线程数 - 该选项控制并发请求数的蜘蛛功能是能够使,如果启用。
Site map
该发现会话使用自己的站点地图,显示所有已发现的定义范围内的所有内容。如果您已配置Burp的话,新发现的项目也将被添加到Burp的主要站点地图。
Alert
用来显示当前Burp的扫描代理的一些状态。
Burp Sqlmap插件
SqlMap是一个开源渗透测试工具,它可以自动检测和利用SQL注入漏洞和接管数据库服务器的过程。它配备了一个功能强大的检测引擎,许多利基功能,为最终的渗透测试和广泛的交换机从数据库中指纹持久的,在数据从数据库中获取,通过访问底层文件系统和操作系统上执行命令的输出带外连接。