介绍

任何具有string 表达的标量变量,数组单元或对象属性都可使用此语法。只需简单地像在 string 以外的地方那样写出表达式,然后用花括号 { 和 } 把它括起来即可。由于 { 无法被转义,只有 紧挨着 { 时才会被识别。可以用 {\\ 来表达 {$。

利用例子解析

$str=@(string)$_GET['chabug'];
eval('$str="'.addslashes($str).'";');

根据php官方文档,这里提示在PHP5以后可以使用{$}来调用函数、方法等
image.png

直接利用payload{${phpinfo()}}或者${${phpinfo()}}会返回phpinfo信息,但都会报错。第一层中括号中的内容是phpinfo()执行之后的返回值,即为TRUE,拼接结果为$TRUE和$$TRUE,变量TRUE并没有赋值,所以会产生报错,但没关系,因为我们想要执行的命令已经执行了