SQL注入-自動化盲注(sqlmap)
本教程僅用于技術(shù)交流及學(xué)習(xí),請勿使用本教程所講技術(shù)進(jìn)行違法活動,如果將本教程所講技術(shù)用于違法活動,本人概不負(fù)責(zé)。
在上一個專欄,我已經(jīng)講了SQL注入的原理及Union聯(lián)合注入。今天,我們來講一下另一種SQL注入方法:布爾盲注。
首先,在開始教程之前,我先來講一下什么是布爾型(Bool)。布爾型是用于邏輯判斷的變量,只有真(Ture)和假(False)兩個值。
那么,在知道布爾型是什么之后,我們就可以引申出布爾盲注是什么:當(dāng)你使用布爾盲注時,運用特定的SQL語句,猜測表,列,字段的長度以及字符。當(dāng)你猜對了,頁面返回真,正?;仫@;當(dāng)你猜測錯誤,則返回假,還需要繼續(xù)猜測。
很懵對不對,那么我來講個故事,幫助你理解?;蛟S你小時候玩過一個游戲,叫做“是不是”,一個人講述一半的故事,你可以問這個故事的講訴者一些問題,她會告訴你是或者不是,最后,由你來猜出整個故事的走向。布爾盲注就是這個道理,在這里,你是攻擊者,而服務(wù)器就相當(dāng)于這里故事的講訴者,這樣講就清楚很多了吧。
布爾盲注往往適用于網(wǎng)站不支持聯(lián)合查詢,或者沒有回顯的情況下。
好了,到這里,我們就可以進(jìn)行實戰(zhàn)了,這一篇,我們使用sqlmap這個自動化SQL注入工具。我們的靶場是墨者學(xué)院SQL漏洞測試-Bool盲注。
好的我們進(jìn)入靶場,看到了靶場是一個網(wǎng)站的后臺,那么我們的目標(biāo)就是爆破這個網(wǎng)站后臺,拿到管理員賬號密碼進(jìn)入后臺。我們還可以看到在登陸框下面有一個公告,我們進(jìn)入看一下。

很好,熟悉的SQL注入味道,我們看一下這個:.php?id=1,熟悉吧。我們來測試一下是否可以進(jìn)行注入,我們先傳入 and 1=2,讓網(wǎng)站報錯。

網(wǎng)站返回錯誤了,那么,我們再試試傳入and 1=1,看看網(wǎng)站能否正?;仫@。

網(wǎng)站正?;仫@,由此我們可以斷定這里存在SQL注入漏洞,我們的and 1=1 和 and 1=2 被拼接到了服務(wù)器SQL服務(wù)器中。

那么我們用sqlmap對這個網(wǎng)站做一個測試,在sqlmap中輸入以下命令獲取當(dāng)前數(shù)據(jù)庫名稱。
sqlmap -u "http:/124.70.71.251:48793/new_list.php?id=1" --current-db

我們看最后的返回結(jié)果,看到了當(dāng)前數(shù)據(jù)庫名稱為stormgroup。
那么我們繼續(xù)來猜表。
輸入sqlmap -u "http:/124.70.71.251:48793/new_list.php?id=1" -D stormgroup --tables

在這里,sqlmap查詢到了這個庫中有兩張表,我們先選擇member表,看看里面的列有沒有我們想要的賬號密碼。
輸入sqlmap -u "http:/124.70.71.251:48793/new_list.php?id=1" -D stormgroup -T member?--columns

漂亮,得來全不費工夫,我們看到了name和password列,接下來,我們的目的就是爆出這兩個列中的內(nèi)容
輸入:sqlmap -u "http:/124.70.71.251:48793/new_list.php?id=1" -D stromgroup -T member -C name,password --dump

好的爆出來了,賬號是mozhe,但是密碼為什么這么長呢?這里返回的是md5加密后的密碼,可不要傻傻的直接當(dāng)成密碼輸入了。我們?nèi)ビ胢d5解密工具解密一下

我們知道了密碼是034655,我們?nèi)ゾW(wǎng)站后臺登陸一下試試。

好的我們成功登陸了后臺,順利拿到key,靶場到此通關(guān)。
觀看本教程需要有一定的sqlmap基礎(chǔ)操作知識以及sql注入的基本認(rèn)識。此次我們用工具進(jìn)行注入,接下來的教程我會去講一下手工盲注。
如果發(fā)現(xiàn)本教程存在問題,請及時指出,我們大家相互學(xué)習(xí),共同進(jìn)步。