1/1页1 跳转到查看:468
发新话题 回复该主题

Discuz!NT2.5漏洞 转载

Discuz!NT2.5漏洞 转载

作者:hackest [H.S.T.]

此文章已发表在《黑客X档案》2008年第10期杂志上
后经作者发布在博客上,如转载请务必保留此信息!


这次要介绍的是Discuz!众多程序中的NT版社区系统中的漏洞(Discuz!NT 2.5 是康盛创想(北京)科技有限公司旗下的一款功能强大的基于 ASP.net 平台的社区软件。基于先进的 .Net Framework,默认支持 SQLServer数据库,可扩展支持Access、MySQL等多种数据库,支持IIS5、IIS6、IIS7,安全高效、稳定易用,充分发挥 ASP.net 特性,支持自由选择切换皮肤,支持多种其它论坛的数据转换。)漏洞文件为showuser.aspx,该文件在对变量ordertype的处理中过滤不严格,导致出现SQL注入漏洞。利用该漏洞构造SQL语句可以获取论坛管理员权限并登录后台得到Webshell,危害相当大,希望使用此程序的各站长尽快打好补丁,以免被恶意攻击(特别鸣谢提供漏洞资料的哥们)。

我们仅从技术讨论的角度出发来做一个简单的漏洞利用测试。鉴于我现在和朋友合作做了IDC,有自己的服务器,所以测试起来相当方便(以前都是自己架这个架那个测试的,往事不堪回首呀!需要Web空间可以找我,嘿嘿……)。给自己开通了一个全能的标准IDC专用空间,再开通了一个MsSQL的数据库,然后到官方下载最新版的Discuz!NT 2.5,顺利安装成功,测试链接为:http://discuznt.estidc.com...。漏洞利用起来相当简单,只需要一个浏览器即可,无需任何多余的工具(当然了,马还是得准备一个的)大家可以通过Google以关键字为“Powered by Discuz!NT 2.5.0”搜索到使用该程序的网站。

一、注册用户

这一步并非必须,如果你懂SQL语句,完全可以更改任意用户密码,或者直接自己插一个管理员到数据库里,但要求对Discuz!NT 2.5的数据库要比较了解,所以这里采用大众化操作来介绍。首先注册一个用户名为hackest的用户(密码随意,6位以上),如图1。



如果遇到某些关闭了注册的网站,可以直接更改某个不是十分重要的用户的密码以达到目的,访问showuser.aspx文件就能显示该论坛所有用户列表了,比如:http://discuznt.estidc.com...(当然了搞技术追求对他人造成的影响最小化,所以我们自己注册一个),如图2。



二、提升为管理员

注册完毕后会自动登录,况且该漏洞即使不登录也可以利用!然后我们直接执行把自己提升为管理员的SQL语句:
http://discuznt.estidc.com/showuser.aspx?ordertype=desc;update%20dnt_users%20set%20adminid=%271%27,groupid=%271%27%20where%20username=%27hackest%27;--

这个SQL语句的作用是把用户名(username)为hackest的用户添加到管理员用户组(groupid=1),执行完之后要刷新一下才能看到用户hackest的组别已经变成管理员了(图2为未提升时的组别,可以看到刚注册的用户为新手上路),如图3。



三、获取Webshell

好了,现在你已经是管理员权限,利用简单吧,只是一条SQL语句就可以了!接下来就是看怎么拿Webshell了。提为管理员后要重登录一下才能看到进入后台的“系统设置”,如图4。



登录管理后台之后,点“帖子”->“帖子相关”->“附件类型尺寸”,然后把原来的rar类型改为aspx,再点“保存附件修改”如图5。



会提示“操作成功执行”,不必理会,接着到前台发帖或者编辑已有帖子,通过上传附件直接上传ASPX的马,如图6。



上传完毕后再到后台管理页面,“论坛”->“论坛维护”->“管理附件”->“搜索附件”,这样搜索出来的附件是全部附件,马一般在最后一页,附件较多的话直接跳转到最后一页即可查看。这时候我们发现马儿已经乖乖的躺在那里等我们了,如图7。



直接点击访问,自动跳转至Webshell登录入口,登录进去即可,如图8。



至此就得到了Webshell,整个过程相当简单。接下来还得做一些收尾工作,处理掉你所留下的操作日志(要养成良好的黑客习惯,不要嫌麻烦)。先用你的马往别的目录上传一个马,再在之前上传附件的地方编辑掉所改帖子,然后参照刚才改允许上传后缀的方法把aspx改回rar(其实就是一个复原过程了)。然后再在后台管理页面找到“其他”->“运行记录”->“后台日志”,选择操作者为你注册的用户名的日志,然后删除,如图9(注意,一般不要全删,删日志也是需要技巧的,全删的话会令人生疑,只要把与自己相关的删掉即可)。



或者用SQL语句删除也可以,执行如下SQL语句也能达到同样的效果:
http://discuznt.estidc.com/showuser.aspx?ordertype=desc;delete%20from%20dnt_adminvisitlog%20where%20username=%27hackest%27;--

然后删掉我们注册的用户,执行这条SQL语句即可:
http://discuznt.estidc.com/showuser.aspx?ordertype=desc;delete%20from%20dnt_users%20where%20username=%27hackest%27;--


四、漏洞修补

Discuz!官方的漏洞响应速度还是相当快的,对此漏洞已经发布了相关补丁程序。到官方下载补丁包,其实里面就两个dll文件,FTP上传替换即可。具体可参照官方公告:http://nt.discuz.net/showt...。最后呼吁一下:技术不是为了破坏而诞生的,请为你的行为负责!本文仅作技术交流之用,后果自负。
http://www.Aspx1.Com
请帮忙宣传Aspx1 , Aspx1是ASP.NET学习者的家园 , 适宜长期居住.

TOP

 
1/1页1 跳转到
发表新主题 回复该主题