Ysoserial Common Collections 3 Analyst (CC3)

Ysoserial Common Collections 3 Analyst (CC3) Tổng quan CC3 (CommonsCollections3) trong ysoserial là một gadget chain dựa trên thư viện Apache Commons Collections để kích hoạt hành vi nguy hiểm thông qua Java deserialization. Nó dựa vào cách một số lớp trong thư viện có thể được “xâu chuỗi” (chain) để thực thi logic ngoài ý muốn khi một đối tượng được deserialization. SetUp Debug trong IntelliJ Lúc tiến hành setup để có thể debug, phải chú ý rằng CC1 và CC3 đã không còn chạy được sau Java version 8u71, vì sau phiên bản java đó sun.reflect.annotation.AnnotationInvocationHandler đã thay đổi và không còn khả dụng. Vì vậy setup đẹp nhất là sử tải JDK 1.7 kèm theo đó là sử dụng Ysoserial Commons Collections version 3.1. ...

December 21, 2025 · 6 min · Phat Mai

Velocity Server Side Template Injection Challenge

Velocity Server Side Template Injection Challenge Tổng quan về lab Velocity SSTI Đây là một lab mình thiết kế ra để demo và học về SSTI. Bên trong lab được chia ra làm 4 level với các lớp filter khác nhau. Nhiệm vụ của mình là bypass được các lớp bảo mật đó nhằm mục đích cuối cùng là RCE. Bây giờ mình sẽ đi vào phân tích chức năng của web app. ...

December 20, 2025 · 9 min · Phat Mai

CBJS Java Misconfiguration Challenge

CBJS Java Misconfiguration Challenge Statement Viewer 1: Lỗ hổng từ đặc quyền “Privileged” và sự hớ hênh của Admin Tổng quan ứng dụng Ứng dụng cung cấp chức năng cơ bản: cho phép người dùng upload file (định dạng PDF/TXT) và view statement để xem lại các tệp tin đã tải lên. Mỗi tệp tin được cấp một đường dẫn riêng biệt để truy xuất. Qua phân tích mã nguồn (Whitebox), chúng ta sẽ tập trung vào những "backdoor" mà developer đã bỏ quên. ...

December 19, 2025 · 8 min · Phat Mai

ServerSide Template Injection (SSTI) Lab

ServerSide Template Injection (SSTI) Lab SSTI là gì Server-Side Template Injection (SSTI) là một lỗ hổng bảo mật web nghiêm trọng cho phép kẻ tấn công chèn mã độc vào template của ứng dụng, dẫn đến việc mã này được thực thi trên phía server. Lỗ hổng này thường xảy ra khi dữ liệu đầu vào từ người dùng được nối trực tiếp vào template thay vì được truyền dưới dạng dữ liệu an toàn. ...

December 16, 2025 · 10 min · Phat Mai

GraphQL API Vulnerability

GraphQL API Vulnerability PortSwigger Challenge Overview về GraphQL GraphQL là một ngôn ngữ truy vấn cho API (Query Language for APIs) và cũng là một môi trường thực thi phía máy chủ (server-side runtime) để thực hiện các truy vấn đó. Để dễ hiểu hãy hình dung như sau: Với API truyền thống (như REST API): Bạn phải gọi nhiều "endpoint"(đường dẫn) khác nhau để lấy các loại dữ liệu khác nhau. Ví dụ: để lấy thông tin người dùng và các bài viết của họ, bạn có thể phải gọi /users/1 để lấy thông tin người dùng, sau đó gọi /users/1/posts để lấy danh sách bài viết. Bạn thường nhận về toàn bộ dữ liệu mà endpoint đó cung cấp, dù bạn có cần hết hay không. ...

December 15, 2025 · 15 min · Phat Mai

PortSwigger CORS (Cross-Origin Resource Sharing) challenge WriteUp

PortSwigger CORS (Cross-Origin Resource Sharing) challenge WriteUp Overview về CORS CORS là gì? Vì sao lại xuất hiện CORS (Cross-Origin Resource Sharing) là một cơ chế bảo mật trong web cho phép các tài nguyên trên một máy chủ được chia sẻ với các trang web có nguồn (origin) khác. “Nguồn” ở đây được định nghĩa bởi ba yếu tố: giao thức (http, https), tên miền (domain), và cổng (port). ...

December 14, 2025 · 10 min · Phat Mai

