sql注入整理

2021-06-16 20:40:41 字數 952 閱讀 2106

推薦:sql注入攻防入門  

sql注入 工具  

scott guthrie 就提到了5點來防範:

1) 在構造動態sql語句時,一定要使用類安全(type-safe)的引數加碼機制。(也就是引數化)

2) 在部署你的應用前,始終要做安全審評(security review)。

3) 千萬別把敏感性資料在資料庫裡以明文存放。

4) 確認你編寫了自動化的單元測試,來特別校驗你的資料訪問層和應用程式不受sql注入攻擊。

5) 鎖定你的資料庫的安全,只給訪問資料庫的web應用功能所需的最低的許可權。

「sql注入天書」作者自己提供的終極防範方案就是 replace("'","''")。並且在引數前後加單引號。也可防止16進製制注入

select * from table1 where id=1;(declare @d varchar(8000) set @d=0x27eeadf...)

我們用單引號替換法修改後最終執行的sql如下:

select * from table1 where id=『1;(declare @d varchar(8000) set @d=0x27eeadf...;)』

可以看到1;(declare @d varchar(8000) set@d=0x27eeadf...;) 被當做字串處理,而不會被解析

當然這個過程中沒有替換單引號。 如果declare 後面有單引號的話 還要把單引號替換成兩個單引號(不替換的話會有被截斷、注入的可能),比如:

select * from table1 where id=1;(declare @d varchar(8000) set @d=『eee』)

我們用單引號替換法修改後最終執行的sql如下:

select * from table1 where id=『1;(declare @d varchar(8000) set @d=''eee'')'

sql注入手段整理

注入產生原因 使用者引數中夾帶sql語句,未加識別就被帶入到後台資料庫查詢。相關知識點 mysql資料庫中有information schema庫,當中有表 1.schemata 儲存該使用者建立的所有資料庫庫名,欄位為 schema name 2.tables 儲存庫名和表名,欄位為 table ...

sql注入繞過整理(持續更新)

本文主要以mysql資料庫為例,說明 sql注入繞過 方法。資料庫查詢語句對大小寫是不敏感的,select 和 select 是定價的。例如union被過濾為空時,以 uniunionon替代語句中的union,被過濾 僅過濾一次 之後,得到union。例如遇到單引號過濾,可以將目標值轉化為十六進製...

基於錯誤回顯的sql注入整理

由於複習,停了好幾天,今天換換模式做了一下關於錯誤回顯的ctf題目,首先附上題目 here 0x00 關於錯誤回顯 用我自己的話來講,基於錯誤回顯的sql注入就是通過sql語句的矛盾性來使資料被回顯到頁面上 當然在實際應用中得能回顯在頁面上,一般的 都回避免這種情況,哈哈,要是能碰上你就偷著樂吧 0...