文件上传漏洞
文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。这种攻击方式是最为直接和有效的,“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。 文件上传漏洞本身就是一个危害巨大的漏洞,WebShell更是将这种漏洞的利用无限扩大。大多数的上传漏洞被利用后攻击者都会留下WebShell以方便后续进入系统。攻击者在受影响系统放置或者插入WebShell后,可通过该WebShell更轻松,更隐蔽的在服务中为所欲为。
一般找到网站的上传点后,都可以给他传个大马或小马啥的。但多半是有防护措施的。所以,姿势就有了。
0x001针对前端检测绕过
1.一般前端js会对上传的后缀进行判断,这时请求包还未到服务器,仅是前端的客户端进行检验。所以利用burpsuite 直接抓包修改文件的后缀,如:上传一个shell.jpg 然后修改为shell.php。即可绕过
2.既然时js检测,那么直接禁用js即可,使用火狐浏览器的NoScript插件、IE中禁用掉JS等方式实现。
0x002针对后端检测绕过
文件在被上传到服务器后,后端脚本也会对文件类型进行校验,如果上传的文件扩展名不符合黑白名单的限制,则不予上传,否则上传成功。
1.检查HTTP Header中的Content-Type:
HTTP协议规定了上传资源的时候在Header中加上一项文件的MIMETYPE,来识别文件类型,这个动作是由浏览器完成的,服务端可以检查此类型不过这仍然是不安全的,因为HTTP header可以被发出者或者中间人任意的修改,不过加上一层防护也是可以有一定效果的
MIME:多用途互联网邮件扩展类型,浏览器通常使用MIME类型(而不是文件扩展名)来确定如何处理文档,每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。也就是通过MIME可以确认文件的类型。
常见的MIME类型:
普通文本 .txt:text/plain
超文本标记语言文本 .html:text/html
GIF图形 .gif:image/gif
JPEG图形 .jpeg,.jpg:image/jpeg<