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.

Thứ Ba, 30 tháng 5, 2017

[PHÂN TÍCH] GET CONPON VNTRIP.VN

Sau lần trước thì VNTRIP cũng đã khắc phục và xoá services "admin-services" bằng cách thay thế một services khác tạm gọi là "xxx" và tình trạng thì vẫn tương tự như "admin-services" trước kia.
Khi truy cập vào:
https://xxx.vntrip.vn/vntrip/


Mọi nội dung trên test-services đều là thông tin test nên không có gì quan trọng nhưng thay vào đó thay các api của xxx vào services.
https://services.vntrip.vn/vntrip/orders/get-list-coupon-code/


Vậy là chúng ta đã có bộ COUPON của VnTrip.
Ngoài coupon ra thì trên api của VnTrip còn có một số nội dung như thông tin khách đặt vé, thông tin khách sạn, thông tin phòng...

Timeline:
10:00 - 04/05/2017: gọi điện cho VnTrip.
12:00 - 04/05/2017: gửi mail cho bộ phận tester bên VnTrip.
xx:xx - 05/05/2017: nhận được phản hồi và cảm ơn.
15:00 - 15/05/2017: kiểm tra lại và thấy lỗi chưa được vá gọi điện lại lên tổng đài, cũng như kỹ thuật.
21:00 - 07/06/2017: fixed.
Vì vậy mình viết bài này để cảnh báo.

Thứ Ba, 9 tháng 5, 2017

[PHÂN TÍCH + SERI ÁP DỤNG CTF] Google Hacking, Structure FrameWork

Laravel hiện là một trong số những FrameWork php rất được ưa chuộng.
https://quickadminpanel.com/blog/how-to-use-laravel-env-example-files/
http://challenge01.root-me.org/web-serveur/ch6/
Qua bài viết trên + cái tittle thì có lẽ các bạn cũng đã hình dung được một phần bài viết hôm nay rồi phải không? Tiếp tục nào.
Thử trên site của "ISAMCO".
Google Hacking với nội dung: inurl:"isamco.com.vn" ext:env
Ra đúng như chúng ta dự kiến.

Khi có DB_HOST, DB_USER, DB_PASSWORD thì việc còn lại dành có sự sáng tạo của các bạn. Như mình nghịch chút chút:

Update: Mới phát hiện thêm là hệ thống này ảnh hưởng tới toàn bộ hệ thống Website của Mitsubishi Việt Nam, hệ thống vẫn chưa được fix.
Timeline:
10:00:00 02/05/2017 - Thực hành và báo lỗi cho ISAMCO, MITSUBISHI-MOTOR
16:00:00 09/05/2017 - Viết bài cảnh báo.
14:00:00 31/05/2017 - Liên hệ được bạn IT, fixed.

Lại một vấn đề bảo mật cơ bản phải không?

Thứ Sáu, 5 tháng 5, 2017

[PHÂN TÍCH + SERI ÁP DỤNG CTF] HTTP directory indexing và việc đăng ký tài khoản trên các Website/ Ứng dụng Thương mại điện tử.

Bạn nào đã từng chơi root-me.org thì chắc cũng sẽ biết đến một trong số những bài đầu của Web Server : "HTTP directory indexing" hôm nay mình sẽ phân tích về vấn đề đó theo cách diễn tả của mình.
Bắt đầu nào, directory là thư mục vậy http directory indexing nói nôm na sẽ là thông qua http để truy cập vào thư mục thường được hiển thị ở site index.
Cũng như bài tập trên root-me, đầu tiên chúng ta tấn công dictionary để xem các directory thông qua các wordlist.
Các bạn có thể tự viết tools bằng nhiều ngôn ngữ, ví dụ như Python hoặc lên github cũng sẽ có rất nhiều tools cho các bạn. Ở đây tôi dùng luôn công cụ "dirb" trên Kali Linux.
Sau khi chạy "dirb" ta thu được.
Tiếp tục nào, thử nhập những link đó vào Brower xem sao:
Không bị hạn chế 403. :D :D :D
Lòng vòng bên trong cfco.com.vn và 1 số site do cfco tạo ra mình thu được một số thứ như, bộ tools với file manager, danh sách khách hàng, danh sách mạng lưới và một điều rất là thú vị nữa đó chính là "email" và "password" của một email quản lý.



