一、JS检测绕过攻击
上传的文件后缀是非法的,会进行弹框告知,这种检测只是在浏览器使用JS对数据包进行检测
方法①利用浏览器插件,把检测后缀的JS代码删除,然后上传文件
方法②在上传时把文件后缀改成合法的jpg等,绕过JS检测后,再抓包改回原后缀即可
二、文件后缀绕过攻击
在Apache的解析顺序中,是从右到左开始解析文件后缀的,如果最右侧扩展名不可识别,就继续往左判断,所以可以构造类似1.php.xxx的文件名,xxx不可识别所以会往左解析后缀php
三、文件类型绕过攻击
如果服务端代码是通过数据包中的content-type的值来判断文件类型,那么就可以通过抓包修改conten-type来绕过服务器的检测
php中还存在类似的文件上传漏洞,函数getimagesize()可以获取图片的宽和高,如果上传的文件不是图片就不允许上传。
但是我们可以将一个图片和webshell合并为一个文件cat image.jpg webshell.php > image.php,这样既可以绕过函数上传的限制,又可以被Apache解析成脚本文件
四、文件截断攻击
截断类型:PHP%00截断
截断原理:00是结束符,所以把00后的字符删除掉
截断条件:PHP版本小于5.3.4,PHP的magic_quotes_gpc为OFF状态
所以可以构造类似1.php%00121234.jpg来上传webshell
五、竞争条件攻击
有些网站上传文件是先上传文件,然后再检测该文件是否包含webshell脚本,这中间的时间差是可以利用起来的,上传一个webshell脚本,脚本内容是创建一个新的webshell脚本
文件上传类修复建议
①通过白名单的方式判断文件后缀是否合法
②对上传后的文件进行重命名
版权声明:本文为m0_60200366原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。