WEBshell与文件上传漏洞

  • A+
所属分类:安全文章

文章来源:疯猫网络

这里用dvwa来最简单的讲解下,大佬轻喷~


说在前面


这里先来简单介绍下文件上传这个漏洞吧

漏洞简述:


文件上传漏洞通常由于代码中对文件上传功能所上传的文件过滤不严或web服务器相关解析漏洞未修复而造成的,如果文件上传功能代码没有严格限制和验证用户上传的文件后缀、类型等 攻击者可通过文件上传点上传任意文件 包括网站后门文件(webshell)控制整个网站。


那这里先写个php的最简单的一句话木马吧


WEBshell与文件上传漏洞


然后开始正题


一、无任何防护规则的文件上传漏洞利用

去dvwa的File Upload里尝试上传


WEBshell与文件上传漏洞


呜呼,居然直接就上传成功了,还给出了上传路径,真贴心~


WEBshell与文件上传漏洞


然后这里用上我们的蚁剑来尝试连接一波。点击“测试连接”,返回连接成功


WEBshell与文件上传漏洞


是不是想说一句:"就这?",别急,我们慢慢往下看~


二、前端JavaScript校验的文件上传漏洞利用


紧接着带上我们的马儿来到File Upload1尝试上传


可是点击Upload后居然弹出这个框框


WEBshell与文件上传漏洞


因为是弹框,所以这里就是前端JavaScript校验文件了。

首先先修改马儿的后缀,修改成框框中的任意一个都行,以此来绕过前端JavaScript的校验。


WEBshell与文件上传漏洞


然后我们就打开burp,通过burp拦截包来修改jpg后缀为php


WEBshell与文件上传漏洞


最后便上传成功了


WEBshell与文件上传漏洞


这里用上蚁剑点击“测试连接”,返回连接成功


WEBshell与文件上传漏洞


三、检测文件MIME类型的文件上传传漏洞利用


来到File Upload2


这里用File Upload1的玩法也能上传成功


WEBshell与文件上传漏洞


这里为了和File Upload1做区分,这里换一种玩法


将后缀名修改回来,为x.php,直接上传会有次报错


WEBshell与文件上传漏洞


那就用burp再来拦截,看到这里的Content-Type是“application/octet-stream”


WEBshell与文件上传漏洞


将其修改为“image/jpeg”或者“image/png”,而不修改后缀为jpg,后缀依然是php,结果依然上传成功


我们这里就通过修改MIME类型欺骗服务器这个文件是jpeg类型或者png类型,因此绕过成功


image/jpeg:


WEBshell与文件上传漏洞


WEBshell与文件上传漏洞


image/png:


WEBshell与文件上传漏洞


WEBshell与文件上传漏洞


这里用上蚁剑点击“测试连接”,返回连接成功


WEBshell与文件上传漏洞


四、服务端黑名单检测文件扩展名的文件上传漏洞利用


这里最后来到File Upload3


尝试直接上传马儿,报如下错


WEBshell与文件上传漏洞


尝试使用上面几种绕过方式也不可行


查看源码,可知这里用了黑名单,而且用的foreach来迭代判断是否有命中


WEBshell与文件上传漏洞


但是这里我是在Windows系统搭建的服务器,所以我们可以用大写PHP后缀绕过


WEBshell与文件上传漏洞


或者大小写混合后缀绕过。如这里后缀为PhP也能成功


WEBshell与文件上传漏洞


可见这里已经上传成功,但是是大写的。但是因为这里的服务器是搭建在Windows系统上的,不区分大小写。如果是搭建在Linux上,就另当别论了。


WEBshell与文件上传漏洞


这里用上蚁剑点击“测试连接”,返回连接成功


WEBshell与文件上传漏洞

这里随意大小写都可以连接的上的,比如我这里用后缀为Php。因为这是Windows系统,所以也能证实上面的结论。


WEBshell与文件上传漏洞


最后成功进入靶机的文件管理  


WEBshell与文件上传漏洞


WEBshell与文件上传漏洞


一如既往的学习,一如既往的整理,一如即往的分享。感谢支持WEBshell与文件上传漏洞

“如侵权请私聊公众号删文”



扫描关注LemonSec

WEBshell与文件上传漏洞

觉得不错点个“赞”、“在看”哦WEBshell与文件上传漏洞

本文始发于微信公众号(LemonSec):WEBshell与文件上传漏洞

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: