文件上传总结

文章目录

  • 前端绕过
  • 服务器拓展名绕过
    • Apache特殊可解析后缀绕过
    • 利用windows特性
    • %00截断
    • .htaccess
    • .user.ini
  • 服务器解析漏洞
    • apache
    • IIS6.0漏洞
    • Nginx 漏洞
    • Nginx 文件名逻辑漏洞(CVE-2013-4547)
  • 文件上传防御
  • 冰蝎加密原理

前端绕过

服务器拓展名绕过

Apache特殊可解析后缀绕过

文件上传总结_第1张图片

前提是apache的httpd.conf中有如下配置代码

AddType application/x-httpd-php .php .phtml .phps .php5 .pht

用如下后缀绕过:phtml、pht、phtm、php、php3、php4、php5、php7、phar、phps

利用windows特性

以下字符放在结尾时,不符合操作系统的命名规范,在最后生成文件时,字符会被自动去除。
文件上传总结_第2张图片在这里插入图片描述

%00截断

前提条件: PHP版本 < 5.34 、php的magic_quotes_gpc为OFF状态

我的理解是%00截断是chr(0),在c语言中字符串就是以chr(0)作为结尾,所以%00时被认为是结尾,从而截断后面的字符

.htaccess

文件上传总结_第3张图片

.htaccess是Apache的又一特色。一般来说,配置文件的作用范围都是全局的,但Apache提供了一种很方便的、可作用于当前目录及其子目录的配置文件——.htaccess(分布式配置文件)。

.htaccess

<FilesMatch "tianwen.jpg">
SetHandler application/x-httpd-php
</FilesMatch>

然后上传后缀为jpg的一句话木马

.user.ini

文件上传总结_第4张图片

利用.user.ini上传条件需要是使用的是fastcgi

.user.ini轻松让所有php文件都“自动”包含某个文件,而这个文件可以是一个正常php文件,也可以是一个包含一句话的webshell。服务器为nginx时可以尝试该方法。

//.user.ini
auto_prepend_file=1.jpg
auto_append_file=1.jpg

所有文件自动包含1.jpg

服务器解析漏洞

apache

Apache解析文件规则是从右到左。例如shel.php.gix.ccc,apache会先识别ccc,ccc不被识别,则识别gix,以此类推,最后会被识别为php来运行。

IIS6.0漏洞

目录解析 :
目录名为.asp、.asa、.cer,则目录下的所有文件都会被作为ASP
url/test.asp/shell.jpg会被当作asp脚本运行。

文件解析 :
文件名中分号后不被解析,例如asa\cer\cdx
url/test.asp;shell.jpg会被当作asp脚本运行。

文件类型解析 :
IIS6.0 默认的可执行文件除了asp还包含asa\cer\cdx这三种。

Nginx 漏洞

PHP+nginx默认是以cgi的方式去运行,当用户配置不当,会导致任意文件被当作php去解析。
利用条件:

  • 以FastCGl运行
  • cgi.fix_pathinfo=1(全版本PHP默认为开启)

例如如果满足上述条件,当你访问url/shell.jpg/shell.php时,shell.jpg会被当作php去执行。

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

影响版本:Nginx 0.8.41 ~ 1.4.3/1.5.0 ~ 1.5.7
利用过程:
上传一个shell.jpg文件,注意最后为空格
在burp中改为shell.jpg[Ox20][Ox00].php(Hex界面)

文件上传防御

  • 服务端文件扩展名使用白名单检测+文件名重命名
  • 对文件内容进行检测
  • 对中间件做安全的配置

冰蝎加密原理

首先下载该解密工具
https://github.com/melody27/behinder_decrypt
冰蝎加上代理
文件上传总结_第5张图片
burp抓包
文件上传总结_第6张图片
使用上面的工具进行解密

php .\decropt.php -k e45e329feb5d925b -a 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

解密结果如下
文件上传总结_第7张图片
又去看了看冰蝎2的加密过程是先互换秘钥,然后再加密,密码是通过get的方式传过去,而冰蝎三是使用预定义的秘钥,从第一个包开始就使用aes加密
文件上传总结_第8张图片

你可能感兴趣的:(#,漏洞总结,文件上传漏洞)