Thứ Ba, 27 tháng 6, 2017

[PHÂN TÍCH + SERI ÁP DỤNG CTF] Stored XSS - Em tôi đã hack didongthongminh.vn như thế nào? :v

DOCUMENT:
CTF link: https://www.root-me.org/fr/Challenges/Web-Client/XSS-Stored-1
Docment link: https://doc.lagout.org/security /Cross%20Site%20Scripting%20Attacks%20Xss%20Exploits%20and%20Defense.pdf
PENTEST:
Dạo một vòng tìm mua cái điện thoại phụ phát được 4G thì tìm được didongthongminh.vn với cái máy như thế này:
http://didongthongminh.vn/fujitsu/fujitsu-arrrow-f-08d-p2101.html
Giá thành rẻ hơn cả một bộ phát 4G lại còn rất nhiều chức năng. ^^
Nhìn thấy khung coment nhập email và username không cần xác nhận. Thử Stored XSS xem sao.
Với thẻ image cơ bản:
<IMG SRC=/ onerror="alert(1)"></img>
-- Done. :D
 


Tên user trong hình: TÙng
KỊCH BẢN TẤN CÔNG:
Bước 1: User sử dụng lỗi Stored XSS với link lừa đảo.
Bước 2: User khác hoặc Admin click vào link tìm kiếm điện thoại trên, hộp thoại với nội dung lừa đảo được đưa ra.
Bước 3: Trong site lừa đảo có docment.cookie, khi lấy được cookie của admin thì rất nhiều khả năng có thể được đưa ra như: thống kê khách đặt, thống kê khách hàng, thay đổi nội dung site...
BIỆN PHÁP KHẮC PHỤC:
          Xử lý input trong comment, xác nhận khi đăng ký, đăng nhập, comment.
TIMELINE:
15:00 23/06/2017 - Được thằng em phát hiện nó hổng và thông báo.
20:00 23/06/2017 - Liên hệ với didongthongminh.vn và gửi Report.
xx:xx 24/06/2017 - didongthongminh.vn xác nhận lỗ hổng và tiến hành fix.
xx:xx 25/06/2017 - Nhận được 1 voucher từ didongthongminh.vn ^^
09:30 27/06/2017 - Xác nhận didongthongminh.vn đã fix và viết writeup.
 


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

[PHÂN TÍCH + SERI ÁP DỤNG CTF] Funny - SQL injection - authentication

Tiếp tục Seri Áp dụng CTF, hôm nay sẽ là một ví dụ rất cơ bản về SQL injection.
Link CTF: http://challenge01.root-me.org/web-serveur/ch9/
Ebook: http://repository.root-me.org/Exploitation%20-%20Web/EN%20-%20Blackhat%20Europe%202009%20-%20Advanced%20SQL%20injection%20whitepaper.pdf
Link thực tế:
vcnc.co/login.php
Với login page này ta thử với:
User: '=' 'or'
Pass: '=' 'or'
Ta được:






Thực sự thì hiện tại lỗi này rất hiếm gặp do các dev-er đã fix hết đa số những ký tự đầu vào nhưng với nhiều câu lệnh truy vấn khác phức tạp hơn thì vẫn có thể bypass được.



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.