sitemap2proxy:将网站地图转换为代理请求的Ruby工具

sitemap2proxy是一个Ruby脚本工具,它能解析网站的sitemap.xml文件,提取所有URL并通过指定代理(如Burp、ZAP)发起请求,帮助安全测试人员快速发现网站公开页面。

sitemap2proxy

当进行Web应用测试时,通常需要爬取目标网站。但如果网站能主动告诉你大部分内容呢?许多网站通过sitemap.xml文件向搜索引擎蜘蛛(如Google)公开其内容。

该脚本解析该文件提取所有URL,并通过你选择的代理(Burp、ZAP等)发起请求。虽然无法发现文件中未提及的内容或进行暴力破解,但能快速识别网站管理员希望公开的所有页面。

Tim Tomes开发的pagefinder是该脚本的良好补充,可检查多个站点以寻找sitemap和/或robots.txt文件。

安装

sitemap2proxy是简单的Ruby脚本,无需安装额外gem。只需赋予可执行权限即可。

使用

用法非常简单,可指定已下载的sitemap或直接指向网站上的文件。支持原始XML(sitemap.xml)和gzip压缩文件(sitemap.xml.gz)。另一个必要参数是代理URL。

默认使用Googlebot用户代理字符串以隐藏日志中的流量,可通过ua参数自定义。

示例

获取Google的sitemap.xml并通过本地8080端口代理:

1
./sitemap2proxy.rb --url http://www.google.com/sitemap.xml --proxy http://localhost:8080

相同操作但伪装为Yahoo Bot:

1
2
3
./sitemap2proxy.rb --url http://www.google.com/sitemap.xml \
    --proxy http://localhost:8080 \
    --ua "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"

解析已下载文件并通过其他机器上的代理:

1
./sitemap2proxy.rb --file sitemap.xml.gz --proxy http://proxyserver.int:8080

带详细输出:

1
./sitemap2proxy.rb -v --file sitemap.xml.gz --proxy http://proxyserver.int:8080

查看帮助:

1
./sitemap2proxy.rb --help

有趣发现

测试中发现google.com的robots.txt文件指定了多个附加sitemap。检查robots.txt文件总能发现有趣内容,这个发现使其更有价值。

下载

更新日志

  • 版本1.1 - 添加响应代码统计
  • 版本1 - 初始发布
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计