渗透测试之BurpSuite工具的使用介绍(二)
若希望从头开始了解BurpSuite的介绍,请访问第一篇(渗透测试之BurpSuite工具的使用介绍(一)):https://www.cnblogs.com/zhaoyunxiang/p/15999958.html
三、BurpSuite的代理模块介绍:
1.什么是BurpSuite代理:
Burp代理是一个用来攻击和调试 web应用程序的交互式的 HTTP /S代理服务器。他就像一个在浏览器和目标服务器之间的中介人,并允许用户拦截,查看和修改两个方向上的原始流量。
Burp代理允许你通过监视和操纵应用程序传输的关键参数和其他数据来查找和探索应用程序的漏洞。通过以恶意的方式修改浏览器的请求,Burp代理可以用来进行攻击,如:SQL注入,cookie欺骗,提升权限,会话劫持,目录遍历,缓冲区溢出。拦截的传输可以被修改成原始文本,也可以是包含参数或者消息头的表格,也可以十六进制形式,甚至可以操纵二进制形式的数据。在Burp代理可以呈现出包含 HTML或者图像数据的响应消息。
除了每一个请求的操纵外,Burp代理保持着一个完整的历史记录,包括浏览器发送的每一个请求,所有的操作,以及接收到的所有响应。你可以复查较早的请求,并修改后补发任何请求,还能以原始的形式或者 web页面的形式来查看保存的响应。可以把两个方向上的整个会话记录到一个文件中,用来作进一步分析或者提供审查线索。
在 Burp Suite里,Burp代理是何其他工具紧密地集成在一起的。并允许把任意的请求和响应发送到其他工具里作进一步处理。通过一次单击,你可以把一个感兴趣的请求作为分析会话令牌的基础,或者经过人工修改后再发送,漏洞分析,或者使用 Burp Intruder进行一次自定义的自动攻击。
通过基于域名,IP地址,协议,HTTP方法,URL,资源类型,参数,cookies,消息头/消息体内容,响应代码,内容类型和 HTML页面标题的请求和响应的细微规则来控制 Burp代理的交互式行为。可以悄悄地执行配置操作,而不会影响任何请求。你可以晚一点查看历史记录以确认请求经过更严格检查。虽然使用了正则表达式匹配规则和替换规则,Burp代理还可以用来自动修改 HTTP请求和响应消息。
除了用户的主界面,在浏览上也可以控制 Burp代理用来查看请求历史记录和重发请求。Burp代理可以与上游代理结合起来使用。它可以处理上游代理和 web服务器的 basic,NTML和摘要式身份认证,同样也可以用在大多数局域网环境中。它支持 SSL(可以自定义服务器或客户端证书),可以查看 HTTPS传输,还可以把它修改成明文。另外,它还能自动处理许多种编码的服务器响应,包括分块传输编码和压缩内容编码。
2.使用BurpSuite代理:
当 Burp代理运行后,HTTP/S代理服务器自动开启 8080端口仅作为回环接口。要开始使用 Burp代理,需要简单地把你的浏览器的代理服务器设为 127.0.0.1 :8080,开始浏览。默认情况下,Burp代理配置的是自动拦截对非媒体资源的请求。显示出来后,可以查看和修改。其他的请求(图片和样式表)和所有服务器的响应自动地转发。这些默认动作是可以修改的。
3.拦截选项卡(Intercept tab):
你可以使用快捷键 ctrl+F和 ctrl+D来代替”forwar”“drop”。
通过单击其中一个可以使用的选项卡,能以几种形式来显示和分析每个请求和响应。随着适当的消息类型的显示,可用选项卡也会随之显示或消失:
raw:这里显示的是纯文本形式的消息。在文本窗口的底部提供了一个搜索和加亮功能,可以用它来快速地定位出消息中的感兴趣的字符串,如错误消息。在搜索的左边有一个弹出项,让你来处理大小写问题,以及是使用简单的文本搜索还是正则表达搜索。
params:对包含参数(URL查询字符串,cookies消息头,或消息体)的请求,这个选项可以把参数分析成名称/值的组合,并且允许你能简单地查看和修改。
headers:这里以名称/值的组合来显示 HTTP的消息头,并且还以原始的形式显示消息体。
hex:这里允许你直接编辑消息的原始二进制数据。如果在文本编辑器里修改,某些传输类型(例如,使用 MIME编码的浏览器请求的部分)包含的二进制数据可能被损坏。为了修改这些类型的消息,应使用十六进制。
HTML/XML:对于响应中的这种格式的内容,为消息体提供了一种 syntax-colourised视图。
render:对于响应中的包含 HTML或者图像的内容,以视觉形式显示这些内容,最后会显示在浏览器里。
AMF:对于 Action Message Format格式的响应或请求,这显示了一个解码消息的视图树。如果需要编辑,你可以双击树上的节点来修改它们的值。
viewstate:对于包含一个 ASP.NET视图状态的请求和响应,会把视图状态的内容非序列化,这允许你查看任意敏感内容的数据。也可以表明视图状态 MAC是否可用(也就是视图状态是否可被修改)。
在任意的显示的项上右击打开上下文菜单可执行多种操作。也可以通过主界面上的”action”按钮来打开同样的菜单:
send to:你可以把任意的消息,或者选中的部分消息,发送到 Burp Suite中的其他工具里,来作进一步分析或攻击。
find reference[Professional]版本中你可以在所有的 Burp工具里使用这个功能来搜索和选中项有关的HTTP响应。
discover content[Professional]版本中你可以使用这个功能来探索和用浏览器和网络爬虫发现的内容不同的内容和潜在的功能。
schedule task[Professional]版本中你可以使用这个功能来创建一些设定好运行次数和时长的自动执行的任务。
change request method对所有的请求,经过把所有相关的请求参数适当地搬迁到这个请求里来,你就可以自动地把请求的方法在 POST和 GET中间切换。通过发送恶意的请求使用这个选项来快速测试应用程序的极限参数是多少。
change body encoding对于所有的请求,你可以在应用程序/X-WWW格式的 URL编码和多重表单/数据之间切换消息体的编码方式。
copy URL这个功能是把当前的 URL完整地复制到粘贴板上。
copy to file这个功能允许你把选择一个文件,并把消息的内容复制到这个文件里。这个对二进制数据来说是很方便的,要是通过粘贴板来复制会带来一些问题。复制操作是在选择的文本上进行的,如果没有被选中的内容,则是针对整个消息了。
paste from file这个功能允许你选择一个文件,并把文件里的内容粘贴到消息里。这个对二进制数据来说是很方便的,要是通过粘贴板来复制会带来一些问题。粘贴操作会替换掉被选中的内容,如果没有内容被选中,则在光标位置插入这些内容。
save item这个功能让你指定一个文件,把选中的请求和响应以 XML的格式保存到这个文件,这里面包括所有的元数据如:响应的长度,HTTP的状态码以及 MIME类型。
don't intercept通过这些命令可以快速地添加拦截动作的规则来阻止拦截到的消息,这些消息和当前的消息有着相同的特征(如远程主机,资源类型,响应编码)。
do intercept仅对请求有效,这允许你可以对当请求和响应的进行强制拦截。
convert selection这些功能让你能够以多种方案对选择的文本进行快速的编码和解码。
URL-encode as you type如果这个选项被打开,你输入的像&和=这样的符号会被等价的 URL编码代替。
拦截选项卡里包含了一个可以用来快速切换拦截开关状态的切换按钮。如果显示”intercept ison”,则消息会被自动拦截或者按照在选择卡里配置的拦截规则进行转发。如果显示”interceptis off”,消息不会被拦截。
4.项目选项卡(Options tab)
这个选项里包含了多种控制 Burp代理行为的配置选项,就像下面描述的那样。
Burp代理允许你定义多个监听点。每个监听点在你电脑上开启一个端口并等待浏览器来连接。默认情况下,Burp代理在端口 8080上开启一个监听点,但是你可以修改这个监听点,并且可以添加多个你需要的其他监听点。对于每个监听点,你都可以上面那样来配置他们的一些属性。
local listener port这是一个本地计算机上的一个端口,开启它是用来监听进入的连接。你应该把浏览器的代理服务器设置为主机 127.0.0.1和这个端口。
listen on loopback interface only这里控制着监听点是只绑定在 loopback接口上还是整个网络接口上。注意:如果这个选项没被选中,其他的电脑就也可以连接这个监听点了。这可能会让他们通过你的 IP地址进行出站连接,以及访问代理历史记录内容的敏感数据,如登陆认证。你只有处在可信任的网络的时候才能取消这个选项。
support invisible proxying for non-proxy-aware clients如果你使用的是标准浏览器,你就不应该选上这个项。如果你的目标应用程序使用了一个在浏览器外的运行厚客户端组件或者一个使它自己的 HTTP请求独立于浏览器之外的框架,这时你会发现这个选项是有用的了。在这种情况下,通过重定向客户端的请求降低网络堆栈 (如给主机文件添加一个条目,或者改变路由器配置),这样你会有效地强制客户端连接 Burp。然而,这些客户端处理的请求可能和web代理上通常是的类型不同。
代理上的请求类型是像这样的:
GET http://myapp.com/foo.php HTTP/1.1
Host: myapp.com
然而无代理的请求是这样的:
GET /foo.php HTTP/1.1
Host: myapp.com
通常情况下,web代理需要接收请求的第一行的完整 URL,这样用于确定请求是发送到哪个域的主机(他们不会,如果他们遵守规范,就会把主机消息头作为发送的目标域)。为了让Burp代理兼容客户端发送的无代理类型的请求,你需要选上”support invisible proxying”。当你这样做了后,如果 Burp接收到无代理类型的请求,它会解析出主机的消息头,并把这个作为请求的发送的目标域主机。
redirect to host/port通常你应该把这些选项留为空白。如果配置了他们,Burp代理就会把所有的请求转发到这个指定的主机端口,忽视浏览器发出这个请求的目标。注意如果你使用这个选项,你可能也需要配置 match and replace规则为请求重新指定主机消息头,如果你把请求重定向到的服务器期待一个和浏览器发出的不同的消息头。
server SSL certificate这个选项让你配置一个提交给浏览器的服务器 SSL证书。正确地使用这个选项能解决一些使用拦截代理产生的一些 SSL问题。通过查看服务器 SSL证书帮助的所有细节来了解怎样来使用这个选项。
Note默认情况下,安装时,Burp会创建一个特殊的自签名式的 CA证书,把它保存在你的电脑上,当 Burp启动时使用它。每当你连接一个 SSL保护的站点,Burp就会搜集这个主机
上的服务证书,并用 CA证书来签署。为了充分地利用这个功能,你可以以信任的方式来安
装 Burp的 CA证书,于是在接收每个主机的证书时,不会出现警告。
有时,你希望能在 Burp上使用一个自定义的 SSL证书。你可以在 OpenSSL中使用以下命令来创建一个自定义的证书(名字”foo.crt”),这个名字是自己选的:
openssl genrsa 1024 > foo.key
openssl req -new -x509 -nodes -sha1 -days 7300 -key foo.key > foo.crt
openssl pkcs12 -export -out foo.p12 -in foo.crt -inkey foo.key -name "your name"
这个面板里允许你使用细微拦截规则来配置这个管理请求和响应的拦截。复选框”interceptif”控制着是否一些清求和响应该被拦截。如果选择了 1到 2个框,按照表格里的活动规则相关的信息就会被拦截。根据每条规则左边的复选框,决定这些规则是有效还是停用。通过右边的按钮,可以对这些规则进行编辑,删除,添加和加载。
几乎能对任何消息属性的规则进行配置,包括域名,IP地址,协议,HTTP方法,URL,资源类型,参数,cookies,消息体/消息体内容,响应编码,内容类型和 HTML页面标题。你配置的这个规则仅仅是用来拦截目标范围的 URL项。可以使用正则表达式来为每个属性设置复杂的匹配条件。通过使用布尔运算符 AND和 OR来融合规则。按从左到右的逻辑顺序处理规则表达式,在范围内的每个运算符就是这样的:
(cumulative result of all prior rules) AND/OR (result of current rule)
所有生效的规则会做到每条消息上,在使用过最后一个生效的规则的结果在后台决定了这个消息是被拦截还是转发。
当用户修改请求和响应后,”update Content-Length”复选框控制着 Burp代理是否更新他们消息头的长度。如果选中,Burp代理会自动重新计算被修改的 HTTP消息体的长度,并为HTTP消息头设置正确的值。当 HTTP消息体被修改时,这个功能显的非常必要。HTTP规范和大多数的 web服务器一样,需要在消息头内容长度上提交的 HTTP消息体长度的正确值。如果没有指定正确的值,服务器或浏览器收到消息会产生错误,或者收到不完整的消息,或者会无限期地等待接收下面的数据。
通过自动地回写到应用程序响应的 HTML,你可以使用这些选项来完成许多任务。
Unhiding hidden fields使你能够直接编辑浏览器的值,而不是通过拦截后面的请求。和 enabling disabled fields,removing length limitations一样。Disabling JavaScript and OBJECT tags在测试中提供一种快速的方式式客户端逻辑失效(注意这个功能并不是设计用来进行 NoScript方式的安全防御的)。
match and replace这些选项配置 Burp代理执行基于正则表达式的匹配准则和 HTTP请求和响应的消息头和消息体的替换。对于选中的每个规则,都会使用正则表达式来测试消息头或体是否匹配,并用指定的字符串替换掉匹配的部分。
对于整个消息头来说,如果整个消息头都匹配,并且替换的字符串为空,则删除这个消息头。如果没有匹配这些指定的表达式,则替换字符串会作为一个新消息头添加进来。这个功能在自动进行某种应用程序攻击时会非常有用,如操纵 cookies和 URL字符段查询。
talk HTTP/1.0 to server这里控制着 Burp代理是否要使用 1.0版本的 HTTP来强行连接目标服
务器。默认设置是使用浏览器的 HTTP版本。对于使用 1.0和 1.1版本的大多数浏览器,Burp
代理都能成功地通过测试。然而对于一些传统的服务器或应用程序使用 1.0版本才能正常,因此需要在这里来指定它。
unpack gzip / deflate一些浏览器会从服务器上接收到 gzip和 deflate的压缩内容。为了能够查看和修改这些内容,你需要对他们进行解压缩。这个选项就是控制 Burp代理是否自动进行解压缩。
5.历史记录选项(History tab)
这个选项是来显示所有请求产生的细节,显示的有目标服务器和端口,HTTP方法,URL,以及请求中是否包含参数或被人工修改,HTTP的响应状态码,响应字节大小,响应的 MIME类型,请求资源的文件类型,HTML页面的标题,是否使用 SSL,远程 IP地址,服务器设置的 cookies,请求的时间。当你把拦截关闭时,这个选项是非常有用的。它允许你在不适用拦截的情况下进行浏览时,仍能够监视应用程序传输的关键细节。
你可以通过单击历史记录表里的列标题对表格里的列里的内容进行排序 (或者用 shift+单击进行倒置排序)。例如,你想让历史记录表向上增长,即最近产生的项在表的顶端,则你可以使用 shift+点击最左边的列来显示请求的序号。另外,如果你想按照内容类型列出请求,你就点击”MIME type”这一列。
下面的这个历史表格是一个预览表格。如果你选择了历史记录里的一个项,相关的请求和响应就会显示在窗格的下部。如果这些请求或响应时通过手动或者你配置的规则修改的,修改后的项会显示在原来项的旁边。
在历史记录表里,右击一个或多个选项,就会显示一个上下文菜单让你执行一些操作,包括修改目标范围,把这些选项发送到其他 Burp工具,或者删除这些项:
[Professional]版本中你可以通过上下文菜单使用许多定制工具,如搜索脚本与注释,分析目标 web站点,调度任务等等。
你可以通过添加注释或加亮,来注释一个或多个选项:
你可以通过最左边的列里的下拉菜单来加亮单个选项:
通过双击来就地注释单个选项,并编辑单元格:
另外,如果你想一次注释多个选项,可以选中相关的项,然后使用上下文菜单进行注释或加亮:
当你把感兴趣的项进行了注释后,可以使用列排序和过滤显示来快速地找到这些项。
除了使用预览表格里的视图请求,在弹出窗口里,可以通过对表格里的任意项进行双击来显示请求和响应。
显示在历史记录表里的内容实际上是一个进入底层数据库的视图,你可以通过配置过滤器来确定哪些顶层的数据项显示在表格里。有效应用程序包含了大量的内容,如图像,CSS等,这些有利于从视图上隐藏的。AJAX应用程序产生大量相似的异步请求,你可能会想把他们从视图上过滤出来来查看一些感兴趣的项。在这个历史记录表的顶部有一个过滤栏。单击会有一个弹出窗口,让你来精准地配置显示哪些内容在表格里:
你可以选择只显示那些有参数的请求,或者在当前目标范围内的项,或者接收到的响应。你可以通过 MIME类型,HTTP状态码,文件扩展名进行过滤。如果你设置过滤隐藏了一些项,他们不会被删除,只是隐藏了,通过解除相关的过滤就可以重新显示出来了。
[Professional你版本中可以为过滤器指定一个搜索项,让它显示那些只包含请求或响应的项,或者显示需要的用户添加的注释。
和过滤器一样,你可以在历史记录表里通过选中一个或多个项,然后在上下文菜单里选择“delete”来永久地删除这些项。
在一些情况下,这对显示更多进入底层历史记录数据的视图很有用,并对每个视图采用不同的过滤器。例如,在测试访问控制时,你可以以不同用户的身份登录到应用程序,以及想单独地查看在用户上下文产生的请求序列。你可以通过代理记录的上下文菜单上的”show newhistory window”选项来打开添加的代理记录视图。然后你可以为每个记录窗口配置过滤器来显示你想看到的请求。
为了使用这个功能进行测试访问控制,你需要对测试的每个用户上下文使用单独的浏览器,为每个浏览器在 Burp上创建单独的代理监听点(你需要更新每个浏览器里的代理设置并把它指向相关的监听点)。然后对于每个浏览器,在 Burp上你打开一个单独的代理记录窗口,并设置过滤器来显示和代理监听点的端口相关的请求。当你用每个浏览器访问应用程序时,每个记录窗口里只显示和用户上下文相关的项:
6.浏览器控制(In-browser controls)
除了使用主界面,你还可以直接使用浏览器来控制 Burp代理。
在浏览器里输入 Http://burp就可以访问所有的代理记录。这个记录会以一个表格的形式显示出来。内容有:目标服务器和端口号,HTTP方法,URL,文件扩展名,请求是否被修改过:
单击”URL”列的条目显示出本地的请求,单击 “modified?”列的条目显示出相关修改过的请求。
当完全地显示出一个单独的请求时,可以通过” repeat request”按钮重发这个请求。依据当前配置的拦截规则,可以通过 Burp代理的修改来显示这个请求。当浏览器接收到服务器对重发请求作出的响应时,前进浏览一下,就可以像平常一样继续了。
如果可用,你可以在浏览器里单击” view response”按钮来查看本地响应。这会让 Burp代理退回到从服务器里接收到的那个响应,Burpd代理既不会显示请求也不会显示响应来修改。
注意当浏览器从 Burp代理接收到保存过的响应时,这会导致浏览器加载添加的请求。Burp代理会以平常的方式处理这些请求,将不会返回以前保存的数据。
四、BurpSuite爬取模块介绍:
1.Burp网络爬虫是什么:
Burp Spider是一个映射 web应用程序的工具。它使用多种智能技术对一个应用程序的内容和功能进行全面的清查。
Burp Spider通过跟踪 HTML和 JavaScript以及提交的表单中的超链接来映射目标应用程序,它还使用了一些其他的线索,如目录列表,资源类型的注释,以及 robots.txt文件。结果会在站点地图中以树和表的形式显示出来,提供了一个清楚并非常详细的目标应用程序视图。
Burp Spider能使你清楚地了解到一个 web应用程序是怎样工作的,让你避免进行大量的手动任务而浪费时间,在跟踪链接,提交表单,精简 HTNL源代码。可以快速地确人应用程序的潜在的脆弱功能,还允许你指定特定的漏洞,如 SQL注入,路径遍历。
2.使用 Burp Spider:
要对应用程序使用 Burp Spider需要两个简单的步骤:
1.使用 Burp Proxy配置为你浏览器的代理服务器,浏览目标应用程序(为了节省时间,你可以关闭代理拦截)。
2.到站点地图的”target”选项上,选中目标应用程序驻留的主机和目录。选择上下文菜单的 “spider this host/branch”选项。
你也可以在任何Burp工具的任意请求或响应上使用上下文菜单上选择”spider this item”.当你发送一个站点地图的分支来 spidering,Spider会首先检查这个分支是否在定义好的spidering的范围内。如果不是,Burp会提示你是否把相关的 URL添加到范围里。然后,Burp开始 spidering,并执行下面的操作:
在分支上,请求那些已被发现的还没被请求过的 URL。
在分支上,提交那些已被发现但提交 URL错误的表单。
重复请求分支上的先前收到的状态码为 304的项,为检索到一个应用程序的新(未进入缓存)副本。
对所有的检索到内容进行解析以确认新的 URL和表单。
只有发现新内容就递归地重复这些步骤。
继续在所有的范围区域内 spidering,直到没有新内容为止。
注意 Spider会跟踪任何在当前定义的 spidering范围内的 URL链接。如果你定义了一个比较宽的目标范围,并且你只选择了其中的一个分支来 spidering,这时 Spider会跟踪所有进入到这个比较宽的范围内的链接,于是也就不在原来的分支上 spider。为了确保 Spider只在指定分支内的请求上,你应该在开始时,就把 spidering范围配置为只在这个分支上。你应该小心地使用 Burp Spider。在它的默认设置上,Spider会在 spidering范围内使用默认输入值,自动地提交任意表格,并且会请求许多平常用户在只使用一个浏览器不会发出的请求。如果在你定义范围的 URL是用来执行敏感操作的,这些操作都会被带到应用程序上。在你完全地开始自动探索内容之前,使用浏览器对应用程序进行一些手动的映射,是非常可取的。
3.控制选项:
这个选项是用来开始和停止 Burp Spider,监视它的进度,以及定义 spidering的范围。
Spider running这个是用来开始和停止 Spider。Spider停止后,它自己不会产生请求,但它会继续处理通过 Burp Proxy的响应,并且在 spidering范围内的新发现的项都会送入请求队列里,当 Spider重新启动时,再来请求。
这里显示的一些 Spider进度的指标,让你能看到剩余的内容和工作量的大小。
Clear queues如果你想改变你工作的优先权,你可以完全地清除当前队列的项目,来让其他的项目加入队列。注意如果被清除的项目如果还在范围内并且 Spider的分析器发现有新的链接到这个项目,那么它们还会加入队列
Spider scope在这个面板里,你能精确地定义 Spider的请求范围。如果你已经根据当前目标细节配置好了 Suit-wide的目标范围,你可以丢弃 Spider默认设置的活动范围。如果你需要使用一个定义的不同的 Spider范围,则选择” use custom scope”。一个进一步设置面板会出现,和 Suite-wide范围面板的功能相似。如果你使用自定义范围并向 Spider发送不在范围内的项,则 Burp会自动更新这个自定义的范围而不是 Suite范围。
4.项目选项卡
这个选项里包含了许多控制 Burp Spider动作的选项,如下描述。这些设置在 spider启动后还可以修改的,并且这修改对先前的结果也是有效的。例如,如果增加了最大链接深度,在以前的最大链接深度外的链接如果满足现在的条件,也会加入到请求队列里。
check robots.txt如果这个被选中,Burp Spider会在所有范围内的域名上请求和处理 robots.txt文件。通过 robots排除协议来控制互联网上的 spider-like代理的行为。注意 Burp Spider不会确认 robots排除协议。Burp Spider会列举出目标应用程序的所有内容,请求所有在范围内的 robots.txt条目。
Use cookies如果这个被选中,Burp Spider会处理服务器响应中的Set-Cookie指令,会在后面的请求中向同一域名提交任意接收到的 cookie。当 spidering一个 web应用程序时,并且这个应用程序保持着服务器端的状态时,这个选项就显得非常有必要了。
detect custom "not found" responses如果没有找到请求的资源,HTTP协议要求 web服务器返回一个 404的状态码。然而许多 web应用程序会返回自定义的”not found”页面,用来代替不同的状态码。使用这个选项就能阻止在映射站点内容时产生的这种误报。Burp Spider通过请求每个域名里的一些不存在的资源就能探测到这种自定义的”not found”响应。通过编译出的这个指纹来识别其他请求的”not found”响应。
ignore links to non-text content常常需要推断出在 HTML上下文里链接到特殊资源的 MIME类型。例如,带有 IMG标记的 URL会返回图像;那些带有 SCRIPT标记的会返回JavaScript。如果这个选项被选中,Spider不会请求在这个上下文出现的出现的非文本资源。使用这个选项,会减少 spidering时间,降低忽略掉感兴趣内容的风险。
request the root of all directories如果这个选项被选中,Burp Spider会请求所有已确认的目标范围内的 web目录,除了那些目录里的文件。如果在这个目标站点上目录索引是可用的,这选项将是非常的有用。
make a non-parameterised request to each dynamic page如果这个选项被选中,Burp Spider会对在范围内的所有执行动作的 URL进行无参数的 GET请求。如果期待的参数没有被接收,动态页面会有不同的响应,这个选项就能成功地探测出添加的站点内容和功能。
maximum link depth这是 Burp Suite在种子 URL里的巡览”hops”的最大数。0表示让 Burp Suite只请求种子 URL。如果指定的数值非常大,将会对范围内的链接进行无限期的有效跟踪。
这些选项控制着 Burp Proxy与 Burp Spider之间的接口,它允许”被动”的 spidering web应用程序,控制浏览器。
passively spider as you browse如果这个选项被选中,Burp Suite会被动地处理所有通过 BurpProxy的 HTTP请求,来确认访问页面上的链接和表格。使用这个选项能让 Burp Spider建立一个包含应用程序内容的详细画面,甚至此时你仅仅使用浏览器浏览了内容的一个子集,因为所有被访问内容链接到内容都会自动地添加到 Suite的站点地图上。
link depth to associate with proxy requests这个选项控制着与通过 Burp Proxy访问的 web页面有关的” link depth”。为了防止 Burp Spider跟踪这个页面里的所有链接,要设置一个比上面选项卡里的” maximum link depth”值还高的一个值。
注意:在早期的 Burp Spider版本里,这里包含的选项是控制在 Proxy里的请求和响应的cookies上,怎样更新 spider cookie jar。现在这些配置已被删除了,你可以使用 suite-wide里的会话处理来代替。
individuate forms这个选项是配置个性化的标准(执行 URL,方法,区域,值)。当 Burp Spider处理这些表格时,它会检查这些标准以确认表格是否是新的。旧的表格不会加入到提交序列。
do not submit如果选中这个,Burp Spider不会提交任何表单。
prompt for guidance如果选中这个,在你提交每一个确认的表单前,Burp Suite都会为你指示引导。这允许你根据需要在输入域中填写自定义的数据,以及选项提交到服务器的哪一个区域,以及是否遍历整个区域。
automatically submit如果选中这个,Burp Spider通过使用定义的规则来填写输入域的文本值来自动地提交范围内的表单。每一条规则让你指定一个简单的文本或者正则表达式来匹配表单字段名,并提交那些表单名匹配的字段值。可以为任意不匹配的字段指定默认值。
在应用程序通常需要对所有输入域都是有效格式的数据的地方,如果你想通过登记表单和相似功能自动地 spider,则这个选项会非常有用。在自动地把表单数据提交到广阔范围内的应用程序时,Burp使用一组非常成功的规则。当然,如果你遇到有自己需要提交的特定值的表单字段名时,你可以修改这些或者添加自己的规则。你要小心地使用这个选项,因为提交了表单里的虚假值有时会导致一些不希望看到操作。
许多表单包含了多个提交元素,这些会对应用程序进行不同的操作,和发现不同的内容。你可以配置 Spider重复通过表单里提交元素的值,向每个表单提交多次,次数低于配置的最大值。
登陆表单在应用程序中扮演一个特殊角色,并且你常常会让 Burp用和处理平常表单不一样的方式来处理这个表单。使用这个配置,你可以告诉 Spider在遇到一个表单执行下面 4种不同操作的一种:
1.如果你没有证书,或者关注 spidering的敏感保护功能,Burp可以忽略登陆表单。
2.Burp能交互地为你提示引导,使你能够指定证书。这时默认设置项。
3.Burp通过你配置的信息和自动填充规则,用处理其他表单的方式来处理登陆表单。
4.在遇到的每个登陆表单时,Burp能自动地提交特定的证书。
在最后一种情况下,任何时间 Burp遇到一个包含密码域的表单,会提交你配置的密码到密码域,提交你配置用户名到最像用户名的字段域。如果你有应用程序的证书,想让 Spider为你处理登录,通常情况下这是最好的选项。
这些选项让你来对 Spider引擎进行微调,这取决于应用程序的性能的影响和你的处理能力和带宽。如果你发现 Spider运行缓慢,但应用程序运行良好,CPU的利用率也很低时,你可以增加扫描线程数,来使扫描过程更快。如果你发现有连接错误产生,应用程序开始变慢,或者电脑特别卡,这时你应该降低线程数,或者增加下面的那两个参数。
Request headers这里允许你自定义 HTTP消息头,通过配置把它应用到所有的请求中。这对满足个别应用程序的特别需求很有用。例如,当测试一个为移动设备设计的应用程序时,来模拟一个被期望的用户。
use Referer header如果这个选项被选中,当 Burp Spider请求的项是从其他页面的链接过来时,就会提交相关的 Referher heards。
5.Spider的结果
所有的在 spidering过程里发现的内容都会被添加到目标站点地图里,其他组件工具也共享这个地图信息。这个地图显示了通过 Spider和 Proxy发现的内容的视图树和表格。它让你可以过滤掉视图树里任何不感兴趣的项,并且执行一些其他的操作,如开始扫描漏洞,进一步 spidering,把一些请求发送到其他 Burp工具上执行自定义攻击。请查询站点地图帮助来得到进一步的信息。
若希望更多的了解BurpSuite的介绍,请访问第三篇(渗透测试之BurpSuite工具的使用介绍(三)):https://www.cnblogs.com/zhaoyunxiang/p/16000725.html
本文来自博客园,作者:田家少闲月-,转载请注明原文链接:https://www.cnblogs.com/zhaoyunxiang/p/16000296.html