从0开始学web之信息收集
字数 3247 2025-08-15 21:33:24
Web安全入门:信息收集技术详解
1. 源代码查看技术
1.1 基础源代码查看
- 右键查看:最简单直接的方法,右键选择"查看页面源代码"
- 快捷键:Windows/Linux使用
Ctrl+U,Mac使用Command+Option+U
1.2 禁用右键时的应对方法
- URL前缀法:在URL前添加
view-source:(如:view-source:http://example.com) - 开发者工具:使用
F12或Ctrl+Shift+I打开开发者工具查看 - 浏览器菜单:通过浏览器菜单栏中的"开发者工具"选项进入
2. HTTP响应头信息收集
2.1 查看HTTP头的方法
- 浏览器开发者工具:Network标签页查看请求和响应
- Burp Suite:拦截请求查看完整HTTP头
- cURL命令:
curl -I http://example.com只获取头信息
2.2 关键信息点
- Server头:服务器类型和版本
- X-Powered-By:后端技术栈信息
- Set-Cookie:会话管理机制
- 自定义头:可能包含敏感信息
3. robots.txt协议分析
3.1 robots.txt基础
- 位置:必须放在网站根目录下(如:
http://example.com/robots.txt) - 语法:
User-agent: * Disallow: /private/ Allow: /public/
3.2 安全意义
- 可能暴露后台路径(
/admin/)、敏感目录或文件 - 即使被Disallow的路径也可能被直接访问
- 不是安全机制,只是指导搜索引擎的协议
4. 备份文件泄露
4.1 常见备份文件类型
- 源码备份:
.zip、.tar、.gz、.rar - 版本控制:
.git/、.svn/、.hg/ - 编辑器缓存:
.swp、.swo、.swn(vim)、.bak、.tmp
4.2 扫描方法
- 字典爆破:使用工具如DirBuster、dirmap、dirsearch
- 常见命名:
www.zip、website.tar.gzindex.php.bak、config.php.bak.git/、.svn/、.DS_Store
5. 版本控制泄露
5.1 Git泄露
- 信息:
.git/config、.git/HEAD、.git/index - 利用工具:
git-dumper、GitHack - 恢复代码:
git clone http://example.com/.git/
5.2 SVN泄露
- 信息:
.svn/entries、.svn/wc.db - 利用工具:
svn-extractor、dvcs-ripper
6. 编辑器缓存泄露
6.1 Vim缓存文件
- 命名规则:
- 第一次:
.filename.swp - 第二次:
.filename.swo - 第三次:
.filename.swn
- 第一次:
- 恢复方法:
vim -r filename.swp
6.2 其他编辑器
- Emacs:
filename~、#filename# - Nano:
filename.save
7. Cookie信息收集
7.1 Cookie分析
- 查看方法:开发者工具→Application→Cookies
- 安全问题:
- 敏感信息明文存储
- 过长的生存周期
- HttpOnly和Secure标志缺失
7.2 实战技巧
- 修改Cookie尝试提升权限
- 解码Base64或URL编码的Cookie值
- 检查Cookie中的用户标识是否可预测
8. DNS信息收集
8.1 DNS记录类型
- A记录:域名到IP的映射
- CNAME:域名别名
- MX记录:邮件服务器
- TXT记录:任意文本信息(常含验证信息)
8.2 查询工具
- 命令行:
nslookup、dig - 在线工具:
9. 管理员凭证猜测
9.1 常见凭证来源
- robots.txt:暴露后台路径
- 页面注释:HTML源码中的注释
- 公开信息:页脚、关于我们、文档中的信息
- 密码重置:安全问题答案可能在公开信息中
9.2 实战技巧
- 尝试
admin/admin、admin/password等弱口令 - 收集邮箱推测用户名(如
admin@example.com→用户名可能是admin) - 通过WHOIS信息获取管理员邮箱
10. 编辑器漏洞利用
10.1 常见编辑器漏洞
- FCKeditor:旧版本存在目录遍历
- KindEditor:文件上传漏洞
- UEditor:SSRF漏洞
- CKEditor:特定版本XSS漏洞
10.2 利用方法
- 访问
/editor/目录 - 尝试文件上传功能
- 检查是否有"文件管理"或"图片管理"功能
11. PHP探针利用
11.1 常见探针文件
tz.php、phpinfo.php、test.phpl.php、i.php、info.phpx.php、1.php、php.php
11.2 获取的信息
- PHP配置信息(
phpinfo()) - 服务器环境变量
- 已加载的PHP模块
- 文件系统路径
12. 真实IP获取技术
12.1 绕过CDN的方法
- 历史DNS记录:查看域名解析历史
- 子域名查询:很多网站只对主站使用CDN
- 邮件服务器:查看邮件头中的服务器IP
- SSL证书:通过证书关联IP
12.2 实用工具
- ping检测:
ping example.com - 全国Ping:站长之家超级Ping
- SecurityTrails:查看历史DNS记录
13. 前端游戏逆向
13.1 常见破解方法
- 修改分数:直接修改JavaScript变量
- 跳过验证:修改条件判断逻辑
- 模拟请求:分析提交接口直接发送请求
13.2 具体步骤
- 打开开发者工具→Sources
- 查找游戏主逻辑JS文件
- 搜索关键词如"score"、"win"、"flag"
- 修改判断条件或直接调用胜利函数
14. POST参数分析
14.1 前端密码安全问题
- 硬编码凭证:密钥直接写在JS中
- 弱哈希算法:使用可破解的哈希值
- 可预测参数:如
admin:admin这样的默认凭证
14.2 测试方法
- 使用Burp Suite拦截修改请求
- 使用curl发送自定义POST请求:
curl -X POST -d "username=admin&password=123456" http://example.com/login - 使用Python requests库构造请求
15. 数据库文件泄露
15.1 MDB文件利用
- Access数据库:
.mdb文件包含完整数据库 - 查看工具:
- Microsoft Access
- EasyAccess
- MDB Viewer Plus
- 文本编辑器直接查看(部分内容可读)
15.2 安全建议
- 禁止直接访问数据库文件
- 数据库文件不要放在web目录
- 使用现代数据库系统如MySQL、PostgreSQL
16. 综合信息收集流程
-
基础信息:
- 查看源代码和HTTP头
- 检查robots.txt
- 扫描常见备份文件和目录
-
深度信息:
- 检查版本控制痕迹(.git/.svn)
- 查找编辑器缓存和备份文件
- 分析Cookie和本地存储
-
扩展信息:
- DNS记录查询
- 子域名枚举
- 真实IP查找
- 历史记录查询
-
凭证测试:
- 默认凭证尝试
- 密码重置功能利用
- 公开信息关联测试
17. 防御措施
-
文件管理:
- 删除测试文件和备份
- 禁用目录列表
- 限制敏感文件访问
-
信息控制:
- 最小化HTTP头信息
- 正确配置robots.txt
- 禁用不必要的HTTP方法
-
开发规范:
- 代码中不包含敏感信息
- 使用版本控制忽略文件
- 生产环境禁用调试功能
-
监控审计:
- 日志记录异常访问
- 定期安全扫描
- 监控公开信息泄露
通过系统化的信息收集,可以全面了解目标系统的结构和潜在弱点,为后续的安全测试奠定基础。同时,作为防御方,了解这些技术有助于更好地保护自己的系统。