sqli-labs Basic Challenges Less 13-14

Less 13  POST - Double Injection - Single quotes- String - with twist

從題目來看,這一關是變型的單引號字符型雙查詢注入,而且參數傳遞方式是post。

這裏分別用四種報錯方法一一注入嘗試。首先填寫用戶名和密碼看看頁面的顯示效果

這是隨便用一個用戶名和密碼測試登錄的顯示

這是用正確的用戶名和密碼登錄顯示的頁面

從頁面響應的對比來看,都是沒有什麼顯示位的,只不過是畫面效果不一樣而已。這樣的話前面根據顯示位來注入顯示數據的方法肯定是行不通了,那就只剩下用報錯注入或者盲注來達到效果了。這一關只考慮報錯注入。

在注入之前先判斷出查詢語句的結構

在uname參數後面添加單引號測試

返回錯誤是Dumb') LIMIT 0,1

說明多了一個單引號而且參數還有()包裹,再繼續用Dumb') #測試

這裏響應頁面中的圖片是flag.jpg,這是登錄成功才返回的圖片。說明sql查詢語句已經閉合成功了。接下來就是報錯注入了。

1、floor()函數和rand()函數

先查詢當前的用戶名

再查詢當前數據庫

省略中間的步驟,最後列出用戶名和密碼數據

2、extractvalue()函數

先獲取當前數據庫用戶名

再獲取當前數據庫名

直接列出用戶名和密碼數據

3、updatexml()函數

首先獲取當前數據庫用戶名

然後獲取當前數據庫名

直接列出用戶名和密碼數據

4、exp()函數

首先獲取當前數據庫用戶名

然後獲取當前數據庫名

直接列出用戶名和密碼數據

 

Less 14  POST - Double Injection - Single quotes- String - with twist

從題目來看,這一關同上一關似乎是一樣的。

先判斷sql語句的結構,添加單引號測試

發現沒有登錄成功,也沒有任何報錯。猜測參數使用雙引號包裹的,添加雙引號測試

根據頁面報錯信息來看,就是多了一個雙引號。所以可以判斷sql查詢語句中參數就是用雙引號包裹的,這一點跟上一關不太一樣。閉合語句再次測試觀察響應

可以看到成功登陸了,說明語句閉合有效。接下來的注入流程就跟上面是一樣的了。

當然這裏不僅僅可以用報錯注入,基於時間的盲注以及其他類型的注入也是可以進行嘗試的,比如:

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