More Related Content
Similar to とある診断員と色々厄介な脆弱性達
Similar to とある診断員と色々厄介な脆弱性達 (20)
とある診断員と色々厄介な脆弱性達
- 3. Webアプリの脆弱性ってどんなの?
Webアプリの脆弱性達
SQLインジェクション
OSコマンドインジェクション
パス名パラメータの未チェック/ディレクトリ・トラバーサル
セッション管理の不備
クロスサイト・スクリプティング
CSRF
HTTPヘッダ・インジェクション
メールヘッダインジェクション
アクセス制御や認可制御の欠落
IPA「安全なウェブサイトの作り方」より https://www.ipa.go.jp/security/vuln/websecurity.html
例えばこんなのがありますね
- 10. 使うもの
手動診断には定番のローカルProxyを利用します。
HTTP Response
HTTP Request
HTTP Response
HTTP Request
ローカルProxy
「Burp Suite」
http://portswigger.net/burp/
「OWASP ZAP」
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
「Fiddler」
http://www.telerik.com/fiddler
メジャーなローカルProxy達
- 26. 1のパターン
menu.php
購入履歴
登録情報
ログアウト
profile.php?id=18
ユーザ名:太郎 mail:aa@vultest.com 住所:++++**** 電話番号: 09012345678
idの値を改ざん
別ユーザの情報 が見えてしまう!
ログイン後の画面
自分の登録情報が表示
profile.php?id=19
ユーザ名:次郎
mail:bb@vultest.com
住所:----====
電話番号: 08098765432
別ユーザの登録情報が表示
- 27. 2のパターン
管理者でログイン
購入履歴 登録情報 ログアウト 管理者機能
http://example.jp/menu.php
一般ユーザでログイン
http://example.jp/menu.php
ユーザ情報一覧
アカウント停止
ロック解除
http://example.jp/admin.php
管理者機能
購入履歴
登録情報
ログアウト
リンクは存在せず本来は アクセス不可
管理者機能に アクセスできて しまう!
直接URLを指定してアクセス
- 28. 3のパターン
「flag=admin」をURLに 追加してアクセス
管理者用の
メニューが選択 できてしまう!
管理者でログイン
http://example.jp/news.php?flag=admin
お知らせ閲覧
投稿
編集
削除
一般ユーザでログイン
http://example.jp/news.php
お知らせ閲覧
- 30. 過去にエンカウントしたもの
全体的にこの脆弱性は今でもそこそこ多く出会います。対策がゆるい アプリが多い気がしますし、対策方法自体が良くわかっていない人も 結構多い気がします。
そもそも開発側で権限をちゃんと定義していることが少ない気がしま す。まともな資料をもらった記憶があまりなく、診断時に大体自分で調 べている気がします。
無課金ユーザで課金ユーザにのみ提供されている機能を使い放題な アプリとかありました。しかもJavaScript制御でメニューがクリックでき ないようになっているだけで、ソース中にバッチリリンクが記載されてお り、その気があれば誰でも2のパターンでいけてます。
診断対象アプリの権限が複雑すぎて、それぞれのユーザ権限では何が できて良くて、何ができちゃダメなのかさっぱりわからなくて泣きそうな 時がありました。傾向として内部で利用する業務用アプリとかにこうい うのが多い気がします。
- 35. パラメータを改ざんすることで色々夢が広がりました。
–なんと商品の値段が0円になり無料でお買い物が!
–ポイントを無限に増やせた!
–キャンペーン期間に関係なく、限定アイテムをGET!
–ゲームのチートができた!
–バッチ処理がこけてすごく怒られた!
カートに商品を入れた際になぜか在庫から減る仕様とかになっていて、た めしに9999個商品をカートにいれたら他の客がその商品を購入できなく なりました。
情報を閲覧する処理で、キー値となっているパラメータごと消去すると、全 然別のユーザ情報が表示されることとかありました。(恐らく、DB側の一番 上のレコードの情報が検索結果として返ってきたのではないかと推測。)
折角頑張って見つけても、「後の運用時の確認で、矛盾が拾えるんで大丈 夫っス!」とか元気よく言われて、結局直してくれなくて悲しい気分になる。 (特に決済処理とかのはこの傾向がある。。。)
過去にエンカウントしたもの