WebSec.fr level 1 CTF challenge

WebSec.fr level 1 CTF challenge Overview Giao diện chức năng của level này ta có thể thấy nó là một web app có chức năng hiển thị username bằng cách nhập vào userID nên bước đầu ta có thể nghi ngờ nó dính Sql Injection. Phân tích source code <?php session_start (); ini_set('display_errors', 'on'); ini_set('error_reporting', E_ALL); include 'anti_csrf.php'; init_token (); class LevelOne { public function doQuery($injection) { $pdo = new SQLite3('database.db', SQLITE3_OPEN_READONLY); $query = 'SELECT id,username FROM users WHERE id=' . $injection . ' LIMIT 1'; $getUsers = $pdo->query($query); $users = $getUsers->fetchArray(SQLITE3_ASSOC); if ($users) { return $users; } return false; } } if (isset ($_POST['submit']) && isset ($_POST['user_id'])) { check_and_refresh_token(); $lo = new LevelOne (); $userDetails = $lo->doQuery ($_POST['user_id']); } ?> Challenge cung cấp cho ta đoạn source code của của web app với logic được xử lý bằng php và ta có thể thấy rằng trường userID được query bằng SQLITE3. ...

November 28, 2025 · 3 min · Phat Mai

Server Side Request Forgery (Java)

Server Side Request Forgery (Java) Source Code Github: https://github.com/pzhat/SSRF_vuln_demo What is SSRF Giới thiệu về Server-Side Request Forgery : Chúng ta có xu hướng lơ là, mất cảnh giác khi đang trong vùng an toàn → Developer nghĩ rằng hacker sẽ không truy cập được các ứng dụng nội bộ do đó việc bị hack gần như là không thể → Pentester cũng không đủ thời gian để security test hết tất cả dịch vụ nội bộ ...

November 27, 2025 · 8 min · Phat Mai

Java Servlet Path Traversal vulnerability

Java Servlet Path Traversal vulnerability Source Code: [Github Link] Overview Đây là chức năng hiển thị hình ảnh của các file đã nằm trong folder images. Ở đây ta test file skibidi.jpg và request nó sẽ hiển thị lên cho ta. Đây là nơi chứa các file có thể hiển thị. Vì là build trên môi trường windows localhost qua apache tôi sẽ tạo một thư mục /protected có chứa file bí mật. ...

November 26, 2025 · 3 min · Phat Mai

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