文件上传总结

1,检测javascript类型的绕过(客户端)

-通常post请求发送到web服务器,客户端javascript验证上传

1.php弹窗说上传格式错误,只允许.jpg,.jpeg等格式的文件上传一句话1.php-->1.jpg 然后burp抓包1.jpg-->1.php,这样就绕过了js检测或者F12查看源代码,找到onsubmit=”return checkFile()”,将它删除并编辑保存。这个时候页面就不检测了,直接上传成功,或者修改允许的函数checkfile(),添加我们想上传的文件格式,也是可以上传成功的。

2,检测MIME类型的绕过(服务端)

-服务端MIME类型检测(检测Content-Type内容),burp抓包,修改Content-TypeContent-Type:text/plain -->phpContent-Type:image/jpeg -->image上传1.jpg--->修改image/jpeg为text/plain,成功绕过。常见的MIME类型:超文本标记语言文本 .html text/htmlxml文档 .xml text/xml普通文本 .txt text/plainRTF文本 .rtf application/rtfPDF文档 .pdf application/pdfMicrosoft Word文件 .word application/mswordPNG图像 .png image/pngGIF图形 .gif image/gifJPEG图形 .jpeg,.jpg image/jpegau声音文件 .au audio/basicMIDI音乐文件 mid,.midi audio/midi,audio/x-midiRealAudio音乐文件 .ra, .ram audio/x-pn-realaudioMPEG文件 .mpg,.mpeg video/mpegAVI文件 .avi video/x-msvideoGZIP文件 .gz application/x-gzipTAR文件 .tar application/x-tar任意的二进制数据 application/octet-stream

3,检测目录路径类型的绕过(服务端)-

上传1.jpg,burp进行抓包,Content-Disposition:from-data;name=”path”后面一行upload是我们保存的地址。现在我们将upload改为upload/1.php(空格) ,接着我们来到 Proxy->intercept->Hex找到1.php(空格)这个被修改过的代码,找到同一行的数字20,改为00 ,成功绕过wenshell:file:///C:\Users\ADMINI~1.1LK\AppData\Local\Temp\ksohtml\wpsB3DB.tmp.png

4,检测文件内容的绕过(服务端)

检测内容是否合法或含有恶意代码文件幻数检测jpg-->JFIFgif-->GIF89APNG-->NG文件相关信息检测常用的是getimaegsize()函数检测有文件头,加一些杂乱的东西,迷惑,空的地方添加木马文件加载检测API函数检测的一次渲染可以绕过,二次渲染就没戏绕过。

5,检测黑名单类型的绕过(服务端)

将危险的后缀名写到一个文件里面,禁止指着后缀名的文件执行文件名绕过:大小写组合绕过pHp,PhP,混搭绕过php1,php2,php3,php4,php5列表名绕过:cer,ashx,asa,cer,cdx,htr,绕过(黑名单可能会漏掉的)特殊字符绕过:a.asp改成a.asp_0x00截断绕过:上传1.php.jpg burp抓包改成1.php%00.jpg,或者hex-->20改成00当解析的时候,看到空格,后面的那段就不解析了或者upload/1.asp(空格)/上传,hex修改20-->00绕过上传apache解析绕过:help.asp.134.x2,从前向后尝试解析,直到遇到自己认识的扩展名为止。双扩展名解析绕过:apache的conf配置有AddHandler php5-script.php没有注释掉,则,文件名1.php.jpg就能当作php执行.htaccess文件攻击:自定义.htaccess上传,下面是内容SetHandler application/x-httpd-php同目录下,上传一个aaa文件,没有扩展名,内容是一句话,这个时候就成功绕过。

6,检测白名单类型的绕过(服务端)

-解析漏洞绕过iis6.0解析绕过:目录绕过:IIS6.0目录路径检测解析,文件的名字为“*.asp/xxx.jpg”同样呗解析成aspburp进行抓包,其中Content-Disposition:form-data;name=”path”我们把原本的

upload/ 改为

uploading/1.asp/,filename="yijuhua.asp"修改为filename="yijuhua.asp/1.jpg"。或者创建文件夹a.php里面放一句话图片1.jpg  a.php/1.jpg--->php执行文件绕过:首先我们请求 /aaa.php;xxx.jpg,从头部查找查找 "."号,获得 .php;xxx.jpg查找";",如果有则内容截断,所以/aaa.php;xxx.jpg会当做/aaa.php进行解析,除此之外我们还有下面的构造方式绕过:a.php;.jpg,a.php;jpg-->php执行iis7.0/7.5解析绕过:在默认Fast-CGI开启的情况下上传一个文件1.jpg内容:');?>然后访问1.jpg/.php 这样就会在同级目录下生成木马shell.phpNginx<8.0.3解析绕过:上传1.jpg----burp修改-->1.jpg%00.php空字节绕过上传apache解析绕过:a.php.x1.x2 apache从前向后尝试解析,直到遇到自己认识的扩展名为止。.htaccess文件攻击:自定义.htaccess绕过SetHandler application/x-httpd-php同目录下,上传一个aaa文件,没有扩展名,然后内容是“aaa”+一句话,成功绕过。

7,自动修改后缀的绕过:-上传php,服务端自动修改成了gifburp抓包,1.php-->修改成1.pphphp成功绕过

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直...
    付出从未后悔阅读 1,185评论 0 4
  • (源自摘抄整理)https://www.91ri.org/11494.html Webshell实现与隐藏探究 一...
    JackyTsuuuy阅读 20,947评论 2 13
  • 这段时间在做一个Java Web项目需要用到CKEditor做编辑器,但这个编辑器取值和图片上传不太好弄,特别是图...
    不在简书的Coder阅读 1,978评论 4 4
  • 1.什么是解析漏洞 以其他格式执行出脚本格式的效果。 2.解析漏洞产生的条件 1.命名规则 2.搭建平台 3.常见...
    查无此人asdasd阅读 1,881评论 0 3
  • 不难发现几乎大多数同学总是抱怨:美国的中学生学习多么有趣,他们的教育多么人性、得体,而中国的教育多么死板,学生压力...
    桥边红勺阅读 543评论 1 3