任意文件下载漏洞(高危)
当网站存在文件下载功能时,网站对该功能不加以限制过滤,则恶意用户能够任意访问下载敏感文件,属于失效的访问控制。可结合目录穿越漏洞使用。常出现于文件下载处、URL链接处。
利用方式
下载常规配置文件;
下载.log文件;
下载web业务文件;
修复方式
过滤特殊字符‘.’,限制用户回溯上级文件,禁止目录穿越;
正则判断用户输入参数;
php.ini配置open_basedir限制文件访问范围;
任意文件上传漏洞(高危)
网站存在上传文件功能,当防护手段缺失或薄弱,恶意用户可以通过上传恶意代码(webshell基于http协议访问)进行恶意操作。
常见防御手段
客户端防御:
js代码过滤
服务端防御:
后缀过滤:黑名单过滤(禁止名单内容访问)
白名单过滤(只允许名单内容访问)
内容过滤:文件头、二次渲染、getimagesize()、exif_imagetype()
其他过滤:条件竞争
绕过方式
针对前端代码防御,可采取浏览器控制台删除操作、抓包修改数据进行绕过;
针对内容过滤,MIME类型检查时,通过抓包,判断过滤方式,修改数据包,进行重发;代码注入绕过时,伪造请求头、CMD直接插入恶意代码(cmd copy /b a.png+b.php muma.png)、使用图片马工具合成。