(2)绕过白名单后缀名检测
3.绕过文件内容检测
四、其他绕过方式
一、绕过客户端检测客户端检测是利用JavaScript代码对上传的文件进行判断,惠阳保姆13825404095因此禁用掉JavaScript即可绕过检测上传Webshell。
一、绕过服务端检测 1.绕过MIME类型检测修改MIME类型为合法类型即可,一般为图片类型。
修改后缀名即可,如php3、php5等。
先上传.htaccess文件。
然后上传php文件,抓包,修改为对应名称即可。
利用Windows系统的文件名特性,会自动去掉后缀名最后的.,上传tset.php. .进行绕过。
利用Windows对大小写不敏感的特性。上传as.PHP进行绕过。
在文件名后面增加空格。
在文件名后添加.。
::$DATA是Windows系统中用于存储文件实际数据的隐藏属性,它对于普通用户来说是透明的,只有系统和特定程序才能访问和使用它。
由于白名单限制较大,为确保可行,以下是环境配置:
phpStudy2018
php版本5.2.17
php.ini的magic_quotes_gpc的值为Off。
php.ini的;extension=php_exif.dll修改为extension=php_exif.dll
httpd.conf的#AddType application/x-httpd-php .php去掉井号注释并添加.phtml
添加文件名和一个空格。
找到上图位置,把20改为00并回车。
图片马可理解为在图片里加入木马。
打开cmd,执行以下命令,制作图片马。
将文件上传后可以发现文件内容的php代码还在。
再配合文件包含漏洞进行利用。
(1)绕过二次渲染用正常的图片马上传发现文件里的php代码消失了,并且图片看起来也没有任何的变化,说明它在不改变图片原内容的情况下,重新制作了图片。那么就应该找到那个没有改变的地方,并插入木马。
上传一张gif图片,然后再将图片下载下来,比较两张图片的差异。在相同的地方插入php代码并重新上传即可。
四、其他绕过方式 1.条件竞争绕过准备一个php文件,内容为:
<?php fputs(fopen('shell.php', 'w'), "<?php phpinfo();?>");?>上传该文件并抓包,对该请求包进行重放,也可以使用Burp Suite的Null payloads进行爆破。
并同时访问该文件,也可以用爆破的方式,出现状态码200说明访问到该文件。
访问新生成的php文件。
2.条件竞争+解析漏洞绕过由于是白名单验证,因此只能上传符合白名单的文件。再配合Apache的解析漏洞,在Apache版本符合条件下,对mime.types中没有涉及的文件后缀不会解析,查看httpd.conf文件下的mime.types,没有发现7z后缀,说明不会解析7z文件,比如test.php.7z这个文件,Apache的解析是从后往前,当7z不能解析时,其向前解析一直到可以解析的后缀为止,所以将test.php.7z当作test.php执行。
首先上传test.php.7z然后抓包,并对该请求包进行多次的重放。
访问test.php.7z并进行多次重放。
成功生成info1.php。
3.绕过move_uploaded_file实际上是绕过黑名单验证