之前兩篇文章所說的SQL注入手段均是在服務器層面是root權限,而現實的滲透測試過程中,很多都是無權讀取information_schema庫,並且很多拒絕聯合訪問Union和order by語句。遇到這些問題時候,就需要我們去爆破猜測一些數據庫字開發邏輯,對一些列,表,內容進行猜測
-
猜測某個列


猜測abc這個列是否存在,網頁提示:


說明我們所使用的猜測sql語句可以用,剩下的即為猜測過程
很多集成化工具中都有猜測某列的字典文件
在kali中利用find /-name*column*.txt進行查詢

但是在字典文件中有#開頭的行

我們需要將警號開頭的行去除調,並保存到一個新的字典文件

回到burp里面,將我們要測試的列名稱變量進行選取

將剛剛生產的文件加載進來

pis:將這里去掉


接着點擊菜單欄Intruder進行爆破,根據觀察列的長度,從而判斷4643長度的列是服務器存在

-
猜測表名
如果我們以及猜出列,基於列名我們可以猜測其表名,'and table.user is null--+ 這里的user列是我們已猜測出來的,table則是我們猜測的表名

測試完之后顯示沒有找到table.user這個表名,但是說明table這個字段是可以進行爆破

#號處理:cat /usr/share/golismero/tools/sqlmap/txt/common-tables.txt | grep -v ^# >table.txt
然后對table字段進行爆破

基於這個原則逐級對數據庫進行爆破
還有一種猜測其他表名稱的方法
' and (select count(*) from abc)>0--+

同樣用Burp爆破方法進行猜測表名
-
猜測表中的字段:

or表示一真則真,這里注意引號閉合即可
還有一種方式,可以進行模糊查詢

%號表示模糊查詢,用%將要查詢的字段包含起來,like語句進行查詢
-
猜測密碼:
思路:已經猜測出來賬號,可以進而猜測密碼,猜測密碼時候可以通過密碼的MD5值進行猜測,擦測語句:
' or user='admin' and password= ' MD5
用or表示一真則真,說明后面的user和password都要為真,所以user和password連接部分必須為and