OWASP Top 10
chắc là part 1
2025-08-12

OWASP Top 10 là danh sách 10 rủi ro bảo mật phổ biến và nghiêm trọng nhất trong phát triển ứng dụng web, được OWASP (Open Web Application Security Project) tổng hợp và cập nhật định kỳ dựa trên dữ liệu thực tế từ các tổ chức bảo mật và cộng đồng.

Nó đóng vai trò như một tiêu chuẩn tham khảo để lập trình viên, tester, và chuyên gia an ninh mạng biết được những lỗ hổng nào cần ưu tiên xử lý. Danh sách này bao gồm:

1. Injection

Lỗi Injection xảy ra khi dữ liệu do người dùng nhập vào được ứng dụng hiểu và xử lý như lệnh hoặc tham số thực, dẫn đến nguy cơ bị tấn công. Một số dạng phổ biến gồm:

Hậu quả có thể là đánh cắp thông tin nhạy cảm, chiếm quyền hệ thống, hoặc thực hiện các cuộc tấn công khác.

Biện pháp phòng tránh:

Command Injection là lỗ hổng web xảy ra khi mã phía server (như PHP) gọi lệnh hệ thống và kẻ tấn công lợi dụng để thực thi lệnh trên máy chủ. Ban đầu, họ có thể chỉ chạy các lệnh đơn giản như whoami hoặc đọc file, nhưng nguy hiểm nhất là mở reverse shell (ví dụ ;nc -e /bin/bash) để chiếm quyền dưới tài khoản mà web server đang chạy. Khi đã xâm nhập, kẻ tấn công có thể dò quét hệ thống và tìm cách mở rộng tấn công sang các hệ thống khác.

Mình sẽ vào Task 5 của mục OWASP Top 10 bởi tryhackme.com và bắt đầu vào instance của nó.

Câu trả lời sẽ là drpepper.txt

Nếu để ý kỹ, ta sẽ thấy không thật sự có tài khoản nào giống một tài khoản người dùng bình thường với shell thật như /bin/bash hay /bin/zsh. Vậy câu trả lời sẽ là 0.

Thực ra là làm cho biết chứ từ câu một đã có thể đoán được là Dr.Pepper rồi:v

2. Broken Authentication

Xác thực và quản lý phiên là thành phần cốt lõi của ứng dụng web.

Tiếp theo mình sẽ vào Task 7 và bắt đầu vào instance của nó.

Theo đề bài, nếu ta đăng ký sử dụng tên tài khoản đã có, nhưng với 1 vài chỉnh sửa nhỏ như 1 cái dấu cách, ta hoàn toàn có thể truy cập dữ liệu tài khoản đó. Ta sẽ tạo 1 tài khoản là " darren", với cái dấu cách đó và login vào hệ thống.

3. Sensitive Data Exposure

Sensitive Data Exposure xảy ra khi ứng dụng web vô tình tiết lộ dữ liệu nhạy cảm như thông tin cá nhân, tài chính, hoặc thông tin kỹ thuật (tài khoản, mật khẩu). Nguyên nhân có thể từ:

Lỗ hổng dạng này có thể nghiêm trọng nhưng đôi khi lại rất đơn giản để khai thác, không cần kiến thức mạng phức tạp.

Mình sẽ vào Task 11 và bắt đầu vào instance của nó.

Use the supporting material to access the sensitive data. What is the password hash of the admin user?: Mình sẽ lấy file database trước đó bằng wget vào trong hệ thống Linux của mình, và sử dụng sqlite3 như document của tryhackme trước đó nói và tìm ra password hash của admin.