PHP - preg_replace()

Read flag.php.

 /e 模式:将替换串中的内容当作代码来执行

关于修饰符 /e 被弃用的官方文档:

 https://www.php.net/manual/zh/reference.pcre.pattern.modifiers.php#reference.pcre.pattern.modifiers.eval

  如果设置了这个被弃用的修饰符, preg_replace() 在进行了对替换字符串的 后向引用替换之后, 将替换后的字符串作为php 代码评估执行(eval 函数方式),并使用执行结果 作为实际参与替换的字符串。单引号、双引号、反斜线(\)和 NULL 字符在 后向引用替换时会被用反斜线转义.
  例如:

   

  字符串被替换的同时,也会执行其中strtoupper函数

因此这里需要传递php指令,读取flag.php

三个参数分别是:
  $pattern: 要搜索的模式,可以是字符串或一个字符串数组。
  $replacement: 用于替换的字符串或字符串数组。
  $subject: 要搜索替换的目标字符串或字符串数组。
开始尝试使用system命令函数

   

 还是直接用file_get_contents读取

  

猜你喜欢

转载自www.cnblogs.com/abbin-blog/p/12161610.html