[BJDCTF2020]ZJCTF,不过如此

伪协议读取next.php源码

 

preg_replace() /e代码执行漏洞_preg_replace /e-CSDN博客

查找资料我们发现,在php5.6及以下版本中,/e使得preg_replace的第二个参数可以被当作php代码执行,第二个参数中\\1指的是正则匹配到的第一组文本,是定死的,所以我们可以考虑第一个参数使用.*匹配任意文本,第三个参数${getFlag()},从而让第二个参数的值取得${getFlag()}并执行getFlag()函数

通过下面的foreach循环,re为get变量的键,str为get变量的值,故可构造

.*=${getFlag()}  

从而实现执行getFlag中的一句话木马 

但是“.”不能作为首字符,故改用/S匹配任意非空白字符

这里${}的作用是变量替换,实现先执行表达式并将其作为变量的值的效果

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-02-13 23:14:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-13 23:14:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-13 23:14:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-13 23:14:02       18 阅读

热门阅读

  1. 蓝桥杯每日一题之内存问题

    2024-02-13 23:14:02       38 阅读
  2. C#中使用 => 运算符的 switch 表达式

    2024-02-13 23:14:02       32 阅读
  3. Python scapy 构建多层嵌套数据包

    2024-02-13 23:14:02       26 阅读
  4. 业务流程

    2024-02-13 23:14:02       33 阅读
  5. 安装PostgreSQL和PostGIS

    2024-02-13 23:14:02       24 阅读
  6. 所有设计模式大全及学习链接

    2024-02-13 23:14:02       39 阅读
  7. 一篇文章学透所有Python知识

    2024-02-13 23:14:02       32 阅读