Tiếp tục truy cập vào trong email nào.
Không gặp phải bất kỳ vấn đề xác thực nào. Cái này người dùng cần xác thực 2 lớp nhé.
Trong email thì mình phát hiện ra email này không chỉ quản lý mỗi một trang mà là rất nhiều trang :((
Mọi thông tin như số điện thoại khách hàng, tên tuổi, địa chỉ, hóa đơn đều trong này cả.
Thậm chí một số người dùng đăng ký tài khoản trên này lại trùng với tài khoản mạng xã hội như facebook, gmail...
Rất nhiều trang dịch vụ thương mại điện tử lớn đang sử dụng dịch vụ của A như: Zenda, Sevenam, goceva, senslim, ...

Timeline:
14:00:00 24/04/2017 - Thử nghiệm trên các site do cfco.com.vn thiết kế.
14:00:00 25/04/2017 - Gọi điện báo cho bên kỹ thuật của cfco.com.vn và nhận được sự phản hồi và sẽ thực hiện fix sau 30/04/2017, nghỉ lễ cái đã nhỉ. :D
14:00:00 26/04/2017 - Phát hiện có đối tượng khác truy cập vào mail của bên cfco.com.vn, tiếp tục thông báo để fix.
11:00:00 05/05/2017 - cfco.com.vn fixed.
12:00:00 05/05/2017 - Public để cảnh báo cho mọi người.

[Tutorial] NSA’s Tools leaks


Thực sự thì trên Internet đã có rất nhiều Tutorial rồi nên mình chỉ gọi là chia sẻ Tutorial cho các bạn tại nguồn mà mình nghĩ là chi tiết nhất thôi.
https://www.exploit-db.com/docs/41896.pdf
Các bạn chỉ việc thực hiện theo là có thể trở thành một Script kiddie rồi. :D :D :D

Thứ Sáu, 31 tháng 3, 2017

[PHÂN TÍCH] Vntrip đã lộ thông tin khách hàng như thế nào?


     VnTrip đã lộ thông tin khách hàng như thế nào?
     Đã từng thông báo cho tổng đài bên VnTrip nhưng không nhận được hồi âm. Nhưng VnTrip cũng đã tự khắc phục lại được lỗi trên Server của họ nên cũng rất đáng mừng.
     Bài viết này mang tính chất phân tích để cho các DEV quan tâm hơn về vấn đề bảo mật của Mobile App sau nhiều vụ lộ lọt thông tin trước đây.
     Tiếp tục RE Mobile App của VnTrip download trên apkpure, app này được build cách đây khá lâu từ nửa năm trước.
     Sau khi RE Mobile App của VnTrip (hiện nay vẫn dùng phiên bản App đó) ta sẽ thu được 2 services: 1 là services của User, 1 là service của Admin.    
     Khi các DEV lập trình thường thường sẽ có rất nhiều phiên bản Services khác nhau như: Test, Admin, User... và chúng thường sử dụng một mẫu API chung, có thể Services chính của các DEV sẽ an toàn và được bảo mật nhưng những Services phụ, Services Test,... không được quan tâm đúng mực và những Services như vậy chính là những lỗ hổng giúp các Attacker (Pentester/Hacker) khai thác được những thông tin cần thiết.
     Ví dụ như khi ta sử dụng Django Framework (cái này mình dùng làm đồ án nên hay lấy ra) thì một số chức năng bảo mật thường được disable để cho các DEV dễ dàng hơn trong việc lập trình, nhưng từ những sơ hở đó có thể tạo ra những hệ qủa với Services chính. Services chính mặc dù đã enable những chức năng bảo mật nhưng lại dùng chung API với Services Test nên như vậy các Attacker dễ dàng xâm nhập hệ thống qua các API từ đó truy xuất được những dữ liệu.
     Vì vậy khuyến cáo các DEV nên xử lý toàn bộ các services với các chức năng bảo mật như ở Services chính hoặc có thể xóa bỏ Services Test nếu không cần thiết.
     Trong trường hợp của server T thì từ services Admin ta có thể tìm ra điểm tương đồng ở services User từ đó khai thác và lấy được toàn bộ thông tin Orders.
     Còn việc tìm ra những API, những Directory thì các DEV cũng nên cẩn thận fix từng lỗi một trong những dòng code của mình và pentest thật kỹ lưỡng trước khi đưa ra thị trường. Nên sử dụng các token, sessionession hợp lý trong từng sản phẩm của mình.
     Bài tiếp theo là một Tools Attack nho nhỏ viết bằng Python rất mong được sự ủng hộ, gíup đỡ của mọi người.

Thứ Sáu, 10 tháng 3, 2017

[PHÂN TÍCH] 12bay đã lộ thông tin khách hàng như thế nào?

     Như đã nói ở những phần trước sau đây mình xin viết bài về 12bay.
     Dạo này thấy mấy site về hàng không bị tấn công nhiều qúa, mình mạn phép làm thêm 1 bài về 12bay đã lộ thông tin khách hàng như thế nào?
     12bay là một trang đặt vé cũng khá là nổi tiếng tại Việt Nam. Với lượng đặt vé hàng ngày lên đến hàng trăm đơn. Cùng với cái sở thích pentest thì mình lại nghịch ngợm xem sao. (Bạn Dev cũng nhờ mình PenTest hôm rảnh rảnh nói chuyện nhưng quên chưa lấy số).
     Hehe, tên miền của trang này cũng khá hay, lượng truy cập cũng khá đông, tấn công thôi.
     Vì những MobileApp thường bảo mật rất kém như ở bài trước nên mình lại tiếp tục tìm thông qua MobileApp, đầu tiên tải file APK của App trên APKpure về.
     App này cũng khá là được quan tâm, rất hay cập nhật những tính năng mới nhưng mà vẫn chả quan tâm gì đến bảo mật.
     Tải về thôi được 1 file .apk.
     Tiếp tục unzip ta thu được source bên trong file apk.
     Sau một thời gian Reverse engineering thì mình có thu được một đoạn api có dạng:
     "http://server12bay.vn/Api/.../info.php?id=" Web App này hôm mình nghịch thì không có được mã hóa nhưng sau đó vài hôm đã được mã hóa ngay chắc thấy lượng truy cập nhiều qúa. Web App này cho chúng ta biết được những thông tin:
     Tên, pnrcode, giờ bay, tiền bay...
     Không nản chí tiếp tục với đoạn api thứ 2 có dạng:
     Tiếp tục với kỹ thuật Buffer Overflows ta có API tiếp theo.
     "http://server12bay.vn/Api/.../success.php?id="Web App này đưa thông tin dưới dạng JSON. Hay rồi đấy, rất ngắn gọn chả có nội dung gì cả nhưng... cái hay lại ở chỗ đó.
     Mình tiếp tục sử dụng kỹ thuật SQLinjection với đoạn api đó thì kết qủa thu được lại rất bất ngờ.





     Tèn ten toàn bộ dữ liệu khách hàng đặt vé đã được thu thập.
     Thời gian:
     Ngày 10/03/2017
     8:38 AM - Thông báo cho bên tổng đài, bên tổng đài nhắn tin lại bảo tự liên hệ với bên kỹ thuật. Feeling sad.
     8:40 AM - Thông báo qua facebook cho bên kỹ thuật.
     8:00 PM - Gọi và được bạn Kỹ thuật gọi lại cả 2 bên đã hợp tác và vá lỗ hổng này cũng như những lỗ hổng khác.
     Ngày 11/11/2019
     Thi thoảng nhớ lại tự nhiên thấy bồi hồi và lại xin bạn kỹ thuật cái code giảm giá. =))

     Công cụ sử dụng: jd-gui, sqlmap, dirb, addon firefox sqlite...