MySQLとMicrosoftでのデータベースの種類とバージョンの照会 前提:「カテゴリー」パラメータにSQLインジェクションが存在する。UNIONが利用可能 ゴール:データベースのバージョン文字列を表示する 1.「Gifts」カテゴリーを選択した際の、デフォルトリクエ…
UNION attack: 単一カラムから複数値を取得 前提:「カテゴリー」パラメータにSQLインジェクションが存在する。 データベースには users という別のテーブルが存在し、username と password という列が含まれている。 ゴール:全ユーザー名とパスワードを取…
UNION attack: 他テーブルからのデータ取得 前提:「カテゴリー」パラメータにSQLインジェクションが存在する。 ゴール:全ユーザー名とパスワードを取得後、管理者ユーザとしてログインする。 1.「Pets」カテゴリーを選択した際の、デフォルトリクエスト・…
UNION attack: テキストを含む列の発見 前提:「カテゴリー」パラメータにSQLインジェクションが存在する。 ゴール:Webページ上に所定の文字列を出力する。 「アクセサリー」カテゴリーを選択した際の、デフォルトリクエスト・レスポンス GET /filter?categ…
UNION attack: クエリによって返される列の数を決定する 前提:商品カテゴリにSQLインジェクションが存在する クエリの結果はアプリケーションのレスポンスで返されるため UNIONが使える。 デフォルトリクエスト・レスポンス GET /filter?category=Accessori…
ログイン機能のバイパス 前提:administrator というユーザ名が存在することは分かっている。 検証1:Username=administrator, Password=password エラー:Invalid username or password. 検証2:Username=administrator'--, Password=`` 空値 未入力に対…
WHERE 句を使った SQL インジェクション Gifts カテゴリーを選択=全3商品 この時のSQLクエリは次の通り。 SELECT * FROM products WHERE category = 'Gifts' AND released = 1 シングルクォート1つ追加 GET /filter?category=Gifts%27 (今回の例ではURL…
26 of 35 ラボ https://portswigger.net/web-security/learning-paths/file-upload-vulnerabilities/flawed-validation-of-the-file-s-contents/file-upload/lab-file-upload-remote-code-execution-via-polyglot-web-shell-upload 1. デフォルトリクエスト …
ブラックリスト・バイパスによる Web shell のアップロード。23 of 35 ラボ https://portswigger.net/web-security/learning-paths/file-upload-vulnerabilities/insufficient-blacklisting-of-dangerous-file-types/file-upload/lab-file-upload-web-shell-…
ブラックリスト・バイパスによる Web shell のアップロード。20 of 35 ラボ https://portswigger.net/web-security/learning-paths/file-upload-vulnerabilities/insufficient-blacklisting-of-dangerous-file-types/file-upload/lab-file-upload-web-shell-…
パストラバーサルによる Web shell のアップロード。16 of 35 ラボ https://portswigger.net/web-security/learning-paths/file-upload-vulnerabilities/preventing-file-execution-in-user-accessible-directories/file-upload/lab-file-upload-web-shell-u…
Client-side topics Cross-site scripting (XSS) 30 Labs Cross-site request forgery (CSRF) 49 / 49, 12 Labs 完了 Cross-origin resource sharing (CORS) 0 / 21, 3 Labs Clickjacking 19 / 19, 5 Labs 完了 DOM-based vulnerabilities 7 Labs WebSockets…
黒背景に青色の文字は見えにくいため変更 Windows 10 WSL 2.4.13.0 Ubuntu 22.04 まず、ls したときの色。 man dir_colors (5): dircolors(1) の設定ファイル プログラム ls(1) は、環境変数 LS_COLORS を使い、ファイル名を何色で表示するかを決定する。 こ…
前回:やられアプリ BadTodo - 25.1 色々混ぜてやってみる1(XSS - CSRF -WebShell) - demandosigno 前回、BadTodo上にWebShellを設置することができました。 WebShell=Web上でシェルを動かせる、ということで色々なことができるようになります。 (WebShe…
BadTodo - 4.1 XSS(クロスサイト・スクリプティング) BadTodo - 10.1 CSRF(クロスサイト・リクエスト・フォージェリ) BadTodo - 10.7 XSSによるCSRF対策の突破 前回:BadTodo - 24 適切でないアップロートファイル制限 などを混ぜて色々やってみます。 …
前回:やられアプリ BadTodo - 13.1 クリックジャッキング - demandosigno クリックジャッキング対策はアプリケーションのバグが原因ではなく、HTMLの仕様を巧妙に悪用した攻撃と言えます。このため、バグを修正したら防げるというタイプの脆弱性ではありま…
前回:やられアプリ BadTodo - 17.3 パスワードハッシュ化の目的 - demandosigno パスワード解析ソフトの John the Ripper でもハッシュの解析はできるのですが、今回は hashcat を使います。 その名の通りハッシュの解析ができます。強力なグラフィックボー…
前回:やられアプリ BadTodo - 17.2 補足 保存するパスワードのハッシュ化 - demandosigno 今回の内容は記事の最後にリンクを貼った徳丸さんの解説動画の内容などから自分なりにまとめたものです。(細かい点はわざと省いています。徳丸さんの動画はとても分…
前回:やられアプリ BadTodo - 25.3 NULLバイト攻撃(+XSS) - demandosigno 前回までに挙げたNULLバイト攻撃の3つの例はどれもGETリクエストに対するものでした。 続けて、POSTリクエストに対して試してみようとした際に疑問点が残ったためメモしておきま…
前回:やられアプリ BadTodo - 22 A8:2017 - 安全でないデシリアライゼーション - demandosigno 幾つかのプログラミング言語は eval(イーバル)という機能や関数を持っています。 eval には複数のコードを解釈し実行する機能がありますが、evalの利用法に問…
前回:やられアプリ BadTodo - 4.6 XSS パスワード変更ページ - demandosigno Todoの題名をクリックすると開くTodoの詳細画面のリクエスト https://todo.example.jp/todo.php?rnd=6639eec0ed1b2&item=2の item パラメータにXSSがあります。 itemに'><script>alert(1)</script>…
前回:やられアプリ BadTodo - 3.9 SQLインジェクション 対策方法 - demandosigno これまでのSQLインジェクションは、UNION SELECT 演算子を使って既に存在する表に追記させたり、SLQエラー文の出力を利用して情報を得たりしました。 しかし、結果を出力する…
前回:やられアプリ BadTodo - 27 レースコンディション - demandosigno キャッシュを利用することでアプリケーションの読み込み処理を高速化したり、サーバーの負荷を軽減させたりできます。 BadTodoでは Nginx がリバースプロキシサーバとなりキャッシュ機…
毎度忘れるのでメモ。 コンテナの中でファイルを作成しても、コンテナを削除すると消える。そこでホスト側のフォルダをコンテナにマウントすることで永続化する。 データベースの保持 — Docker-docs-ja 24.0 ドキュメント 環境 ・Windows10 ・Docker Desktop…
前回:やられアプリ BadTodo - 26 TOCTOU競合 - demandosigno 競合状態 (race condition) 情報処理における競合状態は「イベントタイミングへの予期せぬ依存が引き起こす異常な振る舞い」である。特に複数のプロセスやスレッドが通信しながら動作する場合(…
Xdebugの設置でつまづいたため、とりあえず最小限で試してみる。 (別Ver. Debian 10 (buster) PHP7.1 Xdebug2.9 - demandosigno) Xdebug: Documentation » Supported Versions and Compatibility docker-compose.yml version: '3' services: php: image: p…
Xdebugの設置でつまづいたため、とりあえず最小限で試してみる。 (別Ver. Debian 12 (bookworm) PHP8.2 Xdebug3.3 - demandosigno) Xdebug: Documentation » Supported Versions and Compatibility docker-compose.yml version: '3' services: php: image:…
次の動画(45:20~)で徳丸さんが行っていたハッカー入門をそのままやってみた。 WordPressの有名な脆弱性を題材として脆弱性について学ぶ 「スクリプトキディ」は低級ハッカーの意味で使われるが、誰もがはじめから高度な攻撃手法を編み出すことはできないので…
前回:やられアプリ BadTodo - 17 認証(パスワードの強度・ログアウト) - demandosigno BadTodo - 3.4 SQLインジェクション ID・パスワードの取得で確認したように、BadTodoはDB内にパスワードが平文で保存されているという問題点があります。 パスワード…
前回:やられアプリ BadTodo - 4.7 XSS 対策方法(エスケープ処理) - demandosigno DOM Based XSSについて。 BadTodoのトップページhttps://todo.example.jp/todolist.phpですが、このURLの後ろに#とスクリプトを追記するとXSSが発動します。 https://todo.…