跳到主要内容

robots.txt 与静态资源线索分析

robots.txt 不是访问控制,只是给爬虫看的约定。靶场和真实测试里,它经常暴露隐藏目录、测试文件、静态资源或命名习惯。JavaScript、CSS、图片、源码注释也常常能把攻击面从“目录枚举”推进到“业务线索识别”。

基础检查

curl -s http://target/robots.txt
curl -s http://target/sitemap.xml
curl -s http://target/.well-known/security.txt

看到 Disallow 不要只记录路径,要反向思考:

线索下一步
Disallow: /*.txt枚举 *.txt、测试说明、备份文件
Disallow: *.js下载 JS,查接口、变量、凭据格式
Disallow: *.css查隐藏图片、data URI、注释
/admin/backup先验证访问,再查认证和备份文件

下载静态资源

wget -r -np -nH --cut-dirs=0 http://target/
find . -type f \( -name '*.js' -o -name '*.css' -o -name '*.txt' \) -print

快速 grep:

rg -n 'admin|password|token|key|secret|debug|backup|api|login|user|pass' .

JavaScript 线索

常见目标:

  • API 路径和隐藏页面。
  • 前端硬编码的用户名、字段名、默认参数。
  • 加密、编码、密码生成逻辑。
  • 混淆变量和运行时动态生成的字符串。

对轻度混淆脚本,可以在末尾追加输出语句:

node script.js

或者把关键变量通过 console.log() / JSON.stringify() 打出来。

CSS 与图片线索

CSS 里值得看:

  • background-image: url(...)
  • data:image/png;base64,...
  • display: none
  • 注释中的旧路径

如果图片来自 data URI,先解码:

python3 - <<'PY'
import base64, re
css = open('style.css', 'r', encoding='utf-8').read()
m = re.search(r'base64,([A-Za-z0-9+/=]+)', css)
open('/tmp/out.png', 'wb').write(base64.b64decode(m.group(1)))
PY

防坑点

  • robots.txt 暴露路径不等于一定可访问,但它能指导后续字典。
  • 静态资源中的“主题词”适合喂给 CeWL 或自定义词表继续枚举。
  • 不要只看压缩后的前端包,源码映射 *.map 有时会泄露更完整代码。

来源案例

  • GameShell5robots.txt 把注意力引到 script.jsstyle.css,最终恢复 LessPass 参数。
  • The Planets: Earth:测试站 robots.txt 提示 *.txt,继续读到 testingnotes.txt
  • Matrix-Breakout: 2 Morpheusrobots.txt 和页面主题帮助收束 /graffiti.php 枚举方向。