Thứ Năm, 1 tháng 6, 2017

[PHÂN TÍCH] LỖI LOGIC ONONPAY

Bài viết hôm nay chủ yếu là về mặt logic còn vấn đề kỹ thuật cũng rất basic.
Mặc dù F.A, gấu không có nhưng chả hiểu sao tiền điện thoại thì vẫn cứ hết. Thẻ ngân hàng thì chỉ đăng ký VNTOPUP chứ không đăng ký BANKPLUS nên nạp tiền qua đó thì cũng mất 500đ tiền phí (::sad:: 500đ cũng phải tiết kiệm). Lang thang một vòng ở Appstore thấy cái tên lạ lạ ONONPAY với details:"Nạp tiền điện thoại". Xúc thôi, tải ngay về.
Review chút về ONONPAY:
- Logo rất đẹp, rất sáng tạo với 2 chữ o kết hợp 1 chữ p. =))
- Khá thân thiện với người dùng.
- Đăng ký nhanh chóng tiện lợi.
Xong phần PR miễn phí.
Ở ONONPAY có cơ chế đăng ký tài khoản thông qua email + xác nhận bằng mã OTP của điện thoại, ngoài ra thì cũng xác nhận mã OTP khi quên mật khẩu. Do đó với mã OTP thì ta có thể đăng ký tài khoản ONONPAY với bất kỳ số nào nếu ta nắm được mã OTP đó, ngoài ra khi nắm trong tay được mã OTP thì cũng có thể thay đổi mật khẩu của User đó, mà khi có User thì tha hồ có thẻ để nạp tiền gọi cho gấu cũng như nạp game rồi nhé. Hehe.

Cơ chế xác thực của ONONPAY là mã OTP sẽ được chuyển về Số điện thoại đăng ký và người dùng sẽ dùng mã OTP đó để đổi mật khẩu, với mỗi phần khẩu sẽ có timelife là 5 phút, nhưng những mật khẩu đó được nhập đi nhập lại rất nhiều lần trong vòng 5 phút. Mã OTP chỉ gồm có 4 ký tự số, đến đây thì chắc hẳn ai trong chúng ta cũng nghĩ đến BruteForce OTP rồi nhỉ, trong vòng 5 phút với 10000 lượt thì cũng không có gì quá khó khăn với mạng khỏe khỏe chút + mấy cái máy cái nhân tà tàng chạy nhiều luồng.


Tiếp tục chúng ta sẽ Decompile ứng dụng ONONPAY hoặc chặn bắt gói tin, rebuild lại một app dựa trên ONONPAY với đoạn code Brute Force để có thể dễ dàng viết một tools nho nhỏ để Burte Force người dùng. (Brute Force thì cũng lâu đấy, tốt nhất nên kết hợp với Social Engineer để xem ai dùng ONONPAY).

Một đoạn code Python nho nhỏ Auto Keyboard khai thác kèm với việc cài ứng dụng lên trên máy tính, đơn giản không cần phải Decompile, Capture Packet,...
import pyautogui
for i in range (1000,10000):
    pyautogui.typewrite(str(i))
    pyautogui.typewrite(["enter"])

Lưu ý: Tất cả các bài viết chỉ nhằm mục đích để các bạn Dev chú ý hơn, những kỹ thuật trong bài rất đơn giản chủ yếu do sự vô tình của các bạn, không ủng hộ việc sử dụng những kiến thức đơn giản này vào nhằm mục đích mưu lợi cá nhân.

Timeline:
14:00 30/05/2017: Phát hiện lỗi.
14:00 31/05/2017: Báo cho bên ONONPAY.
17:00 01/06/2017: Viết bài cảnh báo nhằm mục đích chia sẻ kinh nghiệm.

1 nhận xét:



  1. Hiện tại chúng tôi cung cấp các sản phẩm của Wagner như: Máy phun sơn công nghiệp, máy phun sơn cầm tay, máy phun bột trét (bả), máy phun chống thấm, máy sơn kẻ vạch đường...


    Đến với văn phòng của chúng tối khách hàng có thể dễ dàng xem tận nơi và được tư vấn một cách kỹ càng nhất về các sản phẩm máy phun của Wagner.

    ĐẶC BIỆT Bảo Kim cũng hân hạnh là Nhà phân phối các loại máy phun sơn nước, máy phun bột bả, máy phun bột trét, máy phun chống thấm của hãng GRACO - Mỹ. Hãng Graco và Wagner đều là hai thương hiệu nổi tiếng, chất lượng tốt nhất trên thị trường Thế giới. Bảo Kim luôn hỗ trợ vận hành bàn giao sản phẩm cho quý khách hàng ngay tại công trình.

    Liên hệ ngay 0938 500 095 để nhận được Báo giá chi tiết:

    - máy phun bột trét

    - máy phun bột bả

    - máy phun sơn nước

    - máy phun chống thấm

    1. Tại văn phòng của công ty

    VP Hồ Chí Minh: 69 đường số 2, Khu phố 4, P. An Phú, Quận 2,

    VP Hà Nội: 121 D4 Khu đô thị Đại Kim, P. Định Công, Q. Hoàng Mai, Hà Nội

    Hotline: 0913 123 345

    ĐT: (08) 6287 2951 - Fax: (08) 6281 8259

    website: http://mayphunsonwagner.vn/

    Trả lờiXóa