資源描述:
《萬能密碼sql注入原理》由會員上傳分享,免費在線閱讀,更多相關內容在應用文檔-天天文庫。
1、“萬能密碼”SQL注入基本原理目錄引言:3項目研究原因:4項目進展情況:4結論:9引言:如今,互聯(lián)網上的攻擊、入侵事件頻發(fā),攻擊手段越來越多樣,攻擊工具也泛濫成災,這其中尤其以注入攻擊最為常見。因為這種攻擊方式技術門檻低,攻擊工具多。注入攻擊利用網站頁面的用戶提交數(shù)據(jù)功能,惡意編造具有攻擊破壞性質的特殊數(shù)據(jù)字符串,提交給網站執(zhí)行。如果網站源代碼設計不健壯,對提交的數(shù)據(jù)沒有做嚴格的防范過濾,就很容易被利用,黑客可以以此為突破口,攻入網站服務器。而本次項目所研究的“萬能密碼”就是注入的一種方式,他通過在管理登陸界面輸入能欺騙網站的代碼偽裝成以認證的管理人員從而非法獲取管理員
2、權限從而非法修改網站。項目研究原因:后臺登錄的“萬能密碼”是一個學長發(fā)現(xiàn)了某網站的這個漏洞從而告知我們小組的,我們小組對此產生了極大的興趣:為何看似嚴謹?shù)牡卿浗缑鏁心芡ㄟ^一段代碼就能登錄、而且還能獲得最高權限。所以我們決定這次的百團百題項目以此為研究方向。項目進展情況:我們上網查找了有關后臺“萬能密碼”相關的資料發(fā)現(xiàn)一個嚴重的問題:這個技術已經相對落后,很多網站不能從網頁源碼中分析出注入漏洞的存在。所以我們就從網上找了一些老的網站源碼案例拿來研究:我們從百度百科的“注入漏洞”的詞條中找到了相關存在漏洞的案例:下面用“螞蟻影院3.0”版注銷用戶(wantlogin.as
3、p)中的一段源碼來做一下介紹:(下劃線選取為引用案例內容)<%ifrequest("userid1")<>""thensetrst=server.createobject("adodb.recordset")sql="selectmoney,onlinefromuserswhereuserid="&request("userid1")&"andpassword="&md5(request("pws"))&""rst.opensql,conn,1,3ifrst.eofandrst.bofthenresponse.write""elseresponse.write""response.write""rst.closesetrst=nothingconn.closesetconn=nothingendifendif%>我們能夠很明顯的看到這段代碼:sql="selectmoney,onlinefromuserswhereuserid="&request(
5、"userid1")&"andpassword="&md5(request("pws"))&""存在關鍵詞:sql、并且在這個語句后面有邏輯運算符的話就代表了這個網站有被sql注入的可能。很明顯,這段源碼中我們可以得知該界面有注入的可能,那到底該怎么實現(xiàn)呢?從這段代碼可看出,在網站中,一開始先判斷userid1是否為空,如果不為空,則往下進行到:進入SQL語句,開始驗證帳號密碼的匹配。我們按照證上的思維思考一下,如果我們沒有這里的帳號密碼,我們隨便輸一個,把帳號輸成“zlq”,密碼輸成“123456”。這時,網頁提交的代碼變成selectmoney,onlinefrom
6、userswhereuserid1=zlqandpassword=md5(123456)如果是這樣的話,網站肯定無法找到對應的帳號密碼,就會出現(xiàn)大家遇到的,密碼錯誤、找不到用戶等情況。但是如果這樣的話,把帳號改成:“zlqor1=1or1=1”此時提交代碼變成:selectmoney,onlinefromuserswhereuserid1=zlqor1=1or1=1andpassword=md5(123456),因為“和”的運算級別比“或”高,所以先執(zhí)行1=1andpassword=md5(123456),得到值為0(假);然后再執(zhí)行1=1or0,得到的值為1(真);接
7、下來就進行selectmoney,onlinefromuserswhereuserid1=zlqor1;整個語句變成了1(真)。因為邏輯表達式為真,所以就會彈出“恢復成功你現(xiàn)在可以登陸!”但是這只是注入漏洞的一個基本原理,現(xiàn)在已經不太適用,很多網站不能直接從網站源碼分析出注入漏洞的存在,這也就造成了入侵的困難和尋找目標的困難。我們研究的一個方向是“萬能密碼”與注入的關系。我們上網找到了一系列的“萬能密碼”。以下摘自豆瓣網絡(下劃線選取為引用案例內容)后臺登陸萬能密碼2011-08-2015:31:15aspaspx萬能密碼1:"or"a"