バイパスGoogleのXSSチャレンジ
前提条件
始める前に、XSSに精通しなければならないか、少なくともそれについての考えがあるべきです.ここでは、XSSとは何かを理解するために読むことができる良い記事です.Read !
また、読者は少なくともJavaScriptに精通していると仮定します.そうでないならば、私はJSと若干の時間を過ごして、基本と快適になることを提案します.あなたはjavascript.info and MDN これは非常に有用です.
ブレイク
よく、我々はすでにGoogle XSS挑戦を解決しました、そして、私が私が最初にこの挑戦を試みたとき、私がかなり基本的なものを共有したかったです.私はあなたがそれを解決せずにすべてのレベルをバイパスすることができますと言う場合はどうですか?
私はそれが良いではないが知っている!それは不正行為としてカウントされませんので、我々はすでにゲームを解決した.その超簡単ですが、このポストは、アプリケーションの作業を理解する方法を理解し、どのようにアプリケーションの弱さを探すのに役立ちます.
イントロページでは、チャレンジを開始するhttps://xss-game.appspot.com 次のように表示できます.
Is it possible to cheat at this game?
Yes, since this is a browser-based game, you will be able to cheat by messing with the page internals in developer tools or editing HTTP traffic. However, we're sure that you won't have to resort to that -- there are hints and source to guide you. And as your teacher once told you: you would only be cheating yourself ;-)
あなたがしなければならないすべては、このゲームは、ゲームの進行状況を検証する方法を理解しています.
あなたはレベル1のそのURLに気づくでしょう
xss-game.appspot.com/level1
そして、レベル2のそれはそうですxss-game.appspot.com/level2
. クールならxss-game.appspot.com/level3
それはレベル3には、私たちをリードする必要があります!次のメッセージを得るBased on your browser cookies it seems like you haven't passed the previous level of the game. Please go back to the previous level and complete the challenge.
サイトのように私たちがクリアしたレベルを追跡しているようです
cookies
そして、あなたが行くならばapplication > cookies
あなたはクッキーがHttpOnly これらのクッキーはクライアント側から変更できません.周りの方法を見つける必要があります.NOTE: well if you add
/frame/
after URL or each level then the cookie message doesn't seem to appear. Ex-xss-game.appspot.com/level1/frame/
and so on, however I am not sure whether progress will be tracked or not.
レベル1では、devのツールを開き、
source > frame
探してgame-frame.js
.ここでの良いことは何が起こっているかをかなり明確ですが、説明のために、8行目のブレークポイントを設定し、ペイロードを設定しましょう
<script>alert("test")</script>
を返します.ゲームフレームを破壊する.js
6行目からアラートを実行すると
iframe
その後、警告は抑制されますが、警告のテキスト内容は引数として渡されますs
を呼び出す.8行目はこちら
parent
Windowプロパティは、現在のウィンドウの親ウィンドウ(この場合、IFrame)を返す.だから、警告メッセージを外部のウィンドウに送信されているparent.PostMessage
.10行目の警告テキストコンテンツはいくつかの余分な文字列で連結され、タイムアウトは50 msに設定されます.
GIFでもデバッガがゲームに連れて行くのを見ることができます.からのメッセージを聞くJS
iframe
JavaScriptに精通している場合は、いくつかのことを理解することができます.概要:iframeからアラートを開く必要があるレベルをクリアするには
以下のコードは、私が思い付いたコードです
function bypass_level(){
iframe=document.getElementsByClassName('game-frame')[0].contentWindow.document;
bypass=document.createElement('script');
bypass.textContent="alert(/level bypassed/)";
iframe.head.appendChild(bypass)
}
window.onload=function(){
bypass_level();
}
iframe
そして、それは内部です.script
要素とスクリプトの内容をalert(/level bypassed/)
script
中で要素head
のiframe
コンテンツ.ちょうど6回のクリックで我々は全体の課題をクリアしました.
正直に、我々はコードのこの多くさえ必要としません.我々がトップからiframeに開発ツールの範囲を変えるならば、コンソールで警報権利を実行してください、そして、それは働きます.
冗談は別として、私はレベルもバイパスする他の方法があると信じています.それらを見つけるし、コメントでそれらを言及してください.私は最初に、アプリケーションの作業を理解し、このポストに来るが、最後にそれはあなたの選択のすべてのレベルを解決することをお勧めします.
お気軽にポストの間違いを指摘したり、改善を提案します.もともと投稿souvikinator.netlify.app そして、最終的に、ここで他のブログ柱を移住させてください.
🥳 それで、引用でポストを包む時間です
“If you cheat, you would only be cheating yourself” – literally every teacher in the world 🤣
Reference
この問題について(バイパスGoogleのXSSチャレンジ), 我々は、より多くの情報をここで見つけました https://dev.to/souvikinator/bypassing-google-xss-challenge-181lテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol