sql-lib闖關祕籍之11-20關 sql-lib闖關祕籍之1-10關

下面開始11-20關,之前不會的關卡可以參考我這篇文章: sql-lib闖關祕籍之1-10關

不管是第幾關,我們的最終目標是獲得用戶密碼,從而獲取最高權限!

以下的學習過程中如果遇到那裏不會的或者不清楚的地方,歡迎大家留言,我將盡力幫助大家~

11到21關的提交方式全是post型的,我這裏使用burpsuit抓包軟件,也可以用hackbar選中的post,下面的實驗我們穿插的使用(用hackbar的時候我們的註釋符號用#,不用--+,因爲--+會出錯)

第十一關

 從這一關開始,我們就進入到了POST注入的世界了。在接下來的幾關中我們將陸續介紹關於POST注入的方法以及技巧。

post是一種數據提交方式,它主要是指數據從客戶端提交到服務器端

首先我們發現他是單引號字符型注入

 判斷他有幾個顯示位,看來是兩個

 接下來我們使用聯合查詢語句 union select來進行爆破,使用 union select的時候要注意,輸入的uname必須是一個不存在的,否則將會輸出不出來

 

 首先獲取數據庫使用者名稱權限,版本

 獲取我們要爆的數據庫名

 獲得該數據庫中的表名

 獲得列名,因爲我們沒有指定數據庫,所以他把所有數據庫裏面的users表的列名全都列出來,加上and table_schema=database()就可以指定該數據庫,注意users旁邊要加引號,不加會出錯

 獲得用戶名密碼

 第十二關

和第十一關一樣,就是把單引號閉合換成雙引號變形閉合就可以啦  ‘---->”)

 

第十三關

 發現輸入完正確的輸入後,他不給我們回顯出來,說明這關是盲注了,就又和第五關一樣了,參考第五關。通過這關的名字我們可以判斷是單引號變形,就是‘)進行閉合

獲得數據庫名

 

最後獲得用戶名和密碼(中間跳了一個世紀的距離,不會的看我的上一篇文章很清晰的講述瞭如何到這步)和第五關基本一樣,不再贅述

 

 第十四關

和第十三關基本一樣就是把單引號變形變成雙引號,過程不再贅述,最後獲得用戶名和密碼(我這隻截圖了一種方法,共有三種方法)

 

 第十五關

這關題目是說時間延遲單引號盲注,那咱就用時間延遲吧,但是其實我發現用上一關的布爾盲注也是完全可以的

 獲取用戶名密碼

 第十六關

和第十五關基本一樣,區別就是把單引號閉合變成了雙引好括號閉合,沒有回顯位,用時間盲注

 時間盲注獲得用戶名

 布爾盲注獲得密碼(不是說時間盲注和布爾盲注組合才能得出,我是爲了證明兩種方法都可以解題)

 還有一種更快的方法,我們大費周章就是爲了獲得用戶名密碼。這種方法又叫做萬能密碼,就是我們即使不輸入密碼,用戶名只要寫成admin“)#這樣的形式就可以進去

 第十七關

這關有點意思啦,我上來先用萬能密碼嘗試發現不能,經過單引號,雙引號以及變形,我發現不管怎麼樣都沒有得出我們想要的結果

後來通過查網頁和看php文件,我發現這關對username做了很嚴格的過濾,對各種引號括號進行了轉義,判斷。但是它沒有對password進行過濾,所有我們來對password進行爆破

我不經意間發現,這一關好像對密碼沒有進行驗證,只要你用戶名對,密碼是什麼他都可以進去

 這關我試了試好像不能進行布爾盲注和時間盲注,可以試試報錯型注入

使用updatexml(),它和extractvaule()是親兄弟、

獲取版本(可有可無,就是爲了驗證這個方法是否可行)

 獲得庫名

獲得表名

 

 獲得列名

 獲取字段(額。。。這裏出現了問題,查詢了很多資料也沒有解決)總是出現這個錯誤You can't specify target table 'users' for update in FROM clause

 對於這個問題,網上有說套雙層select的,我試了下可以啦

 第十八關

這關是基於報錯注入,上一關沒有對password進行過濾,這關就進行過濾了,那怎麼辦呢?這關我們就要用burp抓包神器了(注意把瀏覽器設置成代理模式,抓包的網站不要用localhost,因爲我試了試發現不能)

 

 我們先輸入一個admin,admin,發送到repeater,這樣咱們就不用在瀏覽器上一直輸入了,簡單快捷,哈哈哈哈哈

 

我們把這句話換成我們想要的查詢語句就可以了(使用extractvalue進行)和第12關的語句基本一樣

 

 獲得數據庫名

 

 

 獲得數據庫表

 

 獲得數據庫列名

 

 獲得用戶名密碼(這裏只顯示了一部分密碼,當然可以用not in來看其他的密碼)

 

 第十九關

這一關一進去輸入賬戶密碼就發現有一個Referer的東西,我猜就是改變它的值,事實確實如此,和上一關基本一樣就是把agent換成了referer

獲得庫名(又是重複性動作了,和上一關一樣,我就不截圖那麼多了)

 

 獲得用戶名密碼

 

 第二十關

進來先輸入用戶名密碼,測試一下,發現是關於cookie值的進行注入,那我們就在這裏注入

 

 在這裏進行注入

 

還是那老一套,看加不加單引號,怎麼閉合,有幾個顯示位。最後發現是單引號閉合,有三個顯示位

 

 

獲得數據庫名

 

 

 

 獲得表名,獲得列名,獲得用戶名密碼,和第一關的payload一樣,不再演示了

11-20關結束

 

該文章有參考了以下的網頁:

sqli-lab教程——1-35通關Writeup

SQL注入靶場sqli-labs 1-65關全部通關教程

sqli-labs (less11-less14)

sqli-labs ————less -11(POST注入)

重闖Sqli-labs關卡第三天(11-15關)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章