Sql Injection
SQL 基本語法
1 | SELECT 欄位 FROM 表格 |
Authrization Bypass
PHP
1 | $user = $_GET[key=value] |
在登陸介面 name 輸入 ' or 1=1 --
, password隨便輸
符號 | 功能 |
---|---|
’ | stop |
1 | ?catogority=.... 這是向DB 輸 SQL指令 |
Union SQL injection
確認有幾個欄位
1 | UNION SELECT NULL -- |
確定是不是字串
1 | UNION SELECT 'a' NULL NULL |
查看有什麼資料
1 | information_schema.schemata |
EX: 取得某網站管理員帳號
1 | 'UNION SELECT 'a', 'a' -- |
預防
- 黑名單
拒絕含有SQL關鍵字輸入 (駭客總有方法進入, ex: 正則化…) - 白名單
只允許特定字加入SQL - 參數化查詢
最有效防止
先編譯完再將查詢參數填入(參數不會被當作執行語法)
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 OPH BLOG!
評論
ValineDisqus