CyberCon 2025 SafeUpload Web Challenge

CyberCon 2025 SafeUpload Web Challenge Tổng quan challenge Mở challenge lên thì ta thấy nó cấp cho ta một giao diện dùng để upload file nên nghi ngờ ban đầu sẽ là web này dính lỗ hổng file upload. Tiến hành thử upload lên file php với nội dung: <?php echo "test"; ?> Có vẻ như đã dính filter của bài có thể thấy nó đã xoá đi file mình upload lên, bây giờ ta thử upload 1 file php nhưng không có nội dung. ...

November 25, 2025 · 10 min · Phat Mai

WebSec.fr Level 28 CTF challenge

WebSec.fr Level 28 CTF challenge Tổng quan: <?php if(isset($_POST['submit'])) { if ($_FILES['flag_file']['size'] > 4096) { die('Your file is too heavy.'); } $filename = './tmp/' . md5($_SERVER['REMOTE_ADDR']) . '.php'; $fp = fopen($_FILES['flag_file']['tmp_name'], 'r'); $flagfilecontent = fread($fp, filesize($_FILES['flag_file']['tmp_name'])); @fclose($fp); file_put_contents($filename, $flagfilecontent); if (md5_file($filename) === md5_file('flag.php') && $_POST['checksum'] == crc32($_POST['checksum'])) { include($filename); // it contains the `$flag` variable } else { $flag = "Nope, $filename is not the right file, sorry."; sleep(1); // Deter bruteforce } unlink($filename); } ?> Đoạn mã này là một trang web đơn giản cho phép người dùng tải lên một tệp và nhập một giá trị checksum. Mục tiêu là tải lên một tệp tin sao cho hai điều kiện sau được thỏa mãn: ...

November 24, 2025 · 5 min · Phat Mai

Java Servlet Sql Injection Vulnerability by @Phatmh

Java Servlet Sql Injection Vulnerability by @Phatmh Tổng quan cấu trúc file java +---.idea +---dataSources +---.mvn +---wrapper +---src +---main +---java +---sql_injection +---controller +---dao +---model +---util +---resources +---META-INF +---webapp +---WEB-INF +---test +---java +---resources +---target +---classes +---META-INF +---sql_injection +---controller +---dao +---model +---util +---generated-sources +---annotations +---Sql_Injection-1.0-SNAPSHOT +---META-INF +---WEB-INF +---classes +---META-INF +---sql_injection +---controller +---dao +---model +---util Cấu trúc của project được viết bằng mô hình MVC với UserDAO là nơi xử lý logic chính. Tại đây mình tạo ra 11 level tương ứng với các độ khó khác nhau. Ở đây basic sẽ là 1-5 và 6-11 sẽ là hard. Source Code (Github) Github ...

November 22, 2025 · 23 min · Phat Mai

Java Servlet Command Injection Vulnerability Challenges

Java Servlet Command Injection Vulnerability Challenges Cấu trúc Project Cấu trúc Project +---.idea +---.mvn ª +---wrapper +---src ª +---main ª ª +---java ª ª ª +---ci ª ª ª +---controller ª ª ª +---service ª ª ª +---util ª ª +---resources ª ª ª +---META-INF ª ª +---webapp ª ª +---WEB-INF ª +---test ª +---java ª +---resources +---target +---classes ª +---ci ª ª +---controller ª ª +---service ª ª +---util ª +---META-INF +---Command_Injection-1.0-SNAPSHOT ª +---META-INF ª +---WEB-INF ª +---classes ª +---ci ª ª +---controller ª ª +---service ª ª +---util ª +---META-INF +---generated-sources +---annotations LabServlet.java:Xử lý HTTP request với response thực hiện các tác vụ trên server và trả về kết quả cho người dùng. LabService.java: Nơi đây là nơi xử lý logic chính của cả Web Application là nơi xử lý các level khác nhau. Shell.java: Có nhiệm vụ thực thi các lệnh shell hoặc command-line từ chương trình Java và trả về kết quả của lệnh đó dưới dạng chuỗi. Source Code: GitHub ...

November 21, 2025 · 10 min · Phat Mai

Java Servlet FileUpload Vulnerability

Java Servlet FileUpload Vulnerability by @Phatmh Lỗ hổng File Upload Bản chất của File Upload: File Upload đối với tôi nó đơn giản chỉ là lợi dụng Unsafe Method để truyền một Untrusted Data vào nhằm thay đổi hành vi của hệ thống trong trường hợp này là Web App, với FileUpload những gì User Upload lên sẽ chính là Untrusted Data và với Feature Upload File như này sẽ thế nào nếu nó không được Validate một cách cẩn thận ta sẽ đến với DEMO bằng Java Servlet. ...

November 19, 2025 · 10 min · Phat Mai

Cookie Arena Challenges WU (@Phatmh)

Cookie Arena Web Challenges WriteUp by (@Phatmh) NSLookup (Level 1) Đây là một Website có chức năng là nslookup sử dụng hàm shell_exec của php để thực thi. Ta tiến hành truy cập để xem giao diện của web app. Ở đây ta thấy nó khá là basic khi chỉ có duy nhất một nơi có chức năng nslookup và bên cạnh là source code cho sẵn của chall, ta sẽ tiến hành phân tích source code được cấp sẵn. ...

November 18, 2025 · 6 min · Phat Mai

CanteenFood CTF Challenge WriteUp

CanteenFood CTF Challenge WriteUp by @Phatmh Tiến hành phân tích chức năng theo kiểu BlackBox Đây là một trang Web có chức năng cho User tìm kiếm được món ăn phù hợp với túi tiền của mình nhất bằng cách nhập số tiền mình mong muốn nó sẽ trả về món mà mình đủ tiền trả. Ở đây sau khi viết ra số 300 và tiến hành bấm chức năng thì nó trả về được list các món dưới 300. ...

November 17, 2025 · 7 min · Phat Mai