Shikata Ga Nai

Private? There is no such things.

WEBGOAT

WebGoatでHTTP Splittingをやってみた

Hello there, ('ω')ノ 本日もKali Linuxで心が折れる一日で。 updateのエラーが解決できず。 久しぶりに本日はあきらめることに。 これまでCRLFに関するHTTPリクエストヘッダインジェクションがなかったもので。 WebGoatを起動して、HTTP Splittingを選択し…

WebGoatでFoced Browsingをやってみた

Hello there, ('ω')ノ 強制的なブラウジングについて。 上記のページにアクセスしたらリクエストをIntruderへ送信して。 とりあえずは、ファイルとディレクトリを見つけようかと。 URLでファイル名を選択し、[追加]ボタンを使用してペイロードを配置します。…

WebGoatのBypass Business Layer Access Controlをやってみた

Hello there, ('ω')ノ Larryでログインするためには、下記のパスワードが必要で。 パスワード:larry 一応、プロファイルを見ることに。 これがLarryのプロファイルで。 一つ画面を戻って。 再度、プロファイルを見る際にBurp Suiteでリクエストをインターセ…

WebGOATでSQL Injection (mitigation)⑧を演習してみた

Hello there, ('ω')ノ ORDER BYフィールドを介してSQLインジェクションを実行してとのことで。 webgoat-prdサーバのIPアドレスを見つけて。 完全なIPアドレスは時間がかかるので、最後の部分はxxx.130.219.202ということで。 SQLインジェクションに対して脆…

WebGOATでSQL Injection⑧を演習してみた

Hello there, ('ω')ノ usersテーブルからすべてのユーザを取得してとのこと。 101を使用して1人のユーザのデータを表示できるとかで。 さっそく入力してみると。 すべてのユーザを取得する必要があるので、下記を入力してクリアできた。 101 or 1=1 -- Best …

WebGOATのSQL Injection⑦を演習してみた

Hello there, ('ω')ノ WebGOATのSQL Injection⑦を選択して。 コード内のクエリは、文字列を連結して動的クエリを作成するとか。 そして、SQLインジェクションの影響を受けやすくしていると。 "select * from users where LAST_NAME = ‘" + userName + "'"; u…

WebGOATでXXE④を演習してみた

Hello there, ('ω')ノ 開発者が考えていなかったデータ形式を受け入れることができる場合があるとか。 なので、JSONエンドポイントがXXE攻撃に対して脆弱になる可能性があって。 再度、XMLインジェクションを実行してとのことで。 まずは、リクエストの内容…

WebGOATでXXE⓷を演習してみた

Hello there, ('ω')ノ WebGOATでXXE⓷を選択して。 フォームに送信するときに、コメントフィールドにXXEインジェクションを実行して。 ファイルシステムのルートディレクトリをリストしてみてくださいと。 まずは、動作確認を。 Burp Suiteでリクエストを確認…

WebGOATでSQL Injection (advanced)⓷を演習してみた

Hello there, ('ω')ノ WebGOATでSQL Injection (advanced)⓷を選択して。 まずは、よくあるパターンで下記を入力して動作確認を。 ' 下記のSQL文を発行すると情報を得ることができて。 a'; select * from user_system_data; -- 得られた情報からパスワードを…

WebGOATでWithout accountを演習してみた

Hello there, ('ω')ノ まだ投票できるかとのことで。 星マークを選択して反応を見るとエラー表示が。 投票するにはログインが必要とのことで。 まずは、リクエストをリピータに送って。 リピータで、レスポンスのコメントが画面と一致することが確認できて。…

WebGOATでHTML tampering②を演習してみた

