BadTodo

やられアプリ BadTodo - 4.4 XSS(Todoの削除画面)

前回:やられアプリ BadTodo - 4.3 XSS(ID毎のTodo一覧画面) - demandosigno Todoを削除するときのリクエスト POST /editlist.php のパラメータprocessにXSSがあります。 ZAPでの検出例。 まだ他にもありますので引き続き探していきます。 次回:やられア…

やられアプリ BadTodo - 4.3 XSS(ID毎のTodo一覧画面)

前回:やられアプリ BadTodo - 4.2 XSS(ログイン画面で) - demandosigno 引き続きXSSについて。今回はTodoリストのIDをクリックした際に遷移する「ID毎のTodo一覧画面」について。 パラメータidにXSSがあります。 https://todo.example.jp/todolist.php?id…

やられアプリ BadTodo - 4.8 XSS 対策方法(エスケープ処理)

前回:やられアプリ BadTodo - 4.7 XSS(Todo詳細ページ) - demandosigno やはり「安全なウェブサイトの作り方 - 1.5 クロスサイト・スクリプティング | 情報セキュリティ | IPA 独立行政法人 情報処理推進機構」の「対策について」が規範となります。 根本…

やられアプリ BadTodo - 4.2 XSS(ログイン画面で)

前回:やられアプリ BadTodo - 4.1.1 XSS 対策方法(HttpOnly属性の付与) - demandosigno ログインページでのXSS(Docker版 Ver 1.1.0) 実習用仮想マシン(Docker版 Ver 1.1.0) *1ではログイン時のパラメータurlに次のようにスクリプトを仕込むことでXSS…

やられアプリ BadTodo - 19 ディレクトリ・リスティング

前回:やられアプリ BadTodo - 18 クローラへの耐性 - demandosigno 前回で「ウェブ健康診断仕様」を終えたつもりだったのですが、一つ漏れていました。 ディレクトリ・リスティング Webサーバの機能の一つで、末尾が「/」で終わるURLを指定されそこにデフォ…

やられアプリ BadTodo - 18 クローラへの耐性

前回:BadTodo - 17 認証(パスワードの強度・ログアウト) - demandosigno 「ウェブ健康診断仕様」の最後の項目 p.21「クローラへの耐性」を見ていきます。 インターネットに公開されているホームページは通常の利用者(人間)によるアクセスだけではなく、…

クローラ耐性診断ツール

GitHub - yukisov/web-sindan-crawler: IPA ウェブ健康診断仕様の「クローラへの耐性」を診断するコマンドラインツール IPA ウェブ健康診断仕様の診断項目「(M)クローラへの耐性」の診断を行うコマンドラインツールです。 検索エンジンをはじめとしたWebサイ…

やられアプリ BadTodo - 17.1 認証(パスワードの強度・ログアウト)

前回:やられアプリ BadTodo - 16 バッファオーバーフロー - demandosigno これまでに「IPA 安全なウェブサイトの作り方 第7版」の11項目を検査してきました。 BadTodoは「ウェブ健康診断仕様」の診断項目も網羅しています。 この内、安全なウェブサイトの作…

やられアプリ BadTodo - 3.6 SQLインジェクション MariaDBのパスワード取得

前回:やられアプリ BadTodo - 3.5 SQLインジェクション 情報の改ざん・追加・削除 - demandosigno MariaDBのバージョンの表示 SELECT @@version; ' UNION SELECT null,null,@@version,null,null,null,null,null,null,null# passwdファイルの表示 SELECT LOA…

やられアプリ BadTodo - 3.5 SQLインジェクション 情報の改ざん・追加・削除

前回:やられアプリ BadTodo - 3.4 SQLインジェクション ID・パスワードの取得 - demandosigno 前提:前回でデータベース「todo」にテーブル名「todos」があり、Todoリスト機能部分はそれを使っていることが分かっています。 todosテーブルのカラム一覧 ' UN…

やられアプリ BadTodo - 3.4 SQLインジェクション ID・パスワードの取得

前回:やられアプリ BadTodo - 3.3 SQLインジェクション DB情報の取得 - demandosigno テーブル一覧の表示 前回、データベースの一覧は次の通りと分かりました。 ・information_schema ・mysql ・sys ・todo ・performance_schema この中でBadTodo自体のデー…

やられアプリ BadTodo - 3.3 SQLインジェクション DB情報の取得

前回:やられアプリ BadTodo - 3.2 SQLインジェクション 非公開情報の漏洩 - demandosigno 深掘り 前回「検索画面」でのSQLインジェクションを試し通常では表示されない非公開のTodoを表示させることができました。 今回はさらにDB内のその他の情報を閲覧で…

やられアプリ BadTodo - 16 バッファオーバーフロー

前回:やられアプリ BadTodo - 15 アクセス制御や認可制御の欠落 - demandosigno 現在のウェブアプリケーションのほとんどはPHPやPerl、Javaなどの直接メモリを操作できない言語を使っており、バッファオーバーフローの脆弱性の影響を受ける可能性は低いとい…

やられアプリ BadTodo - 15 アクセス制御や認可制御の欠落

前回:やられアプリ BadTodo - 14 セッション管理の不備 - demandosigno ウェブサイトには「ユーザ権限」「管理者権限」のように権限分けされているものがあります。しかし管理者権限でしか閲覧できない画面をユーザ権限で閲覧できてしまったり、ユーザ権限…

やられアプリ BadTodo - 14 セッション管理の不備

