判断黑名单还是白名单
文件名后缀写一个完全不存在的后缀名,如果是黑名单,就可以上传成功,如果是白名单,就无法上传.
找文件上传漏洞时,一般都是找黑名单的
文件上传攻击
轻量级的检测绕过攻击
幻术头
路径/拓展名检绕过
黑名单绕过
-
文件名大小写绕过 -
黑名单列表绕过(cdx) -
特殊文件名绕过 -
0x00截断绕过 -
. htaccess文件攻击 -
Apache解析漏洞 -
IIS解析漏洞 -
Nginx解析漏洞 -
多文件上传 -
管理员错误配置导致某些其他格式以脚本方式执行
白名单绕过
- 文件名后缀0x00截断绕过
- PHP文件包含漏洞
- IIS解析漏洞
- Nginx解析漏洞
- Put协议上传
::$DATA绕过、点和空格绕过
在文件后缀名后加上::$DATA或者. . 这些,由于Windows的特性在磁盘中会忽略,所以文件还是按原来的执行.
例如:
1.php::$DATA
1.php. . . …
遇到过滤::
D
A
T
A
可以
1.
p
h
p
:
:
DATA可以1.php::
DATA可以1.php::DA::$DATATA
0x00截断
php5.3以下可以用%00截断
%00解析就是空符号
1.php%00.jpg post接收时,要在hex里加上00
.htaccess文件
先决条件:
在php.ini文件里
- Allow Override All
- LoadModule rewrite_module modules/mod_rewrite.so#rewrite模块为开启状态
.htaccess文件内容
<FilesMatch "haha">
SetHandler application/x-httpd-php
</FilesMatch>
//以haha命名的文件都会以php文件执行,haha可以任意修改
上传方法:
先随意上传一个文件,然后修改文件名和文件内容,上传完.htaccess文件后,再上传haha.(可上传的后缀)的文件,访问哈哈文件时就会以PHP运行
图片马
制作图片马
使用CMD制作一句话木马。
参数/b指定以二进制格式复制、合并文件; 用于图像类/声音类文件
参数/a指定以ASCII格式复制、合并文件。用于txt等文档类文件
copy 1.jpg/b+1.php 2.jpg
//意思是将1.jpg以二进制与1.php合并成2.jpg
那么2.jpg就是图片木马了。
上传图片马后可以用文件包含漏洞访问图片马,执行代码
或是利用IIS和Nginx的解析漏洞执行
Apache解析漏洞
-
Apache解析漏洞主要是因为Apache默认一个文件可以有多个用.分割得后缀,当最右边的后缀无法识别(mime.types文件中的为合法后缀)则继续向左看,直到碰到合法后缀才进行解析(以最后一个合法后缀为准) 所以在WWW目录下创建的3.php.xxx,还是可以以PHP文件执行. -
如果服务器给.php后缀添加了处理器:AddHandler application/x-httpd-php.php 那么在有多个后缀的情况下,只要包含.php后缀的文件就会被识别出php文件进行解析,不需要是最后一个后缀,可绕过白名单过滤
IIS解析漏洞
Nginx解析漏洞
|