本节介绍如何测试robots.txt文件以查找Web应用程序目录或文件夹路径的信息泄漏。此外,Spiders,Robots或Crawler要避免的目录列表也可以创建为应用程序的Map执行路径的依赖项(OTG-INFO-007)
测试目标
1. Web应用程序的目录或文件夹路径的信息泄漏。
2.创建Spiders,Robots或Crawlers要避免的目录列表。
如何测试
的robots.txt
Web Spider,Robots或Crawlers检索网页,然后递归遍历超链接以检索更多Web内容。他们接受的行为由web根目录[1]中robots.txt文件的机器人排除协议指定。
例如,2013年8月11日http://www.google.com/robots.txt中抽取的robots.txt文件的开头引用如下:
用户代理: *
禁止:/搜索
禁止:/ sdch
禁止:/ groups
禁止:/ images
禁止:/目录
...
该用户代理的指令是指特定的网络蜘蛛/机器人/爬虫。例如,User-Agent:Googlebot是指来自Google的蜘蛛,而“User-Agent:bingbot” [1]是指来自Microsoft / Yahoo!的爬虫。 上述示例中的User-Agent:*适用于以下引用的所有网络蜘蛛/机器人/抓取工具[2]:
用户代理: *
在不允许指令指定哪些资源蜘蛛/机器人/爬虫禁止。在上面的示例中,禁止使用以下目录:
...
禁止:/搜索
禁止:/ sdch
禁止:/ groups
禁止:/ images
禁止:/目录
...
网络蜘蛛/机器人/抓取工具可以故意忽略robots.txt文件[3]中指定的Disallow指令,例如来自社交网络[2]的指令,以确保共享链接仍然有效。因此,robots.txt不应被视为对第三方访问,存储或重新发布Web内容的方式实施限制的机制。
webroot中的robots.txt - 带有“wget”或“curl”
从Web服务器的Web根目录检索robots.txt文件。例如,要使用“wget”或“curl”从www.google.com检索robots.txt:
cmlh $ wget http://www.google.com/robots.txt
--2013-08-11 14:40:36-- http://www.google.com/robots.txt
解析www.google.com ... 74.125.237.17,74.125.237.18,74.125.237.19,...
连接到www.google.com | 74.125.237.17 |:80 ...已连接。
发送HTTP请求,等待响应... 200 OK
长度:未指定[text / plain]
保存到:'robots.txt.1'
[<=>] 7,074 - .- K / s为0
2013-08-11 14:40:37(59.7 MB / s) - 'robots.txt'已保存[7074]
cmlh $ head -n5 robots.txt
用户代理: *
禁止:/搜索
禁止:/ sdch
禁止:/ groups
禁止:/ images
cmlh $
cmlh $ curl -O http://www.google.com/robots.txt
%总收到百分比%Xferd平均速度时间时间当前时间
Dload上载总左转速度
101 7074 0 7074 0 0 9410 0 - : - : - - : - : - - : - : - 27312
cmlh $ head -n5 robots.txt
用户代理: *
禁止:/搜索
禁止:/ sdch
禁止:/ groups
禁止:/ images
cmlh $
webroot中的robots.txt - 使用rockspider
“rockspider” [3]自动创建Spiders / Robots / Crawler的网站文件和目录/文件夹的初始范围。
例如,要使用“rockspider” [4]从www.google.com创建基于Allowed:指令的初始范围:
cmlh $ ./rockspider.pl-www www.google.com
“Rockspider”Alpha v0.1_2
版权所有2013 Christian Heinrich
根据Apache许可证2.0版获得许可
1.下载http://www.google.com/robots.txt
2.“robots.txt”保存为“www.google.com-robots.txt”
3.发送允许:www.google.com的URI到Web代理,即127.0.0.1:8080
/ catalogs / about sent
/目录/ P?发送
/ news /目录已发送
...
完成了。
cmlh $
使用Google网站管理员工具分析robots.txt
网站所有者可以使用Google“Analyze robots.txt”功能将网站分析为“Google网站管理员工具”(https://www.google.com/webmasters/tools)的一部分。该工具可以协助测试,程序如下:
1.使用Google帐户登录Google网站站长工具。
2.在仪表板上,写入要分析的站点的URL。
3.在可用方法之间进行选择,然后按照屏幕上的说明操作。
META标签
<META>标签位于每个HTML文档的HEAD部分内,并且在机器人/蜘蛛/爬虫起点不是从webroot以外的文档链接开始的情况下,应该在网站上保持一致,即“深度链接” “ [5]。
如果没有“<META NAME =”ROBOTS“...>”条目,则“机器人排除协议”分别默认为“INDEX,FOLLOW”。因此,“机器人排除协议”定义的其他两个有效条目的前缀为“NO ...”,即“NOINDEX”和“NOFOLLOW”。
网络蜘蛛/机器人/爬虫可以故意忽略“<META NAME =”ROBOTS“”标签,因为首选robots.txt文件约定。因此,<META>标签不应被视为主要机制,而是robots.txt的补充控制。
<META>标签 - 与Burp
根据webroot中robots.txt文件中列出的Disallow指令,在每个网页中搜索“<META NAME =”ROBOTS“”正则表达式,并将结果与webroot中的robots.txt文件进行比较。
例如,来自facebook.com的robots.txt文件有一个“Disallow:/ac.php”条目[6],结果搜索“<META NAME =”ROBOTS“”如下所示:
以上可能被视为失败,因为“INDEX,FOLLOW”是由“机器人排除协议”指定的默认<META>标签,但“disallow:/ac.php”列在robots.txt中。