Chuyển đến nội dung chính

[Crypto] Birthday Paradox

Nghịch lý Birthday là 1 trong những nghịch lý được áp dụng rất nhiều khi dùng để giải mã trong Crypto. Câu hỏi:  "Cần ít nhất bao nhiêu người để xác suất có 1 cặp trong số đó trùng ngày-tháng sinh với nhau là > 50%?"  Câu trả lời là 23 người.  Nghe qua thì hơi khó tin, lần đầu nghe mình cũng không tin lắm :)) nhưng để chứng minh nó bằng các giải ngược thì khá đơn giản:  Gọi A là biến cố không có ai trong 23 người cùng ngày sinh, ta cần tính 1- P(A).  Ta có: Với mỗi người ta có cách chọn ngày sinh lần lượt là: 365, 365 - 1, ..., 365 - 22 Không gian mẫu:  365^23 Suy ra:  1- P(A) = 50.73%   Vậy nên trong 1 lớp họp có hơn 30 người, xác suất có 2 người trùng ngày sinh lên tới gần 70%, nên thường trong 1 lớp sẽ có 2 người trung ngày sinh.  Phát biểu: Chỉ cần thử 1.2 * sqrt(n) thì sẽ có tới 50% là có 1 cặp giống nhau. Áp dụng định lý này với phương pháp Brute-force: 

Safe Opener 2 picoCTF (reverse)

 Ở bài này file tải về là file.class, nếu mở trực tiếp thì ta sẽ được: 


Hint của bài này là: "Download and try to decompile the file." Vậy từ khóa ở đây là decompile, ta tìm thử cách để decompile file class to java: https://www.baeldung.com/java-decompiling-classes 

Sau đó mình dùng IntelliJ IDEA để mở file thì được kết quả: 


Đến đây thì flag đã hiện rõ rồi: picoCTF{SAf3_0p3n3rr_y0u_solv3d_it_7db9fb8c}

Nhận xét

Bài đăng phổ biến từ blog này

Upload Vulnerabilities TryHackMe

 Các bộ lọc khi Upload file:  Extension Validation (Lọc đuôi mở rộng file): MS Window vẫn dùng cách đọc các đuôi mở rộng để xác định loại file, thường sẽ có whitelist hoặc blacklist cho loại này. File Type Filtering (Lọc file): Khi tải file lên và gửi đi, tệp được xác định loại têp 1 lần nữa:       MIME validation: MIME (Multipurpose Internet Mail Extension):      Loại MIME để tải tệp lên được đính kèm trong tiêu đề của yêu cầu và trông giống như sau:           Magic Number validation: Magic Number là chuỗi byte ở đầu nội dung tệp nhằm để xác định loại      tệp, ví dụ: tệp PNG sẽ có các byte này ở đầu tệp: 89 50 4E 47 0D 0A 1A 0A      Không giống như Windows, hệ thống Unix sử dụng các con số kỳ diệu để xác định tệp; tuy nhiên,         khi xử lý việc tải tệp lên, có thể kiểm tra số ma thuật của tệp đã tải lên để đảm bảo rằng nó an toàn      ...

[Web] Simple HTTP Proxy - Cookie Hân Hoan

Bài này có file code, ta có thể tải về và mở file run.py: ở đây, ta thấy nếu muốn lấy được flag, ta cần gửi POST request path: /admin Và ở đây thì cần phải thực hiện bởi localhost. Vậy ta sẽ dùng /socket để thực hiện: Ta nhập ở phần socket: Host là 127.0.0.1 port 1337 Lưu ý là ở POST thì cần thêm 1 dòng trắng bên dưới (để phân biệt với GET) Và send thì ta được: Vậy là ta đang đi đúng đường rồi, ta chỉ việc thêm các header khác: Và được kết quả: