再看SQL注入實(shí)戰(zhàn)
發(fā)表時(shí)間:2023-06-04 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]我們?cè)谝郧耙呀?jīng)講過SQL注入的一些原理和思路, 對(duì)于這種具有普遍性的攻擊, 對(duì)于建站者來說是很難防范的。 目前已經(jīng)有了很多自動(dòng)注入的工具, 但對(duì)于深入學(xué)習(xí)技術(shù)的人來說, 更好的掌握SQL注入實(shí)質(zhì)對(duì)...
我們?cè)谝郧耙呀?jīng)講過SQL注入的一些原理和思路, 對(duì)于這種具有普遍性的攻擊, 對(duì)于建站者來說是很難防范的。 目前已經(jīng)有了很多自動(dòng)注入的工具, 但對(duì)于深入學(xué)習(xí)技術(shù)的人來說, 更好的掌握SQL注入實(shí)質(zhì)對(duì)于進(jìn)攻將更加有自信。
當(dāng)然你一樣可以憑借自己的入侵經(jīng)驗(yàn)積累和手工注入技巧輕松進(jìn)入網(wǎng)站的后臺(tái)了。 要知道, 工具黑客和手工黑客, 完全是兩個(gè)層次的水平, 工具誰都會(huì)用, 但是對(duì)于手工, 很多人卻得不到進(jìn)入其中的法門。
在Web入侵技術(shù)中, 最搶眼的無可厚非自然是SQL注入, 而在SQL注入中, 又存在一種廣為流傳的技術(shù)叫做“瞬注”, 當(dāng)然這是一門手工技巧, 就是數(shù)據(jù)庫的聯(lián)合查詢。 “瞬注”, 顧名思義, 瞬間注入得到密碼, 實(shí)戰(zhàn)中它能比全自動(dòng)化的SQL注入工具還要快。
檢測(cè)漏洞
我們已經(jīng)找到了一個(gè)注入點(diǎn)(這對(duì)于浩瀚的網(wǎng)絡(luò)來說并不難)在這個(gè)URL后面加上一個(gè)單引號(hào)后提交, 發(fā)現(xiàn)頁面變化了, 出現(xiàn)的異常表明可以趁虛而入。 初步推測(cè)這個(gè)數(shù)據(jù)庫的管理程序不是MS SQLServer, 而是另外一種常見的——Access。 幸運(yùn)的是:瞬注對(duì)這兩種數(shù)據(jù)管理系統(tǒng)是通殺的。
用and 1=1和and 1=2看頁面是否相同就能確定注入漏洞的存在。 提交這樣的http://www.myxxxxx.org/showarticle.asp?id=2107 and 1=1, 發(fā)現(xiàn)又變回了原來的正常頁面。 接下來提交http://www.myxxxxx.org/showarticle.asp?id=2107 and 1=2, 頁面再次出現(xiàn)異常。 現(xiàn)在注入漏洞的存在已經(jīng)可以肯定了。
注意這里%20在地址欄中是空格的URL編碼表現(xiàn)形式。 數(shù)據(jù)庫管理系統(tǒng)為SQLServer的時(shí)候, 在URL后面加單引號(hào)會(huì)出現(xiàn)程序的出錯(cuò)信息, 而ACCESS一般會(huì)出現(xiàn)頁面沒有內(nèi)容的狀況。
猜測(cè)字段數(shù)
數(shù)據(jù)庫—表段—字段—字段內(nèi)容是我們滲透的過程。 相鄰兩個(gè)都是由前至后一對(duì)多的關(guān)系。 在注入中數(shù)據(jù)庫的名字是相當(dāng)不重要的, 我們用“瞬注”先不需要考慮是要猜解的表段的名字, 而是先看庫中是否有擁有我們猜測(cè)的字段總數(shù)的表。
假設(shè)這個(gè)表有10個(gè)字段, 提交:http://www.myxxxxx.org/showarticle.asp?id=2107 order by 10, Order命令本來其實(shí)是在SQL語句中用來排序的, 我們也可以巧妙地用它來猜測(cè)字段數(shù)目。 發(fā)現(xiàn)頁面出現(xiàn)異常, 表明語句錯(cuò)誤。
為提高效率, 直接取10的折中數(shù)目5。 提交http://www.myxxxxx.org/showarticle.asp?id=2107 order by 5, 發(fā)現(xiàn)頁面仍然異常, 沒有內(nèi)容顯示, 說明字段數(shù)還是太大。 利用這種二分法一步步的切下去。
當(dāng)猜測(cè)的字段數(shù)小于等于(<=)實(shí)際總共字段數(shù)時(shí), 頁面一直保持正常, 當(dāng)我們猜測(cè)的字段數(shù)大于(>)表中實(shí)際字段總數(shù)時(shí), 頁面就會(huì)出現(xiàn)也常。 這就是為什么看到頁面出現(xiàn)異常就去降低猜測(cè)的字段總數(shù)而不是增加的原因。
當(dāng)提交http://www.myxxxxx.org/showarticle.asp?id=2107 order by 3時(shí), 頁面終于正常了!
通過以上步驟, 我們終于可以確定, 數(shù)據(jù)庫中一定存在這么一個(gè)表, 該表內(nèi)有3個(gè)字段。
猜測(cè)表名
得到了字段的總數(shù)目, 我們還需要表名才行。 同樣假設(shè)有一個(gè)表的名字是“Users”, 提交URL:http://www.myxxxxx.org/showarticle.asp?id=2107 and 1=2 union select 1,2,3 from users, 空格會(huì)自動(dòng)被轉(zhuǎn)換為%20。 提交后頁面什么內(nèi)容都沒有顯示, 說明users這個(gè)表是不存在滴。
同樣再猜解admin, 這些都是常見的表明:http://www.myxxxxx.org/showarticle.asp?id=2107 and 1=2 union select 1,2,3 from admin, 果然, 期望的頁面出來了。
這張頁面的“當(dāng)前位置”后面寫的不再是路徑信息了, 變成了“1”, 而正文內(nèi)容里面只有一個(gè)“2”, 說明字段1和2是可以顯示在頁面中的。
字段內(nèi)容
為什么說瞬注比自動(dòng)化的SQL注入工具還要快呢?因?yàn)樗玫矫艽a的方法不是一個(gè)個(gè)字符地猜解, 而是直接爆出來, 但就像上面的操作一樣, 會(huì)出現(xiàn)不成功的情況!剛剛前面不是提交了個(gè)http://www.myxxxxx.org/showarticle.asp?id=2107 and 1=2 union select 1,2,3 from admin, admin, 接下來頁面中出現(xiàn)了“1”和“2”嗎?這里的“1”和“2”是可以直接顯示在頁面上的, 我們?nèi)绻裊RL中的可顯示在頁面中的數(shù)字改成字段名的話, 那么字段內(nèi)容(包含用戶名和密碼)就能直接在頁面中看到。
假設(shè)如果有23個(gè)字段的話, 就要寫成http://www.myxxxxx.org/showarticle.asp?id=2107 and 1=2 union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 from admin, 最后的數(shù)字為字段總數(shù)。
假設(shè)存放用戶名的字段名為user, 存放密碼的字段名為pass。 提交http://www.myxxxxx.org/showarticle.asp?id=2107 and 1=2 union select user,pass,3 from admin, 當(dāng)然同樣會(huì)出現(xiàn)錯(cuò)誤的情況, 但知道出現(xiàn)MD5類的數(shù)值, 表明該字段內(nèi)容被爆出來了。
后臺(tái)入侵
登錄后臺(tái), 在MD5破解網(wǎng)站上解出密碼原文, 登入就可以隨意控制了。 事實(shí)上, 當(dāng)我們用自動(dòng)注入工具檢測(cè)時(shí), 發(fā)現(xiàn)admin這個(gè)表中的確有3個(gè)字段id,username和password。 看看是不是和我們?cè)陧撁嬷斜龅囊粯幽?瞬注這個(gè)網(wǎng)站當(dāng)時(shí)我只花了3分鐘左右(當(dāng)然, 經(jīng)驗(yàn)和運(yùn)氣很重要, 對(duì)常見的表名和字段名要有積累), 而啊D整整跑了7分鐘。
這種入侵思路可以幫助我們更好的理解SQL入侵實(shí)質(zhì), 并且提高入侵效率, 不過運(yùn)氣成分也很重要。
上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識(shí),學(xué)習(xí)了安全知識(shí),幾乎可以讓你免費(fèi)電腦中毒的煩擾。