文件上传
文件上传漏洞是能直接拿到shell的,是直接打点拿站的快速途径,是需要重点的一个漏洞,最近遇到一个文件上传的点,结合这个情况,正好总结以下相关于文件上传的常见漏洞知识点。
前端校验:这个可以通过禁用js脚本,或者通过上传正常文件,通过抓包改为木马文件
content-type(image/gif)
文件类型的校验(指校验content-type的值是否为指定白名单中的类型,这里可以通过抓包更改为合法值,也可以通过先上传合法文件通过抓包更改为木马的方式绕过)
后端黑名单:一般黑名单比较少,因为限制比较多,很多情况下容易漏掉特定情况
绕过方式:可以通过大小写后缀名,还可以利用中间件,和服务器解析漏洞:可以解析某些特定的文件后缀
例如:
jsp:jspx,jspf ;
asp:asa,cer,aspx ;
php:php2 php3 php4 ;
exe:exee。
asp:.ascx .ashx .asa .cer
**后端白名单:**一般白名单绕过有一定的难度,这种情况一般需要配合其他漏洞进行绕过,例如图片马配合iis解析漏洞,文件包含漏洞,以及某些配置文件解析,例如:.htaccess,user.ini等文件。
图片马制作方法例如fujieace.gif为普通文件,phpinfo.php为木马文件,通过cmd命令 copy可以制作图片马 111.gif为生成文件的名字
(ps:合法文件与木马文件须在同一文件夹下)
copy fujieace.gif /b + phpinfo.php /a 111.gif
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200813223700181.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNDYxMzEy,size_16,color_FFFFFF,t_70#pic_center)还有00截断,操作系统文件特性等局限性比较大,而且使用条件比较苛刻,在这里就不一一列举了。
**文件上传修复方式**
1. 对上传文件格式进行严格校验及安全扫描,防止上传恶意脚本文件
2. 设置权限限制,禁止上传目录的执行权限
3. 严格限制可上传的文件类型
4. 严格限制可上传的文件路径
5. 文件扩展名服务端白名单校验
6. 文件内容服务端校验
7. 上传文件重命名
8. 隐藏上传文件路径