Tiếp nối phần 2, trong bài viết này mình sẽ hướng dẫn các bạn khai thác các lỗ hổng OWASP như Insecure Deserialization, Components With known Vulnerabilities, và Insufficient Logging & Monitoring trong thử thách OWASP Top 10.
Tham gia kênh Telegram của AnonyViet 👉 Link 👈 |
TryHackMe: Thử thách OWASP Top 10 [Phần 3]
Nhiệm vụ 21: [Mức độ nghiêm trọng 8] Insecure Deserialization
Ứng dụng như nào sẽ dễ bị tấn công?
Bất kỳ ứng dụng nào lưu trữ hoặc tìm nạp dữ liệu mà không có cách xác thực hoặc kiểm tra tính toàn vẹn nào được áp dụng cho dữ liệu được truy vấn hoặc lưu trữ. Một vài ví dụ về các ứng dụng mang tính chất này là:
- Trang web thương mại điện tử
- Diễn đàn
- API
- Các ứng dung Runtimes (Tomcat, Jenkins, Jboss,…)
Các bạn có thể tìm hiểu kỹ hơn về Insecure Deserialization tại đây.
#1 Ai đã phát triển ứng dụng Tomcat?
Đáp án: Apache Software Foundation
#2 Loại tấn công nào làm hỏng các dịch vụ có thể được thực hiện với tính năng giải mã không an toàn?
Định nghĩa này vẫn còn khá rộng. Nhưng có thể hiểu như này, giải mã không an toàn là thay thế dữ liệu được ứng dụng xử lý bằng mã độc hại; cho phép bất cứ thứ gì từ DoS (Từ chối dịch vụ) đến RCE (Thực thi mã độc từ xa) mà kẻ tấn công có thể sử dụng để đạt được chỗ đứng trong pentesting.
Đáp án: Denial of Service
Nhiệm vụ 22 [Mức độ nghiêm trọng 8] Giải mã không an toàn – Đối tượng
#1 Chọn thuật ngữ đúng của câu sau:
if a dog was sleeping, would this be:
A) A State
B) A Behaviour
Đáp án: A Behaviour
Nhiệm vụ 23: [Mức độ nghiêm trọng 8] Insecure Deserialization — Deserialization
Giả sử bạn có mật khẩu “password123” từ một chương trình cần được lưu trữ trong cơ sở dữ liệu trên hệ thống khác. Để di chuyển trên một mạng, chuỗi/đầu ra này cần được chuyển đổi thành nhị phân. Tất nhiên, mật khẩu cần được lưu trữ dưới dạng “password123” chứ không phải chuỗi nhị phân của nó. Khi đến cơ sở dữ liệu, nó sẽ được chuyển đổi hoặc deserialised trở lại thành “password123” để được lưu trữ.
#1 Tên của định dạng cơ sở 2 mà dữ liệu được gửi qua mạng là gì?
Đáp án: binary
Nhiệm vụ 24 [Mức độ nghiêm trọng 8] Insecure Deserialization — Cookies
#1 Nếu cookie có đường dẫn là webapp.com/login, thì URL mà người dùng phải truy cập sẽ là gì?
Đáp án: webapp.com/login
#2 Từ viết tắt của công nghệ web mà Secure cookies hoạt động trên đó là gì?
Đáp án: Https
Nhiệm vụ 25: [Mức độ nghiêm trọng 8] Insecure Deserialization — Cookies Practical
Mình sẽ đăng nhập một trang web ví dụ như dưới.
Tạo một tài khoản. Không cần nhập chi tiết, bạn có thể nhập những gì bạn thích.
Thông báo ở bên phải, bạn có thông tin chi tiết của bạn.
Nhấp chuột phải vào trang và nhấn “Inspect Element” rồi vào tab “Storage”.
Kiểm tra dữ liệu được mã hóa
Bạn sẽ thấy ở đây có các cookie được mã hóa cả plaintext và base64. Flag đầu tiên sẽ được tìm thấy ở một trong những cookie này.
Đáp án: THM{good_old_base64_huh}
Sửa đổi giá trị cookie
Lưu ý ở đây rằng bạn có một cookie có tên “userType”. Bạn hiện là người dùng, như được xác nhận bởi thông tin của bạn trên trang “myprofile”.
Ứng dụng này xác định những gì bạn có thể và không thể thấy bởi userType của bạn. Điều gì sẽ xảy ra nếu bạn muốn trở thành một quản trị viên?
Nhấp đúp chuột trái vào cột “Value” của “userType” để sửa đổi nội dung. Hãy thay đổi userType của chúng ta thành “admin” và điều hướng đến http://10.10.83.1/admin để lấy flag thứ hai.
Đáp án: THM{heres_the_admin_flag}
Nhiệm vụ 26: [Mức độ nghiêm trọng 8] Insecure Deserialization — Code Execution
1. Đầu tiên, thay đổi giá trị của cookie userType từ “admin” thành “user” và quay lại http://10.10.83.1/myprofile.
2. Sau đó, nhấp chuột trái vào URL trong “Exhange your vim” trong ảnh chụp màn hình bên dưới.
3. Tiếp theo nhấp chuột trái vào URL trong “Provide your feedback!” đến trang như này:
#1 flag.txt
Thay đổi netcat ip.
Dùng lệnh nano rce.py
Đổi chỗ tryhackmyIP thành IP của web đó.
Dán cái này vào cookie “encodedPayload” trong trình duyệt của bạn:
7. Đảm bảo netcat vẫn đang chạy:
8. Làm mới trang. Nó sẽ bị treo, hãy quay lại netcat:
Đáp án: 4a69a7ff9fd68
Nhiệm vụ 29: [Mức độ nghiêm trọng 9] Components With Known Vulnerabilities — Lab
#1 Có bao nhiêu ký tự trong /etc/passwd (sử dụng wc -c /etc/passwd để có câu trả lời)
Truy cập website, như chúng ta thấy đây là một website sách bình thường.
Nghiên cứu một chút về các lỗ hổng có trong các trang web bán sách online và mình tìm thấy cái này.
Đáp án: 1611
Nhiệm vụ 30: [Mức độ nghiêm trọng 10] Insufficient Logging & Monitoring
Chúng tôi phải tải xuống file login-logs.txt. Nhấp vào download và lưu tệp.
#1 Kẻ tấn công đang sử dụng địa chỉ IP nào?
Chúng ta có thể sử dụng cat login-logs.txt và thấy tất cả các lối vào.
Có một người liên tục truy cập vào hệ thống với các tên người dùng khác nhau.
Đáp án: 49.99.13.16
#2 Loại tấn công nào đang được thực hiện?
HTTP 401 cho biết rằng yêu cầu chưa được áp dụng vì nó thiếu thông tin xác thực hợp lệ cho tài nguyên đích.
Vì vậy, mĩnh nghĩ đó là một cuộc tấn công brute force vì chúng ta thấy rằng ai đó đang liên tục thử mật khẩu với một tên người dùng khác.
Đáp án: Brute Force
Vậy là hoàn thành xong seri này rồi. Các bạn có mong chờ các seri khác không nào. Ngoài ra, bạn cũng có thể xem thêm các bạn thử thách khác trên tryhackme tại đây.