Shikata Ga Nai

Private? There is no such things.

PortSwigger

User role controlled by request parameterをやってみた

Hello thre, ('ω')ノ リクエストパラメータによって制御されるユーザーロールを。 このラボには、/adminに管理パネルがあるらしく。 さっそく、下記へアクセスしてみると。 https://ac891f9c1f675a6b809aad3600df0074.web-security-academy.net/admin まずは…

Unprotected admin functionality with unpredictable URLをやってみた

Hello there, ('ω')ノ 予測できないURLを持つ保護されていない管理機能を。 サイトにアクセスして。 ソースコード内をadminで検索して。 adminだった場合の処理が見つかって。 そこにはディレクトリの記述も。 /admin-b820nx さっそく、下記へアクセスしてみ…

DOM XSS in AngularJS expression with angle brackets and double quotes HTML-encodedをやってみた

Hello there, ('ω')ノ HTMLでエンコードされた山括弧と二重引用符を使用したAngularJSのDOM XSSを。まずは、サイトにアクセスして。 データを入力して、検索して。 abc123 ソースコードを見ると。 入力して表示された文字列は、ng-appディレクティブで囲まれ…

SQL injection attack, listing the database contents on non-Oracle databasesをやってみた

Hello there, ('ω')ノ SQLインジェクション攻撃、Oracle以外のデータベースコンテンツを一覧表示を。 まずは、Petsをクリックして。 リクエストをリピータへ。 はじめにカラム数のチェックから。 xxx'+UNION+SELECT+NULL-- どうやら2つのカラムのようで。 x…

HTTP request smuggling, obfuscating the TE headerをやってみた

Hello there, ('ω')ノ HTTPリクエストの密輸、TEヘッダの難読化を。 フロントエンドサーバとバックエンドサーバがあって。 2つのサーバは重複するHTTPリクエストヘッダーを異なる方法で処理して。 フロントエンドサーバは、GETまたはPOSTメソッド以外のリク…

HTTP request smuggling, basic TE.CL vulnerabilityをやってみた

Hello there, ('ω')ノ HTTPリクエストの密輸、基本的なTE.CLの脆弱性を。 バックエンドサーバはチャンクエンコーディングをサポートしていなくて。 フロントエンドサーバは、GETまたはPOSTメソッドを使用していないと拒否して。 ラボを解決するには、リクエ…

HTTP request smuggling, basic CL.TE vulnerabilityをやってみた

Hello there, ('ω')ノ HTTPリクエストの密輸、基本的なCL.TEの脆弱性を。 このラボにはフロントエンドサーバとバックエンドサーバがあって。 フロントエンドサーバはチャンクエンコーディングをサポートしていないらしく。 さらには、GETまたはPOSTメソッド…

Exploiting XXE via image file uploadをやってみた

Hello there, ('ω')ノ 画像ファイルのアップロードによるXXEの悪用を。 一部のアプリケーションでは、ユーザがファイルをアップロードして。 サーバサイドで処理することができて。 一部のファイル形式は、XMLを使用するか、XMLサブコンポーネントを含んで。…

Exploiting XInclude to retrieve filesをやってみた

Hello there, ('ω')ノ XIncludeを利用してファイル取得を。 XMLで制御しいので、XXEするためのDTDを定義することはできないとか。 一部のアプリケーションは、クライアントから送信されたデータを受信して。 サーバサイドでXMLドキュメントに埋め込んで、ド…

Exploiting XXE to retrieve data by repurposing a local DTDをやってみた

Hello there, ('ω')ノ XXEを利用して、ローカルDTDを転用してデータを取得を。 ラボを解決するには、/etc/passwdの内容を含むエラーメッセージをトリガーして。 サーバ上の既存のDTDファイルを参照して。 そこからエンティティを再定義する必要があるらしく…

Exploiting blind XXE to retrieve data via error messagesについてかいてみた

Hello there, ('ω')ノ ブラインドXXEを利用して、エラーメッセージを介してデータを取得を。 つまり、エラーを出してそのエラーメッセージに取得したいデータを表示させて。 まずは、Check stockを。 fileエンティティにpasswdを読み込ませて。 動的宣言され…

Exploiting blind XXE to exfiltrate data using a malicious external DTDをやってみた

Hello there, ('ω')ノ ブラインドXXEを悪用して、悪意のある外部DTDを使用してデータを盗み出すを。 これまでリクエストに書き込んでいたDTDを外出しというわけで。 Check stockをクリックして。 XMLのリクエストをリピータへ。 その後、コラボレータを起動…

Blind XXE with out-of-band interaction via XML parameter entitiesをやってみた

Hello there, ('ω')ノ XMLパラメータエンティティを介した帯域外相互作用を伴うブラインドXXEを。 予期しない値は表示されず、外部エンティティをはブロックされるとのことで。 なので、パラメータエンティティを使用する必要があるらしく。 ここでエンティ…

Blind XXE with out-of-band interactionをやってみた

Hello there, ('ω')ノ 帯域外インタラクションを伴うブラインドXXEを。 XML入力を解析するが、結果を表示しない「在庫確認」機能がありらしく。 今回は、 外部ドメインとの帯域外相互作用をトリガーすることで。 ブラインドXXEの脆弱性を検出できるようで。 …

Exploiting XXE to perform SSRF attacksをやってみた

Hello there, ('ω')ノ XXEを悪用してSSRF攻撃を。 Check stockをクリックして。 リクエストボディにはXMLが。 これをリピータへ。 さっそくペイロードを。 今回は、DTDにLABサーバのIPアドレスを指定してSendすると。 レスポンスに階層のヒントが。 http://1…

