天天看點

服務端安全性測試1、sql注入

1、sql注入

通過把SQL指令插入到Web表單遞交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL指令。

(1)利用sql中的and和or的邏輯關系,繞過漏洞。如:

輸入書名{title},查詢使用者資訊的sql。如果輸入 天龍八部' or '1' = '1,那麼sql如下:

select * from table_name where title = '{title}'
==>
select * from table_name where title = '天龍八部' or '1' = '1' 
           

如下圖,會查出所有的資訊。

服務端安全性測試1、sql注入

(2)猜資料庫表名或列名

猜表名

and (select count(*) from 表名)<>0

猜列名

and (select count(列名) from 表名)<>0

或者也可以這樣

and exists (select * from 表名)

and exists (select 列名 from 表名)

如果存在,and 後面的條件=True,會傳回查詢結果,就相當于存在該表名、或列名。

猜錯列名的情況:

服務端安全性測試1、sql注入

猜對列名的情況:

服務端安全性測試1、sql注入