一款自动检测网站是否存在robots.txt的浏览器扩展

首发于若水斋。

在学习PWK课程时有次遇到一个Web服务,访问根路径返回404,于是就用dirb扫描。由于网速不太好,扫描了很久才发现存在robots.txt,以此为突破口成功地拿到了Webshell。当时就尝试找一款能自动检测网站是否存在robots.txt的浏览器扩展,但并没有找到,于是萌生了自己写一个的念头。现在我学完了PWK,顺利拿到了OSCP认证,便花了些时间实现了自己当时的想法。

安装

这款浏览器扩展兼容Firefox和Google Chrome,但我只将它上传到了Firefox的Add-ons,没有将它上传到Chrome Web Store。原因如下:

  • 这款浏览器扩展仅对渗透测试有用,而Firefox由于其独立于操作系统的证书系统和代理设置,更适合于渗透测试;
  • 想要上传浏览器扩展到Chrome Web Store需要先缴纳5美元,而这款浏览器扩展可能最终只会有一个用户——我自己——在渗透测试时几乎从不使用Google Chrome。

在Firefox中安装

由于我将它上传到了Add-ons,所以在Firefox安装它很简单。打开https://addons.mozilla.org/firefox/addon/robots-txt-detection/,点击添加到 Firefox,完成下载后弹出安装提示时点击添加就可以了。

在Google Chrome中安装

在Google Chrome中安装它其实也挺简单的,对于不能直接访问Chrome Web Store的地区的用户而言就更是小菜一碟了。

首先下载源码:

git clone https://github.com/Werneror/RobotsTxtDetection.git

然后打开Google Chrome,在地址栏中输入Chrome://extensions/进入到扩展管理页面,点击页面右上角的开关打开开发者模式。接着点击页面左上角加载已解压的扩展程序按钮,在弹出的选择器中选中下载的源码目录RobotsTxtDetection即可。

使用

在使用安装了这款扩展的浏览器时,若访问的网站存在robots.txt,地址栏中就会自动出现一个小图标,如下图所示。

将鼠标移动到小图标上,会看到提示文字,如下图所示。

一款自动检测网站是否存在robots.txt的浏览器扩展_第1张图片

单击小图标会弹出一个包含超链接的页面,点击超链接可以直接打开robots.txt页面,如下图所示。

在某些版本的Google Chrome中,小图标不在地址栏中,而是在地址栏右边,或其他位置,取决于用户的定制。访问的网站不存在robots.txt时,小图标也不会消失,而是变成灰色。

配置

这款扩展提供一些简单的配置,如下图所示是配置页面和默认配置。

一款自动检测网站是否存在robots.txt的浏览器扩展_第2张图片

检测路径

默认情况下只检测robots.txt,但也可以配置为检测更多的路径。每行写一个要检测的路径。以/开头的路径会被视为绝对路径,否则为相对路径。举个例子,假设配置为检测以下路径:

/robots.txt
security.txt

正在浏览的URL是https://www.example.com/test/index.html,那么实际上会检测:

https://www.example.com/robots.txt
https://www.example.com/test/security.txt

状态码

默认以404、301和302做为判断路径不存在的状态码,但如果有特殊需求,也可以进行配置。

技术细节

缓存

一般来说网站有哪些路径是十分稳定的,不会在短时间里发生变化,所以采取的缓存策略是尽可能多地缓存。对于一个特定的URL,扩展只会发送一次请求,除非重启浏览器、禁用/启用或卸载/重新安装。

重定向

XMLHttpRequest会自动跟随重定向,所以扩展实际上没有办法获取到301、302这样的状态码(也许有办法只有我没找到?)。判断是否发生重定向的方法是:比较请求的URL和响应的URL是否相同,若不同,则发生了重定向。

源代码

源代码见:https://github.com/Werneror/RobotsTxtDetection。

你可能感兴趣的:(编程,安全)