[红明谷CTF 2021]write_shell

[红明谷CTF 2021]write_shell

这题主要有两个知识点
1.php短标签
2.php可在``中执行系统命令
在这里插入图片描述
题目直接给出了源代码,看了一下源代码,利用点应该就是利用file_get_contents函数写shell获取我们需要的信息

在此之前我们还需要找到要写入shell的文件路径,这时我们可以发现可以通过?action=pwd进行查看
在这里插入图片描述
路径有了接下来试试能否正常写入
在这里插入图片描述
成功弹窗,照这么看这里还有xss
在这里插入图片描述
这题由于写入的文件是后缀名为php的,也就是说我们的语法就得满足php,并且达到命令执行的点。但这题把php给ban掉了,因为php的代码开始标签是<?php,这样就导致我们没办法进行php脚本的写入,这就很难受了。好在还有个php的短标签可以使用。

尝试了一下<?= ?>可以成功写入,这个<?= ?>相当于<?echo ?>,空格杯过滤了用%09代替
在这里插入图片描述
可以正常写入
在这里插入图片描述
接下来在学习一个新的知识点

PHP 支持一个执行运算符:反引号(``)。注意这不是单引号!PHP 将尝试将反引号中的内容作为 shell 命令来执行,并将其输出信息返回(即,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符"`"的效果与函数shell_exec() 相同。

注意:
关闭了 shell_exec() 时反引号运算符是无效的。
与其它某些语言不同,反引号不能在双引号字符串中使用。

接下来尝试一下执行命令ls / 查看根目录下的文件
在这里插入图片描述
在这里插入图片描述
看到一个类似flag的文件名
在这里插入图片描述
在这里插入图片描述
成功得到flag

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值