Less-8(GET-Blind-Boolean Based-Single Quotes)
打開Less-8頁面,可以看到頁面中間有一句Please input the ID as parameter with numeric value,那么先使用ID這個引數通過GET方式傳入一個數值,

確定注入點
注入陳述句:?id=1,可以看出沒有回顯查詢結果,

接著試一下?id=1',發現出錯了,但是并不回顯錯誤,,

根據本關的名字知道SQL陳述句使用單引號閉合,嘗試使用單引號閉合注釋看是否成功,注入陳述句:?id=1' --+

接著使用注入陳述句?id=1' and 1=1 --+和?id=1' and 1=2 --+確定是否存在注入點:

發現前一條注入陳述句正常,后一條注入陳述句報錯,由此表明此處確實存在注入點,對于前端頁面只能顯示成功與失敗的情況,可以考慮使用布爾型盲注,
確定資料庫名
注入陳述句:?id=1' and length((select database()))>5 --+,length()函式會回傳括號內的字串長度,例如length('abc')回傳3,表示字串長度為3,這樣上述陳述句就變成了查詢當前資料表是否存在id為1并且當前資料庫名長度是否大于5,而我們知道當前資料庫存在id為1的用戶,那么整個注入陳述句就可以直接用來判斷當前資料庫名的長度是否大于5,

從上圖中可以看出資料庫名的長度是大于5的,接著判斷是否當前資料庫名是否小于10,使用:?id=1' and length((select database()))<10 --+,通過這種方式最終可以得出,當前資料庫名長度為8,

下一步判斷資料庫名是什么,使用注入陳述句:?id=1' and substring((select database()),1,1)<'z' --+判斷當前資料庫名的第一個字符是否小于z,接著通過二分法不斷猜解,得出當前資料庫名第一個字符為s,通過此方法最終可以猜解出當前資料庫名,接下來的表名、列名、用戶名、密碼都可以使用此方法猜解得出,其中使用到的注入陳述句可以參考Less-1,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/505519.html
標籤:其他
上一篇:路由器
下一篇:無線喚醒在灌溉系統上的應用
