对于很多靠卖PHP程序养家糊口的人来说,授权是必不可少的一部分,为了防止被他人恶意破解,通常还会加入一些后门留一手,可我们这种正版用户就不答应了,凭什么我付费买的程序居然还留着一个后门,万一哪天有Bug那我不就GG了么?
一.远程代码执行后门
这个相信大家都很熟悉了,eval等等函数都能实现,不过,特别提醒:在查杀时一定要注意以下几个函数,此类后门比较隐蔽,不容易被查杀(fwrite/file_put_contents+include(_once)/require(_once)
这类后门其实是利用写出一个PHP文件然后include导致的远程代码执行,以及,注意unserialize导致的PHP对象注入引起文件写入+ 远程代码执行
查杀方式:对于第一类后门,先使用webshell专杀工具杀掉,然后手动查杀顽固后门(先搜索fwrite/file_put_contents然后看看是否有对指定文件写入变量的功能,然后追溯到这个变量的来由,若发现出自$_GET $_POST $_SERVER[“HTTP_xxxxx”],且输出后缀名为.php或include/require本文件或有任意include(通过GET参数include对应文件且可以够到通过file_put_contents类函数创建的文件(没有对目录过滤),则很可能为后门,此类后门解决方案如下:
对于include本文件的,尝试注释掉include语句并查看是否有影响正常功能,若影响,请删除注释符号然后对$_GET之类的过滤PHP代码
,然后搜索unserialize函数,若参数来自GET,则判断有后门,此类后门仅在PHP版本>7.0,使用第二个参数传入[‘allowed_classes’ => [允许的类]或false]
来限制unserialize可以序列化的对象
二.管理员密码上传后门
这一个后门主要是影响CMS等有管理员后台的程序(比如某人开发的EMLOG模板中就包含了此后门),通过file_put_contents向网站目录中写入加密后的密码或通过file_get_contents/curl向授权服务器发送管理员用户名密码(不一定是用户名密码,比如数据库密码皆有可能)
解决方式:搜索以上字符串,若为函数则搜索这个函数名,直到找到未包含机密信息则可排除,若找到将机密信息随便乱改(比如后门获取数据库密码改为获取值888888)
PS:请注意eval包裹的加密代码
一、如果您发现本站侵害了相关版权,请附上本站侵权链接和您的版权证明一并发送至邮箱:yehes#qq.com(#替换为@)我们将会在五天内处理并断开该文章下载地址。
二、本站所有资源来自互联网整理收集,全部内容采用撰写共用版权协议,要求署名、非商业用途和相同方式共享,如转载请也遵循撰写共用协议。
三、根据署名-非商业性使用-相同方式共享 (by-nc-sa) 许可协议规定,只要他人在以原作品为基础创作的新作品上适用同一类型的许可协议,并且在新作品发布的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与该作品在本网站的原发地址建立链接,他人就可基于非商业目的对原作品重新编排、修改、节选或者本人的作品为基础进行创作和发布。
四、基于原作品创作的所有新作品都要适用同一类型的许可协议,因此适用该项协议, 对任何以他人原作为基础创作的作品自然同样都不得商业性用途。
五、根据二〇〇二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可不经软件著作权人许可,无需向其支付报酬!
六、鉴此,也望大家按此说明转载和分享资源!本站提供的所有信息、教程、软件版权归原公司所有,仅供日常使用,不得用于任何商业用途,下载试用后请24小时内删除,因下载本站资源造成的损失,全部由使用者本人承担!