SQL injection
https://ithelp.ithome.com.tw/m/articles/10240102 常見的 SQL injection 類型 查詢隱藏的數據 修改 SQL 語法來查詢資料庫的其他資料。 影響應用程式邏輯 修改 SQL 語法來影響應用程式的邏輯。 UNION 攻擊 修改 SQL 語法來查詢其他資料庫表的資料。 檢查資料庫 修改 SQL 語法來查詢資料庫版本與架構。 盲SQL注入 修改 SQL與法但結果不會直接回傳在頁面。 假設一個購物商場透過 URL 對伺服器請求,查詢類別為 Gifts https://feifei.tw/products?category=Gifts 參數 category 的內容會傳到後端並進行 SQL語法的查詢 SELECT * FROM products WHERE category = 'Gifts' AND released = 1 此 SQL 語法的內容為 選擇所有欄位名稱 從資料表 products category 欄位為 Gifts 且 released 發布狀態為 1 (已發布) SQL 註解為 -- 我們可以嘗試將 AND released = 1 透過 -- 註解 https://feifei.tw/products?category=Gifts'+OR+1=1-- +在網址列為 %20 表示空白的意思 SQL語法的查詢 SELECT * FROM products WHERE category = 'Gifts' OR 1=1--' AND released = 1 LAB 連結 不同資料庫的註解方法 影響應用程式邏輯 假設一個可以利用帳號密碼登入的系統,輸入帳號密碼後 SQL 語句 SELECT * FROM users WHERE username = 'wiener' AND password = 'bluecheese' SELECT * FROM users WHERE username = 'administrator'--' AND password = ''