文件上传漏洞原理
由于开发人员对用户上传文件的部分处理的不够严谨,从而导致用户可以上传恶意文件,并执行这种恶意文件,从而获取执行服务器的权限。
漏洞的危害
- 获取服务器webshell权限
- 任意查看、修改、删除、下载对方文件
- 查看数据库信息
- 执行命令
- 挂黑页、木马等
漏洞发现
- 上传头像的位置
- 敏感身份认证的位置(身份证等各种证件的照片上传处)
- 订单反馈的位置(上传照片)
- 各种能上场文件的地方
注意事项
- 可解析php的后缀:php,php2,php3,php4,php5,phtml等
- 绕过方式有大小写,或者大小写混合
- 利用中间件,比如iis就可以把flag.asp;.jpg当asp来解析
- 系统特性,特别是windows的后缀加点,加空格,加::$DATA绕过
- 语言漏洞,可以用%00截断
- 代码逻辑,双后缀
上传绕过
1.js检查
前端检查后缀名,指定jpg
将一句话木马的后缀改为jpg,然后上传,用burp suite抓包后,将上传的文件后缀改为php就可以直接上传成功
2.后缀黑名单检查
- 服务端禁止上传一些黑名单后缀,可以修改一些不常用的但能解析的后缀,大致有如下: