博主最近在学习文件上传漏洞,把相关的姿势整理一下。
PASS-1
第一关是前端js验证,我们只需在客户端操作就可以了,按F12键查看源码,搜索form关键字,去掉οnsubmit=“return checkFile()”,然后就可以上传php文件了。
这里上传了内容为<?php phpinfo() ?>的php文件,上传后直接访问,如图
PASS-2
姿势:
MIME 类型:浏览器通常使用MIME类型(而不是文件扩展名)来确定如何处理URL,因此Web服务器在响应头中添加正确的MIME类型非常重要。如果配置不正确,浏览器可能会曲解文件内容,网站将无法正常工作,并且下载的文件也会被错误处理。
上传一个PHP文件,burp抓包,修改Content-Type为image/jpeg 再连接蚁剑就OK了
pass-3
如果服务端代码没有禁止一些后缀名的话,那么以php2、php3、php5、phtml、pht为后缀名的文件都会被解析为php文件。 此处上传了phpinfo.phtml,直接访问:
pass-4
姿势:
对于文件上传漏洞,我们可以通过修改或者上传.htaccess文件,来实现解析我们的想要解析的文件,对于白名单处理就无法使用这种方法绕过。
当把.htaccess文件上传到某个文件夹时,它将作用于此目录及其所有子目录,想要使用.htaccess文件需要开启apache的httpd.config文件中的AllowOverride All配置
.htaccess文件内容如下:
SetHandler application/x-httpd-php
意思是:此文件将改变服务器解析规则,使得所有文件都会被当成php文件来解析。
先上传.htaccess文件,再上传一个jpg文件即可。 此处上传了phpinfo.jpg,上传后直接访问(须把后缀名改为.php):
|