文件上传绕过

1.只是js对文件上传做了限制
①、删除/禁用JavaScript代码。
②、先上传符合规则的文件,通过burp suite抓包修文件后缀名。
2.尝试文件后缀绕过攻击
APache是从右到左开始解析文件后缀的,如果最右侧的扩展名不可识别,就继续往左判断,直到遇到可以解析的文件后缀为止
eg:上传的文件名类似1.php.xxx,因为后者xxx不可解析,所以向做解析php
3.文件类型绕过攻击
服务端只通过Content-Type来检测文件类型,我们可以上传php文件,用Burp Suite将Content-Type修改为符合条件的文件类型,上传的实际上还是php文件
4.文件截断绕过攻击
%00代表结束符,会将%00后面的所有字符删除
eg:上传1.php%00.jpg的文件,%00会将.jpg截断,所以实际上传的1.php的webShell
条件:php版本小于5.3.4,php的magic_quotes_gpc为off状态
5.竞争条件攻击
有些网站上传文件的逻辑是先允许上传任意文件,再检查上传的文件是否包含webshell脚本,如果包含则删除文件,
我们可以利用检查文件和删除文件的这个时间差
先上传一个10.php,10.php的内容是生成一个新的webShell脚本shell.php,当10.php上传成功后,客户端立即访问10.php,则会在服务端当前目录自动生成shell.php,这时攻击者就利用时间差完成了webshell的上传。
6.上传图片马,利用解析漏洞或文件包含漏洞来执行图片马
可以利用文件包含漏洞直接包含图片木马,直接包含图片木马?path=pngYjh.png 然后使用蚁剑或者中国菜刀连接
IIS解析漏洞
(1)当建立*.asp、*.asa格式的文件夹时,其目录下的任意文件都将被IIS当作ASP文件来解析。
(2)当文件名为*.sap;1.jpg时,IIS6.0同样会以ASP脚本来执行。
PHP CGI解析漏洞
在PHP的配置文件中有一个关键的选项:cgi_fi:x_pathinfo。这个选项在某些版本中默认是开启的,在开启时,PHP将会向前递归解析,于是就造成了解析漏洞。
如:访问https://www.xxx.com/1.jpg/x.php(x.php为不存在文件),此时1.jpg会被当作PHP脚本来解析。
在搭配Nginx,IIS7.0,IIS7.5等Web容器时都有出现此漏洞。

posted @ 2022-07-09 17:18  lzstar-A2  阅读(181)  评论(0编辑  收藏  举报