服务器传送文件有痕迹吗,文件上传漏洞记录

1.前端JS绕过上传

这类上传检测都会在前端进行校验,如果禁用js或修改js代或使用burp抓包修改即可绕过

2.MIME类型检测绕过

服务端MIME类型检测是通过检查http包的Content-Type字段中的值来判断上传文件是否合法的。这种检测也可以通过burp修改上传

494386278ea202715d36f82ae6ae27ea.png

修改为

56ce895968bd21d57b676adc0f4e3bf8.png

3.上传其他后缀名的文件

php语言除了可以解析以php为后缀的文件,还可以解析php2、php3、php4、php5这些后缀的文件。

4.重写文件解析规则绕过。

上传先上传一个名为.htaccess文件,内容如下:

SetHandler application/x-httpd-php

再上传一个一句话的jian.jpg,直接链接这个jian.jpg即可。因为这个文件已经被按照php进行解析

65c851c0b1ac920a305e4cee1e55004a.png

5.后缀名的大小写绕过

这类绕过是在于开发者队后缀名过滤不严,上传后缀名例如.Php或.pHp等来绕过

6.Apache文件解析漏洞

apache对文件的的解析是从后向前的,如果遇见不认识的后缀名就会跳过向前一个查看是否能够解析。

例如可以上传shell.php.xxx,可以绕过后缀名检测。

f03f5b71d78974297c9f06b787571ec9.png

如果在 Apache 的 conf 里有这样一行配置 AddHandler php5-script .php 这时只要文件名里包含.php 即使文件名是 shell.php.jpg 也会以 php 来执行。

解决方法:

可以使用伪静态将.php.*都重定向到.php

7.iis6.0目录解析漏洞

以*.asp命名的文件夹里的文件都将会被当成ASP文件执行。

如果可以在上传的时候修改上传的路径,可以将文件上传到/1.asp/shell.jpg,所有1.asp文件夹下的文件都将会被解析为asp

8.iis6.0文件解析漏洞

服务器默认不解析;号后面的内容,因此xx.asp;.jpg便被解析成asp文件了。

所以可以构造为 shell.asp;.jpg

9.Nginx解析漏洞

首先上传一个图片马,例如上传一个 shell.jpg,然后访问 127.0.0.1/uploads/shell.jpg/shell.php就会被成功解析。

9fcf08b0ca0d8635b602de9073cc8d26.png

ddc742b0785d542c73a99a5424d7effb.png

因为Nginx拿到URL shell.jpg/shell.php后,一看后缀是.php,便认为该文件是php文件,转交给php去处理。php一看L shell.jpg/shell.php不存在,便删去最后的/shell.php,又看/shell.jpg存在,便把/shell.jpg当成要执行的文件了。

新版本的php引入了“security.limit_extensions”,限制了可执行文件的后缀,默认只允许执行.php文件

10.Nginx 文件名逻辑漏洞(CVE-2013-4547)

我们上传一个 shell.jpg的图片马,然后用burp抓包修改文件名为 shell.jpg .php,然后将20 20改为20 00

61dd54bed473b4539fe8811e665b44e5.png

我们请求 shell.jpg[0x20][0x00].php ,这个URI可以匹配上正则 \.php$,

可以进入这个Location块;但进入后,由于fastcgi在查找文件时被\0截断,Nginx却错误地认为

请求的文件是shell.jpg[0x20],就设置其为SCRIPT_FILENAME的值发送给fastcgi。

fastcgi根据SCRIPT_FILENAME的值进行解析,最后造成了解析漏洞。

所以,我们只需要上传一个空格结尾的文件,即可使PHP解析之。

11.使用 ::$DATA 加在后缀之后进行绕过(Windows特性)

例如上传抓包并修改文件名为 shell.php::$DATA。

上传到服务器的文件在Windows中会自动去掉::$DATA

因为php在window的时候如果文件名+::$DATA会把::\$DATA之后的数据当成文件流处理,不会检测后缀名.且保持"::$DATA"之前的文件名

12.%00截断上传路径

9db97fa737212981614b54f795543dfe.png

然后直接访问 /upload/1.php即可

因为在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束,后面的东西都没截断

13.上传图片马,解释文件包含使用

将一句话插入到图片中上传 然后识别其他页面的文件包含执行这个马

14.利用长标记写法

有时候waf或在做ctf的时候会过滤上传文件的php头,所以可以使用长标记写法绕过

例如:

15.Apache HTTPD 换行解析漏洞(CVE-2017-15715)

其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。

41cc2a27a152763a692a2d1d9dfd077a.png

访问刚才上传的/1.php%0a,发现能够成功解析,但这个文件不是php后缀,说明目标存在解析漏洞:

16.Apache SSI 远程命令执行漏洞

如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,并利用上传

这样一个shell.shtml执行任意命令。

暂时想到这么多 后期还会继续更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值