通过文件上传Getshell思路

图片马生成

1
copy demo.png/b+shell.php shell.png

MIME

MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型,可用来检测上传文件的类型。通过修改HTTP包中的Content-Type中的值即可绕过,如Content-Type: image/png

HTPP数据包

.user.ini

PHP 支持基于每个目录的 INI 文件配置。.user.ini是一个能被动态加载的文件,即不需要重启服务器中间件,只需要等待被重新加载。

auto_prepend_file可以指定一个文件,自动包含在要执行的文件前。auto_append_file与它类似,但是是在文件后面包含。

1
2
auto_prepend_file=test.jpg
auto_append_file=test.jpg

.htaccess

.htmlPHP进行解析。

1
AddType application/x-httpd-php .html

短开标签

<?=是PHP的一个短的开放式标签,是echo()的快捷用法,需要设置php.ini中的short_open_tag=ON启用。

1
<?= phpinfo() ?>

``运算符

1
echo `tac flag`; //相当于命令执行

中间件日志

可以通过UAURL等信息写入中间件日志,然后通过包含日志文件的方式,获取shell

中间件日志

文件头

如果代码检测了文件头,可以通过添加文件头的方式进行绕过。

远程包含

在可以使用包含文件的情况下,可以在服务器中上传shell文件,通过远程包含的方式利用。如果无法使用完整的IP地址,可以将IP地址转换为数字进行利用。

在浏览器中访问http://192.168.130.132http://3232268932是相同的效果。

中间件解析漏洞

查看中间件是否有解析漏洞,如果有,可以进行利用。