CVE-2019-18211 Detail
Description
An issue was discovered in Orckestra C1 CMS through 6.6. The EntityTokenSerializer class in Composite.dll is prone to unvalidated deserialization of wrapped BinaryFormatter payloads, leading to arbitrary remote code execution for any low-privilege user.
Từ đoạn mô tả về CVE này ta có một số thông tin về class và file bị dính lỗ hổng. Và version <= 6.6 bị ảnh hưởng.
Setup
Source code: https://github.com/Orckestra/C1-CMS-Foundation/releases/tag/v6.6
JetBrains Rider để deploy và debug
onsra03 changed 6 months agoView mode Like Bookmark
Mở đầu
Nguyên văn trang chủ Microsoft:
For .NET Framework 4.7.2 and later versions, use the APIs in the System.Text.Json namespace for serialization and deserialization. For earlier versions of .NET Framework, use Newtonsoft.Json. This type was intended to provide serialization and deserialization functionality for AJAX-enabled applications.
Họ cung cấp tính năng Serialize và deserialize trong .NET đối với dạng json, cùng với đó có một số lib hỗ trợ như: Json.NET, DataContractJsonSerializer và JavaScriptSerializer
Json.NET (Newtonsoft.Json): Đây là một thư viện mã nguồn mở do James Newton-King phát triển, không thuộc Microsoft. Tuy nhiên, Json.NET được sử dụng rất phổ biến trong các dự án .NET, và Microsoft đã tích hợp Json.NET vào ASP.NET Core như là một giải pháp chuẩn cho việc xử lý JSON trong một số phiên bản trước khi chuyển sang sử dụng System.Text.Json.
DataContractJsonSerializer: Là một phần của .NET Framework. Thư viện này được phát triển và duy trì bởi Microsoft.
onsra03 changed 7 months agoView mode Like Bookmark
Lỗi này được public vào tháng 6 2023 nhưng không có mã CVE, sau đây là các version bị ảnh hưởng, và một số thông tin khác:
image
image
Ref: https://security.docs.wso2.com/en/latest/security-announcements/security-advisories/2023/WSO2-2022-2182/#security-advisory-wso2-2022-2182
Tổng quan:
Đây là một lỗi liên quan tới SQL, với endpoint chỉ có thể truy cập từ người dùng đã xác thực
onsra03 changed 10 months agoView mode Like 3 Bookmark
Tình cờ lướt FB thì thấy có một bài viết trong group WhiteHat share các bài LAB về top 10 OWASP 2021. Luôn tiện mình cũng đặt thử thách cho bản thân xem có thể hoàn thành hết được không :v Mục đích kiểm tra lại các kiến thức đã học trước giờ.
image
How to SETUP:
Mình sử dụng Docker Desktop, có thể sử dụng Docker trong Kali,Ubuntu,... đều được
Làm bài nào thì truy cập đến folder bài đó
image
Sử dụng command docker compose up -d để run
Sau khi run xong thì chúng ta sẽ kiểm tra Containers đã Running chưa
onsra03 changed a year agoView mode Like 3 Bookmark
"Vẫn như thường lệ, khi có CTF nào của trường khác thì mình luôn cố gắng đi xin challenge để về làm và học hỏi những điều mới mẻ. Lần này có giải KMA CTF lần 1 chọn đội tuyển SVATTT mình lại tiếp tục ngỏ lời với những người bạn để xin đề giải được 4 challenge dưới đây." - Trích văn từ sư phụ TaiDH hê hê :v
Category
Challenge Name
Web
Vào đây!
Web
Jo`in Le'm
Tiếp tục với phần 2 này mình sẽ làm một số bài CTF, để chi tiết hơn về các áp dụng Reflection
Challenge Text (BKCTF 2023)
Link download src: https://github.com/onsra03/WriteUp_CTF/blob/main/bkctf2023-textext.zip
Setup:
Sau khi các bạn tải về, truy cập vào folder như sau:
Ở đây mình setup trên windows, nên mình sử dụng Docker Desktop
Run Docker app lên và sử dụng command sau: ./build-docker.sh hoặc bash build-docker.sh đều được nha.
onsra03 changed 2 years agoView mode Like 2 Bookmark
Mục đích của mình khi viết series Java Sec là để lưu lại các kiến thức trong quá trình tìm hiểu và học JAVA của mình.
Java reflection mechanism
Java reflection là một tính năng trong ngôn ngữ Java. Trước tiên cần hiểu 2 định nghĩa về compile time và runtime
Compile Time:
-- Compile time refers to the phase of program development when the source code is translated into bytecode by the Java compiler (javac). During this phase, the compiler checks the syntax, type correctness, and other static aspects of the code. If there are any syntax errors, type mismatches, or other issues that violate the language rules, the compiler will generate error messages, and the code won't be compiled until these issues are resolved.
-- During compilation, the code is converted into an intermediate form called bytecode, which is a platform-independent representation of the source code. This bytecode is then executed by the Java Virtual Machine (JVM) during runtime.-- Là giai đoạn mà source code được compiler biên dịch thành code mà máy tính có thể thực thi (executable code).Trong Java, đó là quá trình biên dịch file .java thành file .class.Trong compile time, chỉ một số chức năng biên dịch được thực hiện và code không được đưa vào bộ nhớ để chạy mà chỉ hoạt động dưới dạng văn bản, chẳng hạn như kiểm tra lỗi (errors).
Run Time:
-- Run time, also known as execution time, is the phase when the compiled bytecode is executed by the Java Virtual Machine. The JVM loads the classes and executes the methods as needed. During runtime, dynamic aspects of the program are evaluated, such as user inputs, calculations, and interactions with the environment.-- During runtime, if the program encounters runtime errors, such as division by zero, null pointer dereference, or exceptions that are not caught, the program may terminate abruptly or handle these errors based on exception handling mechanisms. These runtime errors are not detected by the compiler during compilation because they depend on the actual execution flow and data values.
-- Là giai đoạn mà executable code bắt đầu chạy cho đến khi kết thúc chương trình.Là giai đoạn mà code trên đĩa (disk) được đưa vào bộ nhớ và thực thi (execute).
onsra03 changed 2 years agoView mode Like 3 Bookmark
Mặc dù đã team đã clear hết mảng, nhưng do mình làm ra muộn nên chỉ đạt top 7 giải này. Sr team rất nhiều...
Giải có 2 bài web cuối SSTI khá là hay nên mình quyết định viết wu để cho nhớ
Category
Challenge Name
Difficulty
Web
Club_N00b
Easy
onsra03 changed 2 years agoView mode Like Bookmark
Sau đây em xin trình bày về quá trình thực hiện khai thác lỗi của 2 chall web
Web 1:
Review
Khi bắt đầu truy cập trang web, thì có 2 chức năng chính: login, và register (Nếu chưa đăng nhập thì sẽ chuyển hướng về trang login)
Login:
Kết hợp thử chức năng và xem source code được cung cấp.
onsra03 changed 2 years agoView mode Like Bookmark
Giải này chỉ private cho sinh viên trong trường chơi, nên mình có đi xin đề và source từ một người bạn tham gia giải. Chủ yếu là để luyện thêm CTF từ các trường khác.
Category
Challenge Name
Difficulty
Web
Polluted Web
Easy
onsra03 changed 2 years agoView mode Like Bookmark
Tóm tắt challenge
Đây là một trang web viết bằng Node.js.
Có 4 router (index,register,login,/api/wheather) ở routes/index.js
Ở trong file database.js thực hiện một số chức năng:
-- Tạo bảng users có 3 cột: id,username, password.
-- Và đã được thêm sẵn một user có giá trị admin và password random 32 byte. Nên việc bruteforce để tìm pass là không khả thi.
-- Tiếp đến là có một hàm isAdmin, ở câu Query đặt ? để chèn các tham số vào.
Nên không thể Sqli ở đây.
onsra03 changed 2 years agoView mode Like 1 Bookmark
Introduction
LDAP (Lightweight Directory Access Protocol) injection is a type of security exploit that is used to compromise the authentication process used by some websites. Websites that construct LDAP statements from user data are vulnerable to this type of attack.
LDAP directories store objects, which include information about these users and the organization's assets. For example, an LDAP directory may contain lists of the different usernames, passwords and email addresses of the users in the organization. If an LDAP directory is used for website authentication, an attacker can enter malicious code into a user input field, gain unauthorized access to the directory, and view or change usernames and passwords.
LDAP injection work
Ví dụ về truy vấn LDAP lấy 2 giá trị truyền vào là username và pass:
find("(&(cn=" + username +")(userPassword=" + pass +"))")
onsra03 changed 2 years agoView mode Like Bookmark
Việc cần làm đầu tiên khi bắt đầu một challenge, chúng ta cần trải nghiệm, sử dụng các chức năng của trang web, để xem những chỗ nào có khả năng khai thác được.
Với bài này thì chỉ có một chức năng duy nhất đó chính là xem đồ chi tiết bằng nút View.
OK nếu như không có gì đặc biệt, chúng ta sẽ sử dụng Burp bắt request và xem qua source code mà tác giả cung cấp
def select_by_id(product_id):
return query_db(f"SELECT data FROM products WHERE id='{product_id}'", one=True)
Câu query được đưa vào khi ta truyền vào một giá trị id, với việc sử dụng code nối chuỗi sẽ có thể dễ dàng bị khai thác được SQLi. Đơn giản bằng payload -1'OR '1' = '1
onsra03 changed 2 years agoView mode Like Bookmark
Challenge SQli-Blind
Nhìn ngay tên bài thì chúng ta có thể thấy ngay ý tác giả muốn mình hướng đến khai thác SQLi Blind. À thôi nói thế chứ tin nào được tác giả ...
OK bắt đầu nhé.
Đầu tiên vào link bài tác giả cung cấp
Việc đầu tiên là làm một người dùng bình thường sử dụng trang web này, mình thử đăng kí một tài khoản xem thế nào.
Tuy nhiên chả có gì, và tác giả còn bảo "Dont xss" :)))
Bước tiếp theo, mình thử một vài inject sql đơn giản vào form login xem có điều gì đặc biệt không. Câu trả lời là không nốt :)))
onsra03 changed 2 years agoView mode Like Bookmark