BadTodo
前回:やられアプリ BadTodo - 3.7 SQLインジェクション idパラメータに対して - demandosigno sqlmap はSQLインジェクションを検出するためのオープンソースのテストツールです。 sqlmap: automatic SQL injection and database takeover tool これまでの検…
前回:やられアプリ BadTodo - 24.3 NULLバイト攻撃(+XSS) - demandosigno TOCTOU(トックトゥー)Time of check to Time of use. ある条件をチェック (check) したあと、その結果を行使 (use) するまでに変更が発生することで引き起こされるバグの一種。…
前回:やられアプリ BadTodo - 24.2 NULLバイト攻撃(+SQLインジェクション) - demandosigno 前回と同じ場所で今度はXSSを試します。 入力値 https://todo.example.jp/api/v1/is_valid_id.php?id=hoge%00%3Cscript%3Ealert(%27XSS%27)%3C/script%3E Nullバ…
前回:やられアプリ BadTodo - 24.1 NULLバイト攻撃(+ファイルインクルード) - demandosigno 新規ユーザー登録時などにバリデーションチェックが入り(記号などの入力はダメで)「英数字で」と注意されます。 この時のチェックはAPIが行っているのですが、…
Todoリストを「完了」にしたり「削除」や「エクスポート」する際に走るリクエストhttps://todo.example.jp/editlist.phpにはprocessというパラメータがありますが、これにファイルインクルードの脆弱性があります。 ここでは「完了」ボタンで試します。BurpS…
前提。前回インストールした Kali LinuxとBadTodoのコンテナ間で通信できるようにします。 Dockerコンテナの確認 PS C:\> docker ps -a (抜粋) CONTAINER ID IMAGE ~(中略)~ NAMES 11da21e5a036 kalilinux/kali-rolling ~(中略)~ Kali-Linux 2cbf8…
前回:やられアプリ BadTodo - 10.5 CSRF(対策) - demandosigno トークンが推測可能 BadTodoで利用されていたトークンを幾つか抜き出してみました。 c4ca4238a0b923820dcc509a6f75849b 7bd4762216e1953efd194f3868c1e8ba 449e7e9838eabd52940a36d22c654228…
前回:BadTodo - 10.6 CSRF対策トークンの不備 - demandosigno 今回は XSS を使ってCSRF相当の攻撃を行います。(パスワードの変更) 前回確認したように、CSRF対策としてトークンのチェックが行われます。 トークンは実行ページ直前のページで生成され、セ…
前回:やられアプリ BadTodo - 10 CSRF(クロスサイト・リクエスト・フォージェリ) - demandosigno 安全なウェブサイトの作り方 - 1.6 CSRF(根本的解決) 処理を実行するページをPOSTメソッドでアクセスするようにし、その「hiddenパラメータ」に秘密情報…
前回:やられアプリ BadTodo - 4.1 XSS(クロスサイト・スクリプティング) - demandosigno 前回XSSでCookieを盗みました。 Cookieの属性の1つにHttpOnlyというものがあります。XSSの緩和策として導入されました。この属性はJavaScriptからCookieの参照・更…
前回:やられアプリ BadTodo - 22 A8:2017 - 安全でないデシリアライゼーション - demandosigno CWE - CWE-434: Unrestricted Upload of File with Dangerous Type (4.12) Todoリストにはファイルをアップロードする機能があります。 これを使いPHPファイル…
前回:やられアプリ BadTodo - 3.6 SQLインジェクション MariaDBのパスワード取得 - demandosigno これまで、主にTodoリスト一覧画面のkeyパラメータに対してSQLインジェクションを試して来ました。 /todolist.php?rnd=64fe3eba0ee01&key=%27+UNION+SELECT+N…
前回:やられアプリ BadTodo - 4.5 XSS マイページ - demandosigno パスワード変更ページ/changepwd.phpのidパラメータにXSSがあります。 https://todo.example.jp/changepwd.php?id=%27%3E%3Cscript%3Ealert(1)%3C/script%3EにアクセスさせることでXSSが発…
前回:やられアプリ BadTodo - 4.4 XSS(Todoの削除) - demandosigno プロフィール画面(マイページ)を開いた際に/profile.phpに続いて流れるリクエスト https://todo.example.jp/resize.php?path=icons&basename=ockeghem.png&size=64のpathとbasenameパ…
前回:やられアプリ BadTodo - 4.7 XSS(対策方法) - demandosigno Todoリストの編集画面において、URLの欄にjavascript:alert(document.cookie)と記入して保存します。 その後に誰かがそのリンクをクリックするとXSSが発動します。 HTML上は入力値がそのま…
脆弱性診断実習用アプリBadTodoを試し脆弱性をまとめていきます。
前回:やられアプリ BadTodo - 21 A10:2021-サーバーサイドリクエストフォージェリ(SSRF) - demandosigno シリアライズされたCookieの改変 OWASP Top10 2017 のp.14「安全でないデシリアライゼーション」の項によると、攻撃シナリオの例として「攻撃者はシリ…
前回:やられアプリ BadTodo - 20 A4:2017 - XML外部エンティティ参照 (XXE) - demandosigno SSRF攻撃とは SSRF(Server Side Request Forgery)徹底入門 | 徳丸浩の日記 SSRF 攻撃とは、攻撃者から直接到達できないサーバーに対する攻撃手法の一種です。下図…
前回:やられアプリ BadTodo - 19 ディレクトリ・リスティング - demandosigno XXE = XML External Entity XMLには外部実体参照という機能があり外部ファイルの内容を取り込むことができます。 細工を施した XML ファイルをインポートすることにより、診断対…
前回:やられアプリ BadTodo - 4.3 XSS(ID毎のTodo一覧画面) - demandosigno Todoを削除するときのリクエスト POST /editlist.php のパラメータprocessにXSSがあります。 ZAPでの検出例。 まだ他にもありますので引き続き探していきます。 次回:やられア…
前回:やられアプリ BadTodo - 4.2 XSS(ログイン画面で) - demandosigno 引き続きXSSについて。今回はTodoリストのIDをクリックした際に遷移する「ID毎のTodo一覧画面」について。 パラメータidにXSSがあります。 https://todo.example.jp/todolist.php?id…
前回:やられアプリ BadTodo - 4.6 XSS パスワード変更ページ - demandosigno やはり「安全なウェブサイトの作り方 - 1.5 クロスサイト・スクリプティング | 情報セキュリティ | IPA 独立行政法人 情報処理推進機構」の「対策について」が規範となります。 …
前回:やられアプリ BadTodo - 4.1.1 XSS 対策方法(HttpOnly属性の付与) - demandosigno ログインページでのXSS(Docker版 Ver 1.1.0) 実習用仮想マシン(Docker版 Ver 1.1.0) *1ではログイン時のパラメータurlに次のようにスクリプトを仕込むことでXSS…
前回:やられアプリ BadTodo - 18 クローラへの耐性 - demandosigno 前回で「ウェブ健康診断仕様」を終えたつもりだったのですが、一つ漏れていました。 ディレクトリ・リスティング Webサーバの機能の一つで、末尾が「/」で終わるURLを指定されそこにデフォ…
前回:BadTodo - 17 認証(パスワードの強度・ログアウト) - demandosigno 「ウェブ健康診断仕様」の最後の項目 p.21「クローラへの耐性」を見ていきます。 インターネットに公開されているホームページは通常の利用者(人間)によるアクセスだけではなく、…
GitHub - yukisov/web-sindan-crawler: IPA ウェブ健康診断仕様の「クローラへの耐性」を診断するコマンドラインツール IPA ウェブ健康診断仕様の診断項目「(M)クローラへの耐性」の診断を行うコマンドラインツールです。 検索エンジンをはじめとしたWebサイ…
前回:やられアプリ BadTodo - 16 バッファオーバーフロー - demandosigno これまでに「IPA 安全なウェブサイトの作り方 第7版」の11項目を検査してきました。 BadTodoは「ウェブ健康診断仕様」の診断項目も網羅しています。 この内、安全なウェブサイトの作…
前回:やられアプリ 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.4 SQLインジェクション ID・パスワードの取得 - demandosigno 前提:前回でデータベース「todo」にテーブル名「todos」があり、Todoリスト機能部分はそれを使っていることが分かっています。 todosテーブルのカラム一覧 ' UN…
前回:やられアプリ BadTodo - 3.3 SQLインジェクション DB情報の取得 - demandosigno テーブル一覧の表示 前回、データベースの一覧は次の通りと分かりました。 ・information_schema ・mysql ・sys ・todo ・performance_schema この中でBadTodo自体のデー…