Self learn portswigger

Hi fen đến với quá trình tự học Web Security trên PortSwigger của mình. Việc tự học trên nền tảng Portswigger cũng khá hay, đầy đủ các tài liệu và LAB, do đó rất recommend mọi người thử qua nhé.

Mặc dù Portswigger đã rất tâm lý khi chuẩn bị rất nhiều chủ đề về web security, nhưng tiếc là mình chỉ mới “trải qua” được bốn phần chính: SQL Injection, XSS, File Upload Vulnerabilities, và OAuth 2.0 Authentication Vulnerabilities. Let’s go.

SQL Injection

SQLi là một lỗ hổng trên web mà attacker sẽ có thể tạo ra những query đến database của website đó. Lỗ hổng này sẽ làm những dữ liệu mà khó có thể xem được một cách bình thường trở nên bị leak.

Lỗ hổng này khá rộng. Nó có thể ảnh hưởng trực tiếp đến user data và cả web database nếu attack muốn (có thể thêm, xóa, sửa,…)

Nếu attacker có thể khai thác được SQLi thì có thể dẫn đến nhiều hệ lụy khôn lường. Ví dụ như dữ liệu bị lộ (tài khoản người dùng, thông tin cá nhân,…). Điều này trở nên hết sức phức tạp vì sẽ liên quan đến nhiều khía cạnh bảo mật trên môi trường Internet.

Chi tiết ở đây nhé: SQL Injecton

XSS - Cross-site Scripting

Cross-site scripting (XSS) là lỗ hổng cho phép attacker tương tác, phá phách ứng dụng web để có thể đánh lừa, phá vỡ các chính sách của website, tiến hành trích xuất dữ liệu người dùng, leo thang đặc quyền… bằng các đoạn script được truyền vào các tham số, các chức năng của website.

Cách XSS hoạt động

Chi tiết ở đây nhé: XSS

File Upload Vulnerabilities

Lỗ hổng file upload là một loại lỗ hổng có mức độ nghiêm trọng cao. Nó được xảy ra khi một web server cho phép người dùng đăng tải một tệp lên filesystems mà không qua những bước xác thực (tên, loại tệp, nội dung, kích thước,…) hoặc hệ thống bị lỗi khi xác thực.

Khi đó, attacker có thể lợi dụng lỗ hổng này để tấn công hệ thống bằng các phương pháp khác nhau, đặc biệt là là RCE (remote code execution), khiến hệ thống của bạn vào trạng thái nguy hiểm.

Hai tác động chính của lỗ hổng này bao gồm:

Chi tiết ở đây nhé: File Upload Vulnerabilities

OAuth2 Authentication Vulnerabilities

Có bao giờ bạn thắc mắc rằng tại sao Gitlab lại cho phép Sign in bằng các website/framework khác (Google, Github, Twitter…)?

Ví dụ về OAuth

Từ lúc mình biết đến chức năng quick sign in này thì mình có thắc mắc như vậy và cái đó chính là OAuth/OAuth2.0 trên các website.

Hiểu đơn giản rằng, OAuth sẽ cho phép một website sử dụng chức năng ủy quyền tài khoản của user với tài khoản ở một website khác. Với OAuth, người dùng có thể tinh chỉnh dữ liệu nào họ muốn chia sẻ thay vì phải giao toàn quyền kiểm soát tài khoản của họ cho bên thứ ba. Cơ chế này rất hay và tiện ích khi người dùng có thể sử dụng một tài khoản và đăng nhập trên nhiều nền tảng khác nhau.

OAuth và OAuth 2.0 là hai phiên bản khác nhau và OAuth 2.0 không được phát triển trên source của OAuth. Theo mình thấy thì nó khá hay ho và hữu ích. Tuy vậy, nó cũng tồn tại các “khe hở” khiến nó có thể bị attacker lợi dụng.

Chi tiết ở đây nhé: OAuth2 Authentication Vulnerabilities