xkjcf漏洞系列----robots.txt泄露了天机

来源:互联网 发布:日本女孩知乎 编辑:程序博客网 时间:2024/04/30 12:00

在系统漏洞扫描时遇到了这样一个提示:

The remote host contains a file named 'robots.txt' that is intended to prevent web 'robots' from visiting certain directories in a web site for maintenance or indexing purposes. A malicious user may also be able to use the contents of this file to learn of sensitive documents or directories on the affected site and either retrieve them directly or target them for other attacks.

意义如下:

远端主机上包含着名为robots.txt的文件,该文件是设置搜索引擎是否有权限扫描该站点,但是通过这个文件可以获得该站点的一些目录信息。

详解:

robots.txt是个纯文本文件,通过在这个文件中声明该网站中不想被robots访问的部分,这样,该网站的部分或全部内容就能不被搜索引擎收录了,或指定搜索引擎只收录指定的内容。
当一个搜索机器人访问一个站点时,他会首先检查该站点根目录下是否存在robots.txt,如果找到,搜索机器人就会按照该文件中的内容来确定访问的范围,如果该文件不存在,那么搜索机器人就沿着链接抓取。
robots.txt必须放置在一个站点的根目录下,而且文件名必须全部小写。

比如:禁止所有搜索引擎访问网站的几个部分(下例中的cgi-bintmpprivate目录)

User-agent: *Disallow: /cgi-bin/Disallow: /tmp/Disallow: /private/

有以上内容可以知道,用户可以通过访问该文件来探知给站点的文件目录情况,这是很危险的,所以采用Robots META标签更加安全些。

Robots.txt 文件主要是限制整个站点或目录的搜索引擎访问情况,而Robots META标签则主要是针对一个个具体的页面。Robots META标签放在页面的<head></head>中,专门用来告诉搜索引擎ROBOTS怎么抓取该页的内容。如:

<head><meta name="Robots" content="index,follow"></head>


Robots META
标签的大概用法:
Robots META标签中没有大小写之分,name=”Robots”表示所有的搜索引擎,能针对某个具体搜索引擎写为name=”BaiduSpider” content部分有四个指令选项:indexnoindexfollownofollow,指令间以“,”分隔。
INDEX 指令告诉搜索机器人抓取该页面;
FOLLOW 指令表示搜索机器人能沿着该页面上的链接继续抓取下去;
Robots Meta标签的缺省值是INDEXFOLLOW,只有inktomi除外,对于他,缺省值是INDEX,NOFOLLOW
这样,一共有四种组合:

<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW"><META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW"><META NAME="ROBOTS" CONTENT="INDEX,NOFOLLOW"><META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">

其中

<META NAME="ROBOTS" CONTENT="INDEX,FOLLOW">能写成<META NAME="ROBOTS" CONTENT="ALL">;<META NAME="ROBOTS" CONTENT="NOINDEX,NOFOLLOW">能写成<META NAME="ROBOTS" CONTENT="NONE">

需要注意的是:上述的robots.txtRobots META标签限制搜索引擎机器人(ROBOTS)抓取站点内容的办法只是一种规则,需要搜索引擎机器人的配合才行,并不是每个ROBOTS都遵守的。
目前看来,绝大多数的搜索引擎机器人都遵守robots.txt的规则,而对于Robots META标签,目前支持的并不多,不过正在逐渐增加,如著名搜索引擎GOOGLE就完全支持,而且GOOGLE还增加了一个指令“archive”,能限制GOOGLE是否保留网页快照。例如:

<META NAME="googlebot" CONTENT="index,follow,noarchive">

表示抓取该站点中页面并沿着页面中链接抓取,不过不在GOOLGE上保留该页面的网页快照。