Results 4 issues of

# sql 注入获取其他账号密码 此处代码对应的路由是 `/api/sys/user/list` - 这段代码查的是带有账号密码字段的数据表,而且存在 sql 注入 - 数据库密码明文存储 那就可以使用布尔盲注挨个匹配出其他账号的密码明文 已知 demo 网站 admin 密码是 123456 此处做一个简单的注入判断 `sys_user.username like '%admin' AND sys_user.passsword like '124%'` 无匹配 ```http POST http://110.41.179.89/api/sys/user/list...

# sql 注入 此处代码对应的路由是 `/api/sys/dict/list` ```http POST http://110.41.179.89/api/sys/dict/list HTTP/1.1 Host: 110.41.179.89 Content-Length: 77 Accept: application/json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTAzMDE0NDIsImlhdCI6MTcxMDIxNTA0MiwidXNlcklkIjoxLCJ1c2VyTmFtZSI6ImFkbWluIn0.2QzsHccYXfGKd-AvfWCAOWW6oyi9R3EB3IWfyXK2A-c User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.5195.102...

# pandax excel 导出任意文件覆盖 或 任意文件下载 这三处路由,之后都会调用 `utils.InterfaceToExcel(*list, fileName)` 然后 `rc.Download(fileName)` 选其中一个来看 代码中没有对传入的 `filename` 做检查,使用 `../` 跨目录指定导出的 excel 文件名及目录位置,可以用来覆盖掉不应该覆盖的文件 而且,如果该目标文件没有写权限的话,之后 `rc.Download(fileName)` 又会将这个文件下载下来,就变成了文件读取了 但是调用的是 `http.ServeFile`,只能用来读取项目目录下的文件,无法读取 `/etc/passwd` 等系统文件 比如这样子去覆盖掉 template 文件 ![](https://pic.l1nyz-tel.cc/202403101132276.png)...