一、突破MIME验证
原理:Mime是通过判断你的文件类型(不是后缀名)来决定是否允许你上传文件,只需抓包修改content_type,就可以绕过MIME验证了。
MIME代码:添加一个判断上传文件类型的代码
添加一个判断上传文件类型的代码
例子演示:上传一个脚本类型文件,看看提示是不是文件类型错误(也有可能写提示文件类型错误的代码)
抓包修改文件类型
这里是文件类型的参考
二、JS本地验证
原理:在文件上传的源码上写入了js代码来验证文件的类型,但是这是写在客户端上的,也就是通过我们客户端去验证的,客户端属于我们本地的,所以可以将网页源码复制在自己本地创建的html文件上,然后将js本地验证代码去掉,在把from标签里的action指向网页上传的url。(通过判断网页源代码或者上传返回时间来判断是不是本地验证,如果返回时间过长,那么就是服务器验证)
演示代码:
演示操作:
将网页源码复制到本地html并去掉js验证,然后指明action方向。
三、截断上传
原理:利用%00来截断后缀,url编码后才是%00,所以在截包修改文件名时要注意对截断符号的url解码。Js本地验证也是可以过掉的。
演示操作:
截包将上传的文件名修改一下,加个截断符号
将php文件修改成jpg或者gif,然后在抓包时候利用截断符号修改文件名来达到上传php文件。
四、.htaccess文件上传漏洞
介绍:.htaccess文件是apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以实现:网页301重定向、自定义404页面、改变文件扩展名、允许/阻止特定的用户访问目录等等。
.htaccess文件的代码:
调用php的解析器解析一个文件名只需包含“cimer”这个字符串的任意文件,当这个含有“cimer”的文件的内容是一句话木马代码时,就可以利用中国菜刀连接
<FilesMatch "cimer">
Sethandler application/x-httpd-php
</FileMatch>
上传的jpg均已php执行,将.htaccess文件上传后,再上传一句话木马的jpg格式,文件名包含cimer字符串
<FilesMatch "cimer">
AddType application/x-http-php .jpg
</FileMatch>
欢迎大家加入渗透学习交流群:1084999372
欢迎大家加入渗透学习交流群:1084999372