Drupal Protected Node模块脚本注入漏洞


添加时间:
2009-03-04

系统编号:
WAVDB-01348
BUGTRAQ: 33936

影响版本:
Drupal Protected node 5.x-1.3

程序介绍:

Drupal的Protected Node模块可通过口令限制对节点的访问。

漏洞分析:

protected_node.module模块的protected_node_enterpassword()函数没有正确地过滤用户提供输入,272到274行使用以下语句显示出用户提供的文本: $form['protected_node'] = array( '#value' => $info ); 由于没有使用check_plain()或类似的函数过滤$info变量,当q设置为admin/settings/protected_node的时候远程攻击者就可以通过提交恶意请求注入任意HTML和脚本代码,并在用户查看认证页面的时候执行注入的代码。

漏洞利用:

1. 启用Protected Node模块
2. 设置权限允许匿名用户访问protected_node模块部分的受保护内容
3. 点击Administer -> Site Configuration -> Protected node
4. 在Password page info部分输入 <script>alert('xss');</script>值
5. 创建内容
6. 在内容创建屏幕的Protected node部分检查Node is protected复选框并输入口令
7. 保存内容
8. 注销并查看内容以触发JavaScript


解决方案:
厂商补丁:
Drupal
------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.drupal.org/

信息来源:
<*来源:Justin C. Klein Keane (justin@madirish.net)
链接:
http://secunia.com/advisories/34060/
http://marc.info/?l=full-disclosure&m=123575137909518&w=2
*>