Webgoat chỉ có web pentest thôi đúng không?

WebGoat là ứng dụng web viết bằng Java để học về an toàn thông tin.

Webgoat thuộc dự án OWASP (Open Source Foundation for Application Security) chuyên làm về kiểm thử an toàn thông tin cho ứng dụng web.

OWASP có phân loại các lỗi an toàn thông tin của ứng dụng web thành nhiều chủ đề như A1, A2, A3… A là viết tắt của chữ Attack là cách tấn công ứng dụng web.

Webgoat hiện tại có 10 chủ đề về cách tấn công web application như bên dưới

Phần General của Webgoat nói về cách hoạt động của giao thức HTTP gồm:

  • HTTP Basics
  • HTTP Proxies
  • Developer Tools
  • CIA Triad
  • Writing new lesson

Giao thức HTTP là 1 kiến thức nền tảng không thể không có nếu bạn muốn làm web pentester.


Broken Access Control của Webgoat nói về việc điều khiển truy cập bị phá vỡ gồm:

  • Hijack a session
  • Insecure Direct Object References
  • Missing Function Level Access Control
  • Spoofing an Authentication Cookie

Cách lập trình để phân chia quyền hạn người dùng nào được truy cập vào những dữ liệu nào nếu không được kiểm tra kĩ lưỡng sẽ tạo ra những lổ hổng khủng khiếp vì người dùng bình thường có thể lấy được toàn bộ dữ liệu của hệ thống đang có.

Điều khiển truy cập cũng có thể nằm ở các tham số cấu hình của phần mềm…


Cryptographic Failures của Webgoat nói về việc sử dụng mã hóa không đúng cách hoặc sử dụng mật mã không đúng với mục đích chức năng được thiết kế của các thuật toán mã hóa…

Thuật toán mã hóa khá phức tạp về mặt toán học và cách lập trình để biến chúng thành hiện thực, làm được việc nhanh gọn lẹ trong máy tính.

Phần lớn các lập trình viên khi viết phần mềm, ứng dụng web chỉ xài các thư viện mã hóa có sẵn, các chức năng mã hóa có sẵn trong các framework của các ngôn ngữ lập trình.

Viết các thư viện mã hóa dữ liệu 100% không phải là công việc của công nhân code, thợ viết code, người viết code, người viết mã, Tây gọi là coder, chỉ cần lấy xài thôi, hiểu rõ các hàm mã hóa làm gì thôi để xài cho đúng đã là 1 vấn đề không nhỏ, không dễ chút nào với các coder, hehe.