Hello there, ('ω')ノ WebGOATでHTML tampering②を選択して。 1台以上のテレビを低価格で購入してとのこと。 まずは、通常の動作を確認して。 Burp Suiteで数量と価格を変更して。 画面上の数値は変ってませんが、うまく買えたようで。 Best regards, (^^ゞ

WebGOATでClient side filtering⓷を演習してみた

Hello there, ('ω')ノ WebGOATでClient side filtering⓷を選択して。 コードを知っていれば、支払う必要はないとか。 まずは、適当にクーポンコードを入力してリクエストを拝見してみると。 http://192.168.1.54:8000/WebGoat/clientSideFiltering/challenge…

WebGOATでClient side filtering②を演習してみた

Hello there, ('ω')ノ WebGOATのClient side filtering②を選択して。 CEOのNevilleを除く、会社の情報のすべての人にアクセスできると。 ページのコンテンツを調べて、見つけなさいとのことで。 プルダウンメニューには、当然みつけることができなくて。 HTM…

WebGOATでBypass front-end restrictions⓷を演習してみた

Hello there, ('ω')ノ たいてい、ユーザが変更した値をサーバに送信しないメカニズムがあって。 一般的なブラウザのほとんどは、実行時にスクリプトを編集できず。 別の方法で回避する必要があるとか。 このようなケースだと、Burp Suiteのインターセプトを…

WebGOATのBypass front-end restrictions②を演習してみた

Hello there, ('ω')ノ java関連の演習は時間がかかるので、気分転換に。 WebGOATのBypass front-end restrictions②を選択して。 フィールドの制限らしく。 これは非常に簡単で。 F12ボタンでHTMLの要素を書き換えればよいだけかと。 クリアできた。 Best reg…

WebGOATでJWT tokens⑦を演習してみた

Hello there, ('ω')ノ WebGOATでJWT tokens⑦を選択して。 下記のようなログファイルがあるとのことで。 ログから本を注文する方法を見つけることのこと。 ログの内容から無効なトークンらしきものを発見したので。 下記のサイトで検証すると。 ちなみにCheck…

WebGOATでJWT tokens⑤を演習してみた

Hello there, ('ω')ノ WebGOATでJWT tokens⑤を選択して。 SHA-2機能を備えたHMACでは、秘密鍵を使用してトークンに署名しての検証で。 キーがわかったら、新しいトークンを作成して署名できるので。 キーが強力なので、ブルートフォースや辞書攻撃を実行でき…

WebGOATのJWT tokens④を演習してみた

Hello there, ('ω')ノ WebGOATのJWT tokens④を選択して。 重要なステップの1つとしてアクションを実行する前に署名を検証することで。 トークンを変更して管理者になるようにだとか。 管理者になったら投票をリセットしてと。 動作を確認してみるとguest以外…

WebGOATでAuthentication Bypassesを演習してみた

Hello there, ('ω')ノ WebGOATのAuthentication Bypassesを選択して。 どうやら2段階認証のようで。 プロバイダが認識しない場所かデバイスからパスワードをリセットしているとか。 なので、設定したセキュリティの質問に答える必要があって。 さらにこれら…

WebGOATでCSRF⑧を演習してみた

Hello there, ('ω')ノ WebGOATのCSRF⑧を選択して、実行すると下記のメッセージが。 『webgoatとしてログインしているときにボタンをクリックしていいます』 ここでは、WebGoatがログインのCSRF攻撃に対しても脆弱かどうかを確認して。 まずは、下記のように…

WebGOATでCSRF⑦を演習してみた

Hello there, ('ω')ノ content-typeに依存することが、CSRFに対する防御ではないのがわかって。 次にCSRFに対して保護されていないAPIに対してCSRF攻撃を実行できるかを。 今回は、エンドポイントに次のJSONメッセージをPOSTする必要がありとのことで。 POST…

WebGOATでCSRF④を演習してみた

Hello there, ('ω')ノ 他の場所から送信する必要があるとのことで。 CSRF攻撃を実行する場所を見つけることがポイントのようで。 典型的な例だと、他人の銀行口座での送金らしく。 この場合だと、ログインしているユーザに代わって。 レビューの送信をトリガ…

WebGOATでCSRF⓷を演習してみた

Hello there, ('ω')ノ WebGOATのCSRFで⓷を選択して。 外部ソースからフォームをトリガーするとか。 そのレスポンスには、数値が含まれているとのことで。 なぜだか、ボタン名が日本になっていますが。 送信ボタンを押して。 別タブに下記が表示されると。 数…

WebGOATでInsecure Loginを演習してみた

Hello there, ('ω')ノ Log inボタンで、別ユーザのログイン資格情報を含むリクエストを送信して。 その資格情報を下のフィールドに書き込んで、送信して確認しなさいと。 パケットスニファで傍受してみてとのことで。 ふつうにLog inボタンを押したときのPOS…

WebGOATでMFLACを演習してみた

Hello there, ('ω')ノ WebGOATのMissing Function Level Access Controlの②を選択して。 下記は、UIが公開していない機能を見つけるためのヒントで。 HTMLまたはJavaScriptのコメント 要素をコメント化 CSSコントロール/クラスによって非表示にされたアイテ…

WebGOATでIDOR⑤を演習してみた

Hello there, ('ω')ノ WebGOATのIDOR⇨⑤を選択すると。 自分のプロファイルを表示するパスを使用して、他の人のプロファイルを表示して。 View Profileボタンで、リクエストをインターセプトして変更して。 他人のプロファイルを表示するとか。 というわけで…

WebGOATでIDORの②⓷④を演習してみた

Hello there, ('ω')ノ まずは、正当な認証から始めましょうとのことで。 あきらかに安全でないIDとパスワードを入力して。 user:tom pass:cat 次にView Profileボタンを押すと3つの属性がプロファイルに表示されて。 レスポンスデータで画面に表示されな…

WebGOATのXSS⑪⑬を演習してみた

Hello there, ('ω')ノ WebGOATのXSS⇨⑪を選択して。 なにやらWebGOAT内部にある下記の関数を実行せよとのことで。 しかもURLでと。 webgoat.customjs.phoneHome() 下記の通り、URLのパラメータで指定して実行することに。 /WebGoat/start.mvc#test/<script>webgoat.cu…

WebGOATのXSS⑩の演習をしてみた

Hello there, ('ω')ノ WebGOATのXSS⇨⑩を選択して。 DOMベースのXSSの可能性を特定するということで。 DOMベースのXSSは、クライアント側のコードでルート構成を探すことで。 この例だとtestコードを探しなさいとのことで。 下記のURLで。 /WebGoat/start.mvc…

WebGOATでXSS⑦を確認してみた

Hello there, ('ω')ノ WebGOATのXSS⇨⑦を選択して。 正常動作を確認するために各ボタンを押してみると。 下部のほうには、クレジットカードに請求される合計金額が表示されるようで。 説明には、下記のペイロードを使うように書いてあるので。 各テキストボッ…