亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

動網(wǎng)dvbbs7.1論壇權(quán)限提升漏洞及防范(圖)

 更新時間:2007年01月16日 00:00:00   作者:  
在6月份的黑防上看到《動網(wǎng)7.1漏洞驚現(xiàn)江湖》一文,說是admin_postings.asp文件

存在注入漏洞,但利用的前提是擁有超級斑竹或前臺管理員權(quán)限。我想起以前發(fā)現(xiàn)的動網(wǎng)7.x版本存在一個前臺權(quán)限提升漏洞, 正好可以結(jié)合起來利用。這個前臺權(quán)限提升漏洞對7.x的Access和 Sql版都有效。下面我們就以7.0 sp2 sql版,講解這個漏洞的利用。

漏洞分析
我們知道動網(wǎng)是通過GroupID來判斷當(dāng)前用戶所在的組的,然后再通過組的信息判斷用戶的權(quán)限。它是如何取得這個GroupID的呢?讓我們看看登錄驗證的那一段:

login.asp的525行左右

Rem ==========論壇登錄函數(shù)=========

Rem 判斷用戶登錄

Function ChkUserLogin(username,password,mobile,usercookies,ctype)



…………前面的代碼省略

Sql="Select UserID,UserName,UserPassword,UserEmail,UserPost,UserTopic,UserSex,UserFace

,UserWidth,UserHeight,JoinDate,LastLogin,UserLogins,Lockuser,Userclass,UserGroupID,UserGroup,

userWealth,userEP,userCP,UserPower,UserBirthday,UserLastIP,UserDel,UserIsBest,UserHidden,

UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday "

Sql=Sql+" From [Dv_User] Where "&sqlstr&""

set rsUser=Dvbbs.Execute(sql)

If rsUser.eof and rsUser.bof Then

ChkUserLogin=false

Exit Function

Else

iMyUserInfo=rsUser.GetString(,1, "|||", "", "")

rsUser.Close:Set rsUser = Nothing

End If

iMyUserInfo = "Dvbbs|||"& Now & "|||" & Now &"|||"& Dvbbs.BoardID &"|||"&

iMyUserInfo &"||||||Dvbbs"

iMyUserInfo = Split(iMyUserInfo,"|||")

If trim(password)<>trim(iMyUserInfo(6)) Then

ChkUserLogin=false

ElseIf iMyUserInfo(17)=1 Then

ChkUserLogin=false

ElseIf iMyUserInfo(19)=5 Then

ChkUserLogin=false

Else

ChkUserLogin=True

Session(Dvbbs.CacheName & "UserID") = iMyUserInfo

Dvbbs.UserID = iMyUserInfo(4)

RegName = iMyUserInfo(5)

Article = iMyUserInfo(8)

UserLastLogin = iMyUserInfo(15)

UserClass = iMyUserInfo(18) 

GroupID = iMyUserInfo(19)

TitlePic = iMyUserInfo(34)

If Article<0 Then Article=0

End If

…………后面的代碼省略

可以看到,動網(wǎng)將用戶的信息先用”|||”三個豎線連起來,做為一個字符串傳給iMyUserInfo,然后iMyUserInfo由”|||”分隔成一個字符串?dāng)?shù)組。用戶密碼驗證正確后就把數(shù)組的第20個元素的值:iMyUserInfo(19) 賦給GroupID??吹?jīng)],GroupID只是數(shù)組對應(yīng)的第20個元素的值,如果iMyUserInfo(19)的值為1的話,動網(wǎng)就以為現(xiàn)在登錄的用戶是前臺管理員了。

在inc目錄下的Dv_ClsMain.asp文件中也有這么驗證用戶身份的一段代碼,用來在用戶更新信息后檢測用戶的權(quán)限。

Dv_ClsMain.asp的650行左右

Public Sub TrueCheckUserLogin()

……前面的省略

Dim Rs,SQL

Sql="Select UserID,UserName,UserPassword,UserEmail,UserPost,UserTopic,UserSex,

UserFace,UserWidth,UserHeight,JoinDate,LastLogin,UserLogins,Lockuser,Userclass,UserGroupID,

UserGroup,userWealth,userEP,userCP,UserPower,UserBirthday,UserLastIP,UserDel,UserIsBest,

UserHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday"

Sql=Sql+" From [Dv_User] Where UserID = " & UserID

Set Rs = Execute(Sql)

If Rs.Eof And Rs.Bof Then

Rs.Close:Set Rs = Nothing

UserID = 0

EmptyCookies

LetGuestSession()

Else

MyUserInfo=Rs.GetString(,1, "|||","","")

Rs.Close:Set Rs = Nothing

If IsArray(Session(CacheName & "UserID")) Then

MyUserInfo = "Dvbbs|||"& Now & "|||" & Session(CacheName & "UserID")(
2) &"|||"& BoardID &"|||"& MyUserInfo &"||||||Dvbbs"

Else

MyUserInfo = "Dvbbs|||"& Now & "|||" & DateAdd("s",-3600,Now()) &"|||"
& BoardID &"|||"& MyUserInfo &"||||||Dvbbs"

End IF

Response.Write MyUserInfo

MyUserInfo = Split(MyUserInfo,"|||")

…… 

End If

End Sub

’用戶登錄成功后,采用本函數(shù)讀取用戶數(shù)組并判斷一些常用信息

Public Sub GetCacheUserInfo()

MyUserInfo = Session(CacheName & "UserID")

UserID = Clng(MyUserInfo(4))

MemberName = MyUserInfo(5)

Lastlogin = MyUserInfo(15)

If Not IsDate(LastLogin) Then LastLogin = Now()

UserGroupID = Cint(MyUserInfo(19))

    ……后面代碼省略


 兩處檢驗的方式一模一樣,所以我們可以利用這兩個中的任意一個來達(dá)到我們的目的??此膕ql語句部分:

Sql="Select UserID,UserName,UserPassword,UserEmail,UserPost,UserTopic,UserSex,
UserFace,UserWidth,UserHeight,JoinDate,LastLogin,UserLogins,Lockuser,Userclas
s,UserGroupID,UserGroup,userWealth,userEP,userCP,UserPower,UserBirthday,UserLa
stIP,UserDel,UserIsBest,UserHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTit
le,TruePassWord,UserToday"
Sql=Sql+" From [Dv_User] Where UserID = " & UserID


javascript:window.open(this.src); src="/article/UploadPic/2006/8/27/200682723275512.GIF" onload="javascript:if(this.width>screen.width-500)this.style.width=screen.width-500;" align=baseline border=0>

相關(guān)文章

最新評論