前回:やられアプリ BadTodo - 13 クリックジャッキング - demandosigno HTTPプロトコルはステートレスで、サーバー側では状態を保持しません。しかしアプリケーションでは状態を保持したい場合があります。典型例としてよく紹介されるのがECサイトの「ショ…

やられアプリ BadTodo - 13.1 クリックジャッキング

前回:やられアプリ BadTodo - 12 メールヘッダ・インジェクション - demandosigno 該当する機能がマウス操作のみで使用可能な場合、細工された外部サイトを閲覧し操作することにより、利用者が誤操作し、意図しない機能を実行させられる可能性があります。 …

やられアプリ BadTodo - 12 メールヘッダ・インジェクション

前回:やられアプリ BadTodo - 11 HTTP ヘッダ・インジェクション - demandosigno ウェブアプリケーションの中には、利用者が入力した商品申し込みやアンケート等の内容を、特定のメールアドレスに送信する機能を持つものがあります。一般に、このメールアド…

やられアプリ BadTodo - 11 HTTP ヘッダ・インジェクション

前回:やられアプリ BadTodo - 10.7 XSSによるCSRF対策の突破 - demandosigno ウェブアプリケーションの中には、リクエストに対して出力する HTTP レスポンスヘッダのフィールド値を、外部から渡されるパラメータの値等を利用して動的に生成するものがありま…

やられアプリ BadTodo - 10.1 CSRF(クロスサイト・リクエスト・フォージェリ)

前回:やられアプリ BadTodo - 9 Server Side Code Injection - PHP Code Injection - demandosigno ログイン機能を設けているウェブサイトにおいて、利用者が外部サイトを経由した悪意のあるリクエストを実行させられてしまう場合、CSRFの脆弱性があること…

やられアプリ BadTodo - 9 Server Side Code Injection - PHP Code Injection

前回:やられアプリ BadTodo - 8.2 OS コマンド・インジェクション(内部でシェルを呼び出す関数) - demandosigno ZAPで検出されたリスク(高)の最後の一つ「Server Side Code Injection - PHP Code Injection」を確認します。 ZAPのリクエスト例。 https:…

やられアプリ BadTodo - 8.2 OS コマンド・インジェクション(内部でシェルを呼び出す関数)

前回:やられアプリ BadTodo - 8.1 OS コマンド・インジェクション(リモートコード実行。CVE-2012-1823) - demandosignoで紹介したように、PHPの exec(), system() などの関数はOSコマンドを呼び出すことができます。多くはシェル経由でコマンドを起動して…

やられアプリ BadTodo - 7 リモート・ファイルインクルード(RFI)

前回:やられアプリ BadTodo - 6 ディレクトリトラバーサル - demandosigno ZAPの例のアドレスを入力してみます。 https://todo.example.jp/resize.php?path=http%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3DOWASP%2520ZAP&basename=elephant.png&size=64 外部…

やられアプリ BadTodo - 6 ディレクトリトラバーサル

前回:やられアプリ BadTodo - 5 オープンリダイレクト - demandosigno https://todo.example.jp/resize.phpにディレクトリトラバーサルがあるようです。 場所としてはログイン後のマイページにあるアイコン画像のURLとなります。 ZAPの例通りアドレスを入力…

やられアプリ BadTodo - 5 オープンリダイレクト

前回:やられアプリ BadTodo - 4.8 XSS URL属性値に対して - demandosigno 今回はOWASP ZAPで検出されている他の脆弱性を見ていきます。 意図しないリダイレクト(Open redirect) 「ウェブ健康診断」p.15 クエリストリング等に URL を保持している場合に、U…

やられアプリ BadTodo - 4.1 XSS(クロスサイト・スクリプティング)

前回:やられアプリ BadTodo - 3.10 ブラインドSQLインジェクション (Boolean-Based) 練習 - demandosigno 今回はXSSを試してみます。 Bad Todoの検索窓に「test」と入力し、検索ボタンをクリックしてみます。 リクエストはGET /todolist.php?rnd=64b73aa18a…

やられアプリ BadTodo - 3.2 SQLインジェクション 非公開情報の漏洩

前回:やられアプリ BadTodo - 3.1 SQLインジェクション 認証の回避 - demandosigno Todo検索画面でのSQLインジェクション ログイン前の検索画面 補足:画像では検索窓が左寄せとなっていますが、最新のBadTodoでは右寄せになっています。 文字列testで検索…

やられアプリ BadTodo - 3.1 SQLインジェクション 認証の回避

前回。OWASP ZAPにてざっと自動検査を行いました。 やられアプリ BadTodo - 2 ZAPでのスキャン - demandosigno 今回から、検出された脆弱性が本当に存在するかを手動でチェックしていきます。 ・SQLインジェクションの一例 www.youtube.com 最初の例として徳…

やられアプリ BadTodo - 2 ZAPでのスキャン

初回。BadTodoのインストールとBurpSuiteなどの初期設定について。 やられアプリ BadTodo - 1 準備 - demandosigno 今回は、手動診断の目安にするため OWASP ZAP を使って BadTodoを一通りスキャンするところまで行います。 事前準備 Dockerコンテナの起動 B…

やられアプリ BadTodo - 1 準備

各記事へのリンク一覧 : やられアプリBadTodo 脆弱性のまとめ - demandosigno こんな見た目のTodoアプリです。 GitHub - ockeghem/badtodo Windows、Mac(Intel, Apple silicon)、Linux環境で動作可能です。 Docker以外にRancher DesktopとPodmanでも動作…

/* -----codeの行番号----- */