在kali系统中挖掘php漏洞时,前期的信息收集工作直接决定了后续挖洞的效率和成功率,recon-ng是一款集成多种信息收集模块的开源框架,能够帮助我们快速获取目标php站点的多维度信息,为漏洞探测提供精准方向。

recon-ng的安装与基础配置
kali系统默认已经预装了recon-ng,我们可以直接通过终端启动工具,启动命令如下:
# 启动recon-ng recon-ng
首次启动后需要先配置工作空间,避免不同项目的信息混淆,操作步骤如下:
# 创建新的工作空间,名称自定义,这里以php_target为例 workspaces create php_target # 切换到创建的工作空间 workspaces select php_target
使用recon-ng收集php目标信息
1. 添加目标域名
首先需要将待测试的php站点域名添加到recon-ng的目标列表中,执行以下命令:
# 添加目标域名,替换为实际要测试的php站点域名 db insert domains # 输入域名后按回车,再按两次回车完成添加
2. 收集子域名信息
很多php站点会将不同功能模块部署在子域名下,收集子域名能扩大测试范围,使用brute_hosts模块进行子域名爆破:
# 加载子域名爆破模块 modules load recon/domains-hosts/brute_hosts # 设置爆破使用的字典,kali自带字典路径如下 options set wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt # 执行模块 run
3. 收集关联邮箱信息
邮箱信息可能包含php站点的管理员账号、开发框架版本等线索,使用hunter模块收集关联邮箱:
# 加载邮箱收集模块 modules load recon/domains-contacts/hunter # 执行模块 run
4. 导出收集到的信息
收集完成后可以将信息导出到本地,方便后续分析:
# 导出所有收集到的域名信息到csv文件 reporting csv options set filename php_target_info.csv run
结合收集信息挖掘php漏洞
拿到收集到的目标信息后,我们可以针对性开展php常见漏洞的探测:
- 针对收集到的子域名,使用目录扫描工具扫描php后台路径、敏感文件,比如
admin.php、config.php等 - 检查php站点是否存在SQL注入漏洞,对带有参数的php页面进行注入测试,比如
news.php?id=1这类页面 - 测试php站点是否存在文件上传漏洞,寻找上传接口尝试上传php木马文件
- 检查php版本是否存在已知漏洞,比如低版本php的远程代码执行漏洞
php SQL注入漏洞测试示例
假设收集到的目标页面为http://test.ipipp.com/news.php?id=1,可以使用sqlmap进行注入测试:
# 测试目标页面是否存在注入 sqlmap -u "http://test.ipipp.com/news.php?id=1" --batch # 获取数据库名称 sqlmap -u "http://test.ipipp.com/news.php?id=1" --dbs --batch
php文件上传漏洞测试示例
如果找到上传接口,可以尝试上传简单的php探针文件验证漏洞,代码如下:
<?php phpinfo(); ?>
将文件保存为test.php,上传后访问文件路径,如果能看到php配置信息,说明文件上传漏洞存在。
注意事项
所有漏洞挖掘操作必须在获得授权的前提下进行,禁止对未授权的php站点开展测试。使用recon-ng收集信息时,不要频繁发送请求,避免触发目标站点的防护机制。测试过程中做好记录,方便后续整理漏洞报告。