DOM XSS in document.write sink using source location.search inside a select elementをやってみた

Hello there, ('ω')ノ select要素内のlocation.searchを使用したdocument.writeシンクのDOMXSSを。 プルダウンで選択して、Check stockをクリックすると。 リクエストに、storeIdのパラメータが。 URLには、storeIdはなくて。 https://ac491f8d1e2d600180cad…

Unprotected admin functionalityをやってみた

Hello there, ('ω')ノ 保護されていない管理機能を。 まずは、robots.txtの存在の確認を。 https://ac041f381f409dac80771fe0003000a0.web-security-academy.net/robots.txt Disallowで指定されたファイルやディレクトリはクロールがブロックされるので。 下…

Exploiting XXE using external entities to retrieve filesをやってみた

Hello there, ('ω')ノ 外部エンティティを使用してXXEを悪用してファイルを取得を。 Check stockをクリックして。 履歴からxmlを見つけてリピータへ。 下記のペイロードを追加して、Sendすると。 ]> &xxe; クリアできた。 たとえば、脆弱性診断ガイドライン…

File path traversal, validation of file extension with null byte bypassをやってみた

Hello there, ('ω')ノ ヌルバイトバイパスを使用したファイル拡張子の検証を。 詳細を選択して。 下記のペイロードを入力するとエラーが。 ../../../etc/passwd さらに下記のペイロードを入力してもエラーが。 ../../../etc/passwd.png 下記のペイロードを入…

File path traversal, validation of start of pathをやってみた

Hello there, ('ω')ノ ファイルパストラバーサル、パスの開始の検証を。 詳細を選択して。 今回の画像のアドレスは、これまでとは違っていて。 下記のペイロードを入力してSendすると。 /var/www/images/../../../../../../etc/passwd クリアできた。 Best r…

File path traversal, traversal sequences stripped with superfluous URL-decodeをやってみた

Hello there, ('ω')ノ 不要なURLデコードで削除されたトラバーサルシーケンスを。 詳細を選択して。 下記のペイロードを入力すると。 ..%252f..%252f..%252fetc/passwd クリアできた。 今回のペイロードをダブルURLデコードしてみると。 ..%252f..%252f..%25…

File path traversal, traversal sequences stripped non-recursivelyをやってみた

Hello there, ('ω')ノ 非再帰的にストリッピングされたトラバーサルシーケンスを。 下記のペイロードを入力してSendして。 ....//....//....//etc/passwd クリアできた。 特殊文字は非再帰的にフィルタリングされるので二重に書き込むことができて。 http://…

File path traversal, traversal sequences blocked with absolute path bypassをやってみた

Hello there, ('ω')ノ 絶対パスバイパスでブロックされたトラバーサルシーケンスを。 詳細をクリックして。 前回と同様にレスポンスボディからリクエストがあるので。 インターセプトして、リピータへ。 下記のペイロードをパラメータに入れてSendすると。 /…

File path traversal, simple caseをつかってみた

Hello there, ('ω')ノ ファイルパストラバーサル、単純なケースを。 詳細をクリックして。 履歴からリクエストを確認すると。 レスポンスボディからももリクエストが送信されていることがわかって。 このリクエストは履歴に残らないので、見逃しがちで。 イ…

Blind OS command injection with output redirectionをやってみた

Hello there, ('ω')ノ 出力リダイレクトを使用したブラインドOSコマンドインジェクションを。 ページからペイロードを入力しようとするとチェックが入るので。 リクエストをリピータへ。 スペースは、+に変換して。 まずは、下記のペイロードで動作確認する…

Blind OS command injection with time delaysをやってみた

Hello there, ('ω')ノ 時間遅延のあるブラインドOSコマンドインジェクションを。 まずは、項目を入力して。 リクエストをリピータへ。 各パラメータにペイロードを追加してレスポンスを確認して。 メールアドレスに下記のペイロードを追加すると10秒遅延して…

OS command injection, simple caseをやってみた

Hello there, ('ω')ノ OSコマンドインジェクション、単純なケースを。 まずは、Check stockで選択して。 パラメータを確認してリピータへ。 パラメータに下記を追加してSendすると。 |whoami レスポンスに下記が表示されて。 peter-Rnf6JM クリアできた。 Be…

DOM-based open redirectionをやってみた

Hello there, ('ω')ノ DOMベースのオープンリダイレクトを。 ソースコードを見ると、Back to Blogのリンク処理は以下のとおりで。 urlパラメータが設定されているとそちらへ遷移するようで。 <a href='#' onclick='returnUrl = /url=(https?:\/\/.+)/.exec(location); if(returnUrl)location.href = returnUrl[1]; else location.href = "/"' >Back to Blog</a> 現在のURLは以下のとおりで。 https://ac511f831…

Stored DOM XSSをやってみた

Hello there, ('ω')ノ 保存されたDOM XSSを。 いつものようにデータを登録して。 後ろのscriptが削除されていて。 ソースコードを見るとJavaScriptがわかって。 下記のスクリプトをデバッガーで見ることに。 loadCommentsWithVulnerableEscapeHtml.js 面倒な…

DOM XSS in jQuery anchor href attribute sink using location.search sourceをやってみた

Hello here, ('ω')ノ location.searchソースを使用したjQueryアンカーhref属性シンクのDOMXSSを。 jQueryライブラリの$セレクター関数を使用してアンカー要素を検索して。 location.searchのデータを使用してhref属性を変更とのことで。 ページのURLは以下の…