WEBGOAT
Hello there, ('ω')ノ 本日もKali Linuxで心が折れる一日で。 updateのエラーが解決できず。 久しぶりに本日はあきらめることに。 これまでCRLFに関するHTTPリクエストヘッダインジェクションがなかったもので。 WebGoatを起動して、HTTP Splittingを選択し…
Hello there, ('ω')ノ 強制的なブラウジングについて。 上記のページにアクセスしたらリクエストをIntruderへ送信して。 とりあえずは、ファイルとディレクトリを見つけようかと。 URLでファイル名を選択し、[追加]ボタンを使用してペイロードを配置します。…
Hello there, ('ω')ノ Larryでログインするためには、下記のパスワードが必要で。 パスワード:larry 一応、プロファイルを見ることに。 これがLarryのプロファイルで。 一つ画面を戻って。 再度、プロファイルを見る際にBurp Suiteでリクエストをインターセ…
Hello there, ('ω')ノ ORDER BYフィールドを介してSQLインジェクションを実行してとのことで。 webgoat-prdサーバのIPアドレスを見つけて。 完全なIPアドレスは時間がかかるので、最後の部分はxxx.130.219.202ということで。 SQLインジェクションに対して脆…
Hello there, ('ω')ノ usersテーブルからすべてのユーザを取得してとのこと。 101を使用して1人のユーザのデータを表示できるとかで。 さっそく入力してみると。 すべてのユーザを取得する必要があるので、下記を入力してクリアできた。 101 or 1=1 -- Best …
Hello there, ('ω')ノ WebGOATのSQL Injection⑦を選択して。 コード内のクエリは、文字列を連結して動的クエリを作成するとか。 そして、SQLインジェクションの影響を受けやすくしていると。 "select * from users where LAST_NAME = ‘" + userName + "'"; u…
Hello there, ('ω')ノ 開発者が考えていなかったデータ形式を受け入れることができる場合があるとか。 なので、JSONエンドポイントがXXE攻撃に対して脆弱になる可能性があって。 再度、XMLインジェクションを実行してとのことで。 まずは、リクエストの内容…
Hello there, ('ω')ノ WebGOATでXXE⓷を選択して。 フォームに送信するときに、コメントフィールドにXXEインジェクションを実行して。 ファイルシステムのルートディレクトリをリストしてみてくださいと。 まずは、動作確認を。 Burp Suiteでリクエストを確認…
Hello there, ('ω')ノ WebGOATでSQL Injection (advanced)⓷を選択して。 まずは、よくあるパターンで下記を入力して動作確認を。 ' 下記のSQL文を発行すると情報を得ることができて。 a'; select * from user_system_data; -- 得られた情報からパスワードを…
Hello there, ('ω')ノ まだ投票できるかとのことで。 星マークを選択して反応を見るとエラー表示が。 投票するにはログインが必要とのことで。 まずは、リクエストをリピータに送って。 リピータで、レスポンスのコメントが画面と一致することが確認できて。…
Hello there, ('ω')ノ WebGOATでHTML tampering②を選択して。 1台以上のテレビを低価格で購入してとのこと。 まずは、通常の動作を確認して。 Burp Suiteで数量と価格を変更して。 画面上の数値は変ってませんが、うまく買えたようで。 Best regards, (^^ゞ
Hello there, ('ω')ノ WebGOATでClient side filtering⓷を選択して。 コードを知っていれば、支払う必要はないとか。 まずは、適当にクーポンコードを入力してリクエストを拝見してみると。 http://192.168.1.54:8000/WebGoat/clientSideFiltering/challenge…
Hello there, ('ω')ノ WebGOATのClient side filtering②を選択して。 CEOのNevilleを除く、会社の情報のすべての人にアクセスできると。 ページのコンテンツを調べて、見つけなさいとのことで。 プルダウンメニューには、当然みつけることができなくて。 HTM…
Hello there, ('ω')ノ たいてい、ユーザが変更した値をサーバに送信しないメカニズムがあって。 一般的なブラウザのほとんどは、実行時にスクリプトを編集できず。 別の方法で回避する必要があるとか。 このようなケースだと、Burp Suiteのインターセプトを…
Hello there, ('ω')ノ java関連の演習は時間がかかるので、気分転換に。 WebGOATのBypass front-end restrictions②を選択して。 フィールドの制限らしく。 これは非常に簡単で。 F12ボタンでHTMLの要素を書き換えればよいだけかと。 クリアできた。 Best reg…
Hello there, ('ω')ノ WebGOATでJWT tokens⑦を選択して。 下記のようなログファイルがあるとのことで。 ログから本を注文する方法を見つけることのこと。 ログの内容から無効なトークンらしきものを発見したので。 下記のサイトで検証すると。 ちなみにCheck…
Hello there, ('ω')ノ WebGOATでJWT tokens⑤を選択して。 SHA-2機能を備えたHMACでは、秘密鍵を使用してトークンに署名しての検証で。 キーがわかったら、新しいトークンを作成して署名できるので。 キーが強力なので、ブルートフォースや辞書攻撃を実行でき…
Hello there, ('ω')ノ WebGOATのJWT tokens④を選択して。 重要なステップの1つとしてアクションを実行する前に署名を検証することで。 トークンを変更して管理者になるようにだとか。 管理者になったら投票をリセットしてと。 動作を確認してみるとguest以外…
Hello there, ('ω')ノ WebGOATのAuthentication Bypassesを選択して。 どうやら2段階認証のようで。 プロバイダが認識しない場所かデバイスからパスワードをリセットしているとか。 なので、設定したセキュリティの質問に答える必要があって。 さらにこれら…
Hello there, ('ω')ノ WebGOATのCSRF⑧を選択して、実行すると下記のメッセージが。 『webgoatとしてログインしているときにボタンをクリックしていいます』 ここでは、WebGoatがログインのCSRF攻撃に対しても脆弱かどうかを確認して。 まずは、下記のように…
Hello there, ('ω')ノ content-typeに依存することが、CSRFに対する防御ではないのがわかって。 次にCSRFに対して保護されていないAPIに対してCSRF攻撃を実行できるかを。 今回は、エンドポイントに次のJSONメッセージをPOSTする必要がありとのことで。 POST…
Hello there, ('ω')ノ 他の場所から送信する必要があるとのことで。 CSRF攻撃を実行する場所を見つけることがポイントのようで。 典型的な例だと、他人の銀行口座での送金らしく。 この場合だと、ログインしているユーザに代わって。 レビューの送信をトリガ…
Hello there, ('ω')ノ WebGOATのCSRFで⓷を選択して。 外部ソースからフォームをトリガーするとか。 そのレスポンスには、数値が含まれているとのことで。 なぜだか、ボタン名が日本になっていますが。 送信ボタンを押して。 別タブに下記が表示されると。 数…
Hello there, ('ω')ノ Log inボタンで、別ユーザのログイン資格情報を含むリクエストを送信して。 その資格情報を下のフィールドに書き込んで、送信して確認しなさいと。 パケットスニファで傍受してみてとのことで。 ふつうにLog inボタンを押したときのPOS…
Hello there, ('ω')ノ WebGOATのMissing Function Level Access Controlの②を選択して。 下記は、UIが公開していない機能を見つけるためのヒントで。 HTMLまたはJavaScriptのコメント 要素をコメント化 CSSコントロール/クラスによって非表示にされたアイテ…
Hello there, ('ω')ノ WebGOATのIDOR⇨⑤を選択すると。 自分のプロファイルを表示するパスを使用して、他の人のプロファイルを表示して。 View Profileボタンで、リクエストをインターセプトして変更して。 他人のプロファイルを表示するとか。 というわけで…
Hello there, ('ω')ノ まずは、正当な認証から始めましょうとのことで。 あきらかに安全でないIDとパスワードを入力して。 user:tom pass:cat 次にView Profileボタンを押すと3つの属性がプロファイルに表示されて。 レスポンスデータで画面に表示されな…
Hello there, ('ω')ノ WebGOATのXSS⇨⑪を選択して。 なにやらWebGOAT内部にある下記の関数を実行せよとのことで。 しかもURLでと。 webgoat.customjs.phoneHome() 下記の通り、URLのパラメータで指定して実行することに。 /WebGoat/start.mvc#test/<script>webgoat.cu…
Hello there, ('ω')ノ WebGOATのXSS⇨⑩を選択して。 DOMベースのXSSの可能性を特定するということで。 DOMベースのXSSは、クライアント側のコードでルート構成を探すことで。 この例だとtestコードを探しなさいとのことで。 下記のURLで。 /WebGoat/start.mvc…
Hello there, ('ω')ノ WebGOATのXSS⇨⑦を選択して。 正常動作を確認するために各ボタンを押してみると。 下部のほうには、クレジットカードに請求される合計金額が表示されるようで。 説明には、下記のペイロードを使うように書いてあるので。 各テキストボッ…