with no defenses. https://portswigger.net/web-security/csrf/lab-no-defenses ※注意: Solution, Community solutionsは開かないようにしてください。 💡ヒント • まずはメールアドレス変更のリクエストを探してみましょう。 • 攻撃サイトでユーザーは操作を行いません。ユーザーがアクセスした瞬間にリクエストが送信され るようにしてください。 • スクリプトが完成したら「Deliver exploit to victim」をクリックするのを忘れずに・ 45 分かりにくいですが、画面上部のGo to exploit serverからHTMLが 作成できます。
string with angle brackets HTML encoded. https://portswigger.net/web-security/cross-site-scripting/contexts/lab-javascript-string-angle-brackets-html-encoded
vulnerability in WHERE clause allowing retrieval of hidden data. https://portswigger.net/web-security/sql-injection/lab-retrieve-hidden-data 💡 ヒント • ソースコードの内部では受け取ったパラメータからどのようにクエリを作成するのか想像してみま しょう。
= `SELECT * FROM products WHERE category_name = '${category}' AND release = 1`; db.query(sql); db.close(); 以下のようなスクリプトが組まれているのではないか、と推 測できる。 categoryに’+OR+1=1+--に書き換えてリクエストすると以 下のクエリが発行される。(+はスペースの代わり) SELECT * FROM products WHERE categories = '' OR 1=1 --' AND release = 1
injection UNION attack, retrieving data from other tables. https://portswigger.net/web-security/sql-injection/union-attacks/lab-retrieve-data-from-other-tables 💡ヒント • まず、ユーザーから受け取った値でクエリを生成している箇所を見つけてください。 • そのクエリを利用してusersテーブルからデータを取得する方法を考えてください。(UNION) ◦ 脆弱性のあるクエリのカラム数を探索してみてください。 ◦ カラム数が特定できたらカラムのデータ型を探索してみてください。 ◦ カラム数とデータ型が特定できたらusersテーブルと結合してみてください。
SQL injection UNION attack, retrieving data from other tables. https://portswigger.net/web-security/sql-injection/union-attacks/lab-retrieve-data-from-other-tables