查看网页原始HTML源码最稳方式是Ctrl+U(Win/Linux)或Cmd+Opt+U(macOS),它绕过前端禁用直接获取服务器响应体,比F12的实时DOM更可靠,且能发现隐藏在注释中的敏感信息。

直接用浏览器快捷键看源码,别信“禁用F12”的假象
只要服务器返回了HTML,就一定能拿到源码。所谓禁用右键、屏蔽F12、拦截document.oncontextmenu,全是障眼法。真正有效的查看方式只有三个:Ctrl+U(最稳)、地址栏加view-source:前缀、或者用Burp Suite抓响应体——后两者还能绕过前端JS做的伪禁用。
常见错误是只扫渲染后的DOM,漏掉原始响应里的注释。比如页面上啥也没显示,但Ctrl+U一开,<!-- DEBUG: db_host=10.10.1.5, user=admin, pass=dev123 -->就躺在第2行。
用正则批量扫注释和敏感词,别手动翻页
人工扫百页HTML不现实。真正高效的扫描分两步走:
- 先提取所有HTML响应(可用
curl -s URL或Burp的HTTP history导出) - 再用
grep -iE "(<!--.*?(password|key|secret|token|debug|test|TODO|FIXME|credentials|sql|host=|port=).*?-->|<meta>]*?name=[\"']?(author|generator|description)[\"']?[^>]*?>)"一次性命中高危模式
注意:有些注释会跨多行,grep -z或换用awk/ripgrep更可靠;robots.txt和.git/config这类文件也常藏注释式线索,别只盯.html。
立即学习“前端免费学习笔记(深入)”;
检查JS文件里的硬编码凭证,尤其带.map后缀的源码映射
前端JS里写const API_KEY = "sk_live_..."比HTML注释更危险——它会被执行,且常被忽略。重点扫三类目标:
- 所有
<script src="..."></script>引用的外部JS文件 - 页面内联
<script></script>块(尤其是含fetch/axios调用的) - 同目录下是否存在
app.min.js.map或bundle.js.map——这类文件一旦存在,就能还原原始未压缩代码,连调试用的console.log("db_pass:", DB_PASS)都逃不掉
用wget -r -l1 -A.js,.map https://target.com/static/递归下载后,再跑一遍敏感词正则,比肉眼快十倍。
别忽略HTTP响应头和<meta>标签泄露的元数据
很多信息泄露不在注释里,而在Content-Type、X-Powered-By或<meta name="author" content="dev@company.com">这种地方。这些看似无害的字段,组合起来能拼出技术栈、责任人邮箱、甚至内部域名结构。
实际操作中建议:
- Burp Proxy里打开
Response标签页,Ctrl+F搜meta、X-、Server:、Powered - 重点关注
<meta http-equiv="refresh">——有人用它做跳转测试,参数里可能带<code>?debug=1&env=staging - 如果发现
X-Debug-Token或X-Application-Context,基本等于把后端Spring Boot或Laravel的调试入口直接送你手上
真正的难点从来不是找不到注释,而是从一堆看似冗余的元数据里识别出哪条能串成攻击链——比如author邮箱 + generator为WordPress 6.2 + TODO注释里提过“等插件更新完就删测试API”,这三点凑一起,基本可以确定目标还在用已知RCE漏洞的旧版插件。



















