genesisQL 1.1.1 在 checkPassword 函数中存在 SQL 注入漏洞。用户提供的 username 和 password 字段被直接拼接进 SQL 查询字符串,未进行参数化处理,从而允许未经身份验证的攻击者通过登录表单执行 SQL 注入并绕过身份验证。
CWE-89:SQL 命令中使用的特殊元素的不当中和
文件:server/utils/userController.js
```javascript
function checkPassword (req, res, next){
const { username, password } = req.body;
const text = SELECT * FROM users WHERE username='${username}' AND password='${password}';
}
```
通过登录表单中的 SQL 注入绕过身份验证(远程、无需身份验证)。
使用参数化查询 / 预编译语句,而不是字符串拼接。