phpcms禁止提交信息到官网

张开发
2026/4/13 21:02:58 15 分钟阅读

分享文章

phpcms禁止提交信息到官网
phpcms v9后台登陆时会向官网 http://update.v9.phpcms.cn 联网名这检查更新实际同时也收集网站以及管理员的用户信息还有登陆者的设备等信息。以前经常更新可以说有必要但phpcmsv9已经很多年不更新了。只剩下收集信息的功能了。开始以为去掉后台模板中的相关网址就行了。结果登陆时还是发现会向官网提交信息。于是追了一下。在登陆成功后会首先显示一个默认页。显示管理员名字服务器信息等。它是调用modules\admin\index.php中的public_main()方法加载的。在这个方法中的最后几行代码如下$designer 张三丰; ob_start(); include $this-admin_tpl(main); $data ob_get_contents(); ob_end_clean(); system_information($data);意思是将内容缓存然后给$data再调用system_information处理。system_information()函数,显然是一个已经加载的类库中的函数查询后发现它位于modules\admin\functions\admin.func.php文件中。代码如下function system_information($data) { $update pc_base::load_sys_class(update); $notice_url $update-notice(); $string base64_decode(PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoIiNtYWluX2ZyYW1laWQiKS5yZW1vdmVDbGFzcygiZGlzcGxheSIpOzwvc2NyaXB0PjxkaXYgaWQ9InBocGNtc19ub3RpY2UiPjwvZGl2PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ik5PVElDRV9VUkwiPjwvc2NyaXB0Pg); echo $data.str_replace(NOTICE_URL,$notice_url,$string); }这里有一个解码来获得字串我们先解码看看这些字符串是什么。加个 echo $string 看看。结果浏览器中什么也没有。嗯明明解码成字符串为什么什么也没有呢其实是有的。它是一段‘javascript’字串所以你在浏览器中看不到。解码后的内容如下script typetext/javascript$(#main_frameid).removeClass(display);/script div idphpcms_notice/div script typetext/javascript srcNOTICE_URL/script到这里还看不出什么。然后它将src”NOTICE_URL”中的NOTICE_URL替换成noticeurl。然后加到已经生成的noticeurl。然后加到已经生成的data数据后面。也就是向$data中加了一段代码。加的网址从何而来加的又是什么网址呢函数先加载了update类。然后调用了该类的notice()方法。我们跟进类文件libs\classes\update.class.php看看。function notice() { return $this-url(notice); } function url($action check) { $modules ; $site getcache(sitelist,commons); $sitename $site[1][name]; $siturl $site[1][domain]; foreach ($site as $list) $sitelist . $list[domain].,; $pars array( action$action, phpcms_username, sitename$sitename, siteurl$siturl, charsetCHARSET, versionPC_VERSION, releasePC_RELEASE, osPHP_OS, phpphpversion(), mysql$this-db-version(), browserurlencode($_SERVER[HTTP_USER_AGENT]), usernameurlencode(param::get_cookie(admin_username)), email urlencode(param::get_cookie(admin_email)), modulesROUTE_M, sitelisturlencode($sitelist), uuidurlencode($this-uuid), ); $data http_build_query($pars); $verify md5($this-uuid); if($s $this-module()) { $p p.$s; } return $this-update_url.?.$data.verify.$verify.$p; }这里收集了网站的多种信息然后生成一个网址加到js中就会自动向该网址访问并将信息提交给官网。最后加到页面后面的代码是这样的解码后script typetext/javascript srchttp://update.v9.phpcms.cn/index.php?actionnoticephpcms_usernamesitename默认站点siteurlhttp://localhost/phpcms/charsetutf-8versionV9.6.3release20170515osWINNTphp7.0.12mysql5.5.53browserMozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36usernamephpcmsemail275423729qq.commodulesadminsitelisthttp://localhost/phpcms/,uuid0b5aacb6-0d3c-13e2-a47b-d9cb3a26d359verify83f1ab93b35fb87202e613e4decbecc2/script这就是向官网提交我们网址管理员名字浏览器等信息的代码啊。难怪此前清除了模板中update.v9.phpcms.cn网址仍然提交原来它将网址加密了然后还加了你的相关信息。如何干掉它一是换一个网址将http://update.v9.phpcms.cn/index.php换成你的。不让它向官网提交但访问你的网址你并不需要。最好的办法是去掉访问。但不要这段代码是不行的会无法显示。因为$(“#main_frameid”).removeClass(“display”); 是让加载的页面显示,也就是说默认是不显示的。没有js浏览器不显示内容。我们要干掉的其实是这个‘’去掉它将剩下的script typetext/javascript$(#main_frameid).removeClass(display);/scriptdiv idphpcms_notice/divbase64_encode。得到‘PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoIiNtYWluX2ZyYW1laWQiKS5yZW1vdmVDbGFzcygiZGlzcGxheSIpOzwvc2NyaXB0PiA8ZGl2IGlkPSJwaHBjbXNfbm90aWNlIj48L2Rpdj4’‘PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoIiNtYWluX2ZyYW1laWQiKS5yZW1vdmVDbGFzcygiZGlzcGxheSIpOzwvc2NyaXB0PiA8ZGl2IGlkPSJwaHBjbXNfbm90aWNlIj48L2Rpdj4’替换原来的就可以了。

更多文章