Easy Calc的wp及目录分隔符(/)的一种少见的绕过姿势

Easy Calc的wp及目录分隔符(/)的一种少见的绕过姿势

wp:

随便输入后查看源码,发现隐藏网站calc.php:
在这里插入图片描述
访问后得到源码:
在这里插入图片描述发现eval函数,明确需要通过它获取flag。这道题的思路很像经典的ping ping的做法,不同就是ping ping是通过系统命令执行(ls /)来获取目录找寻flag,本题是通过eval函数中的echo获取。所以需要使用var_dump(scandir(/))来打印出目录,然后观察到/被过滤了,所以需要绕过。

  1. 一种方法是使用chr(47),因为chr(47)=" / "
  2. 另一种是使用DIRECTORY_SEPARATOR:(DIRECTORY_SEPARATOR 是 PHP 中一个定义分隔符常量的内置常量,在不同的操作系统中,用于区分文件路径中的目录分隔符。例如,在 Windows 系统中使用反斜杠 \ 表示目录分隔符,在 Unix/Linux 系统中则使用正斜杠 /。而使用DIRECTORY_SEPARATOR 常量来代替实际的路径分隔符,可以确保不同操作系统下的代码都能正常工作)因此DIRECTORY_SEPARATOR可以替代/,绕过/过滤。
    在这里插入图片描述或者:
    在这里插入图片描述接着发现f1agg文件,还是利用echo读取f1agg文件。用到file_get_contents(/f1agg),补充下file_get_contents 是 PHP 中用于读取文件内容的函数。它可以从一个文件或网络资源中读取数据,并以字符串形式返回。还是因为/被过滤,同样可以使用两种绕过方法:
    在这里插入图片描述或者:
    在这里插入图片描述
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值