PortSwigger CSRF Challenge WriteUps

PortSwigger CSRF Challenge WriteUp Giới thiệu về CSRF (Cross-Site Request Forgery) Lỗ hổng CSRF là gì : Cross-Site Request Forgery hay còn gọi theo tiếng việt là giả mạo yêu cầu trên nhiều trang, là một lỗ hổng bảo mật cho phép attacker lừa người dùng đã được xác thực (đã đăng nhập) thực hiện các hành động không mong muốn trên 1 ứng dụng Web. Nói đơn giản thì attacker sẽ mượn danh tính và session của một victim để gửi đi một yêu cầu giả mạo đến ứng dụng mà victim không hề hay biết. Nếu ứng dụng dễ bị tấn công, nó sẽ không thể phân biệt được đâu là yêu cầu giả mạo đâu là yêu cầu hợp lệ của victim (User). CSRF hoạt động như thế nào : Để thực hiện tấn công CSRF cần có 3 điều kiện bao gồm : Hành động quan trọng : Ứng dụng phải có một function (hành động, action) mà attacker muốn thực hiện ví dụ như là đổi mật khẩu, đổi username, đổi email, chuyển tiền,…. Nói chung nó có lợi có attacker là tương hết hay còn gọi là attack surface ngon, nhiều. Xử lý request dựa trên cookie, session : Application phải chỉ dựa vào cookie của trình duyệt để xác định người dùng đang gửi yêu cầu. Không có cơ chế nào xác minh request. Không có tham số không thể đoán trước : Các tham số trong yêu cầu thực hiện hành động phải là những giá trị mà attacker có thể đoán trược hoặc là biết trước. Tại sao lỗ hổng này tồn tại : Lỗ hổng CSRF tồn tại do sự tin tưởng của ứng dụng web vào các cookie mà trình duyệt tự động gửi kèm theo mỗi yêu cầu. Ứng dụng chỉ kiểm tra “ai” đang gửi yêu cầu (dựa trên cookie session) mà không kiểm tra “ý định” của người dùng có thực sự muốn thực hiện hành động đó hay không. ...

December 12, 2025 · 22 min · Phat Mai

Ysoserial Commons Collections 5 Analyst

Ysoserial Commons Collections 5 Analyst Tổng quan CommonsCollections 5 trong Ysoserial CommonsCollections là một trong những gadget chain nổi tiếng nhất trong các cuộc tấn công khai thác Java deserialization không an toàn, đặc biệt khi ứng dụng sử dụng thư viện Apache Commons Collections. Trong bài viết này, chúng ta sẽ tập trung vào CommonsCollections5 (CC5) — một trong các chain được tích hợp sẵn trong công cụ ysoserial . Mình chọn phân tích CC5 vì đây là chain được nhiều người đề xuất để học do tính minh bạch và dễ debug. ...

December 11, 2025 · 9 min · Phat Mai

Java Deserialze - URLDNS Chain analysis (ysoserial)

Java Deserialze - URLDNS Chain analysis (ysoserial) Java Deserialize là gì? Java cung cấp cho người dùng hàm writeObject() để tiến hành quá trình serialize các object ở đây quá trình serialize sinh ra để chuyển một đối tượng Java thành chuỗi byte để lưu trữ (file, DB) hoặc truyền qua mạng (socket, RMI, JMS). Và để có thể đọc được dữ liệu được serialize từ ObjectInputStream ta có quá trình deserialize ở java sử dụng hàm readObject() cho quá trình đó. Khai thác Java Object Injection Rủi ro sẽ đến với các đối tượng xử lý deserialize các Untrusted Data. Attacker có thể lợi dụng các magic method, cách mà OOP vận hành từ đó tạo ra exploit chain hoàn chỉnh và tiến hành sử dụng payload. Tiến hành Setup môi trường test ...

December 6, 2025 · 10 min · Phat Mai

Spring Time CTF challenge WriteUp

Spring Time CTF challenge WriteUp Web App được chia làm 2 services khác nhau bao gồm: gateman : port 8080 newsman : port 8082 Phân tích từng chức năng từng service Gateman Nó được chạy bằng port 8080 bên cạnh đó nó còn gọi cloud cùng với đó là expose include ra các chức năng như health , info , gateway. Vậy nên có thể biết được đây là service Spring Cloud với chức năng routing đến các routes. ...

December 5, 2025 · 14 min · Phat Mai