0x00 判断是什么上传限制
我们先上传一下文件试一下报错是什么,看看是什么类型的限制。可以看出来,它报错显示该文件不允许上传,大概率是黑名单限制上传。
接着我们可以看一下源码和提示,发现它确实是黑名单限制,并且将大小写,同类型文件解析等方法完全限制了,那么我们只能想办法从其他方面下手试试。我们可以发现,没有对.htaccess文件进行限制(要不以后写一个匹配脚本,有黑名单限制的时候就匹配一下看看有什么没有进行限制[aru_13])那么我们就可以考虑,会不会是.htaccess文件重写绕过。
我们重载网络看一下网站中间件server是什么,发现是Apache,而Apache里面多数是开启着rewrite这一模块,.htaccess文件生效也正是需要这个模块,那么我们可以尝试一下.htaccess文件重写。
在 htaccess 里写入 SetHandler application/x-httpd-php 则可以文件重写成 php 文件。
<FilesMatch "jpg"> SetHandler application/x-httpd-php </FilesMatch>
那么我们可以尝试一下先上传.htaccess文件,然后将.jpg文件上传令其重写为.php文件并进行连接。
0x01 绕过文件上传限制
简单说一下.htaccess文件的作用:htaccess文件的作用是 可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定 IP 地址的用户、只允许特定 IP 地址的用户、禁止目录列表,以及使用其他文件作为 index 文件等一些功能。
那么我们就可以利用他的重写功能进行jpg重写为php进行绕过。
我们先将shell写入php文件中,并将其转为jpg格式,进行上传,我们点开上传文件会发现因为是php转为jpg格式的文件导致访问显示错误,
那么我们再将上述代码写入.htaccess文件中进行上传,这样jpg文件会被重写为php格式,
我们直接用蚁剑进行连接,地址是.jpg文件的地址。
0x02 结语
其实文件上传漏洞可以结合的地方有很多,结合服务器,结合系统等的解析漏洞或是其他漏洞进行操作,感觉还是看信息收集能力?或者碰运气,万一运气好了,正好服务开着,那就[aru_5]
本文作者为J1angL1,转载请注明。