下面開始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關結束
該文章有參考了以下的網頁: