==基於從伺服器接收到的響應==
1. 基於錯誤的sql注入
2. 聯合查詢的型別,基於union
3. 堆查詢注射,用分號連線兩個sql語句
4. sql 盲注,就是當網頁並不將執行sql語句的結果輸出,但是將sql語句執行了,這種sql注入稱為盲注,盲注分為:基於布林 sql 盲注,基於時間的 sql 盲注,基於報錯的 sql 盲注,
基於時間的盲注:通過mysql的函式sleep(time),根據時間延遲來判斷提交的sql語句是否被執行。
基於布林的盲注:通過and或者or然後在後面產生乙個條件來通過頁面是否正常顯示來判斷注入的語句是否執行。==基於如何處理輸入的 sql ====基於錯誤的盲注:使用group by 對一些rand()函式進行操作時會返回duplicate key 錯誤,而這個錯誤將會披露關鍵資訊.
1. 字元型
2. 數字型
這兩個主要是因為考慮到字串的閉合問題,如果是字元型需要用單引號來閉合.
3.搜尋型 比如拼接的語句是這樣」select * from users where username like 「+na
me+」
查詢已 _name(變數)開頭的username
==基於注入點的位置上的==
1. 通過使用者輸入的表單域的注射
- [ 比如說登入頁面,使用者名稱和password存在注入,就直接可以構造語句繞過登入認證]
通過 cookie 注射
通過http頭
1.變數接受
$_get 接受get傳遞
$_post接受post傳遞
$_cookie接受cookie傳遞
$_request 全部接受
帶入資料庫查詢執行
不存在過濾(可嘗試繞過)
mysql5.0以上自帶資料庫:information_schema:儲存mysql下所有資訊的資料庫(資料庫名,表名,列名)
information_schema.schemata表:提供了當前mysql例項中所有資料庫的資訊。是show databases的結果取之此表。
tables表:提供了關於資料庫中的表的資訊(包括檢視)。詳細表述了某個表屬於哪個schema,表型別,表引擎,建立時間等資訊。是show tables from schemaname的結果取之此表。
欄位名介紹table_schema
資料表所屬的資料庫名
table_name
表名稱column_name
列名稱
4. columns表:提供了表中的列資訊。詳細表述了某張表的所有列以及每個列的資訊。是show columns from schemaname.tablename的結果取之此表。
函式功能
database()
資料庫名,當前使用的資料庫
user()
資料庫使用者,判斷是否是root最高許可權(讀寫檔案的許可權)
version()
資料庫版本,mysql5.0以上自帶資料庫information_schema
@@version_compile_os
作業系統,windows搭建的對大小寫不敏感,linux下一定要注意大小寫
@@datadir
資料庫路徑
WEB安全 SQL注入
sql注入 or 1 例如 select form table1 where name param 一般param是從頁面輸入控制項傳遞來的資料 如果你在控制項中輸入 or 1 1 那麼他將查詢所有的資料出來 表示後面的都被注釋掉了 你還可以 drop table table1 那麼他將刪除該錶,其...
web安全 sql注入
所謂sql注入,就是通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。具體來說,它是利用現有應用程式,將 惡意的 sql命令注入到後台資料庫引擎執行的能力,它可以通過在web表單中輸入 惡意 sql語句得到乙個存在安全漏洞的 上的資料庫,...
web安全SQL注入原理
sql注入即isql injection,是指攻擊者通過注入惡意的sql命令,破壞sql查詢語句的結構,從而達到執行惡意sql語句的目的。sql注入漏洞的危害是巨大的,常常會導致整個資料庫被 脫褲 儘管如此,sql注入仍是現在最常見的web漏洞之一。sql注入攻擊可以手工進行,也可以通過sql注入攻...