Minggu, 22 Maret 2026

Berkenalan dengan Next.js: CVE-2025-29927

Analis Siber Purwakarta - Admin. Next.js merupakan framework pengembangan web populer yang dikembangkan oleh Vercel. Pada Februari 2025, peneliti keamanan Rachid Allam, dan Yasser Allam menemukan kerentanan serius pada Next.js versi sebelum 14.2.25, dan 15.1.7 (serta 15.2.3 untuk jalur rilis terbaru.

Kerentanan ini terletak pada mekanisme Middleware yang memungkinkan penyerang memanipulasi aspek Authorization. Akibatnya, peretas dapat mengakses endpoint sensitif yang seharusnya terproteksi dan tidak bisa diakses oleh pengguna umum.

Mekanisme Kerja Middleware

Middleware pada Next.js adalah fitur routing yang berfungsi untuk menjalankan kode (seperti autentikasi atau logging) sebelum sebuah request dinyatakan selesai. Dalam proses ini, pengembang biasanya memodifikasi response dengan cara menulis ulang (rewrite), mengalihkan (redirect), atau memodifikasi header request/response secara langsung untuk menjaga keamanan aplikasi.

Metode Eksploitasi

Berdasarkan temuan peneliti, eksploitasi ini dilakukan dengan memanfaatkan cara Next.js menangani sub-request internal. Peretas hanya perlu menambahkan header HTTP tambahan pada request mereka, yaitu:

x-middleware-subrequest: middleware

Penambahan header ini menyebabkan sistem menganggap bahwa request tersebut sudah diproses oleh middleware, sehingga request dilanjutkan langsung ke destinasi tujuan tanpa melewati filter keamanan yang ada.

Mengeksploitasi CVE-2025-29927 menggunakan Caido
Sumber: Dokumentasi penulis

Dampak Utama:

Penyerang dapat mengakses halaman atau API melewati baris kode autentikasi yang seharusnya berjalan di lapisan Middleware.

Sumber:

Rachid Allam Blog

TryHackMe Next.js: CVE-2025-29927

Jumat, 13 Maret 2026

Journaling | NoSQL Injection Tutorial (THM Walkhtrough)

Analis Siber Purwakarta - Admin. NoSQL Injection merupakan salah satu kerentanan berjenis injeksi yang dapat ditemui pada arsitektur website yang menggunakan basis data non-relasional. Pada kesempatan ini, kita akan mempraktikan semua NoSQL Injection tutorial yang disediakan oleh TryHackMe.

Tampilan Awal Website


1. Operator Injection: Bypassing the Login Screen

Pada bagian ini kita akan mempraktikan Injeksi Operator NoSQL dengan tujuan untuk melewati halaman login. Dengan mempersiapkan proxy yang kita familiar menggunakannya, kita akan mengintersep request halaman login, dan didapati HTTP Request berikut:

HTTP Request dan Response pada halaman login
Sumber: Dokumentasi Penulis

Dengan menggunakan operator $ne (not equal) pada parameter input user, dan password, kita berhasil memaksa sistem untuk masuk pada halaman sistem. Penggunaan operator $ne pada parameter input user, dan password menyebabkan query NoSQL mencari nilai yang tidak ada pada basis data sehingga sistem akan mengembalikan akun pertama yang sistem temui.

Hasil akhir task ke-empat
Sumber: Dokumentasi penulis


2. Logging in as Other Users

Jika operator $ne hanya mengizinkan akses masuk pada sistem dengan menggunakan akun pertama yang sistem temui, maka pada bagian kedua ini kita dapat masuk pada sistem menggunakan akun milik pengguna lain dengan menggunakan operator $nin (not in). Operator $nin pada NoSQL berfungsi untuk menyaring dokumen dengan kriteria nilai yang tidak ada dalam daftar yang ditemukan. Kita masuk pada aplikasi proxy yang kita gunakan, kemudian kita intercept HTTP Request pada halaman login website.

Manipulasi HTTP Request dengan menggunakan payload $nin, dan $ne
Sumber: Dokumentasi Penulis

Dengan memanipulasi Request pada parameter user dengan menggunakan operator $nin, kita dapat masuk pada sistem dengan menggunakan akun milik pengguna lain.

Hasil akhir task lima
Sumber: Dokumentasi Penulis


3. Extracting Users' Passwords
Ada kalanya kita sebagai peretas harus mengekstrak sandi/password milik pengguna lain untuk membuktikan adanya kerentanan pada sistem yang mereka sediakan. Untuk mengekstrak sandi/password milik pengguna lain, kita bisa melakukannya melalui teknik Brute Force dengan memanfaatkan operator Regular Expression ($regex).

Sebagai contoh, apabila kita ingin mengetahui panjang dari sandi/password milik seorang administrator pada sistem yang terdapat pada task ke-enam, kita bisa melakukannya dengan menginjeksi payload $regex yang diikuti dengan operatornya seperti pada yang tertera pada gambar berikut:

Menggunakan Operator Regex untuk mengetahui panjang dari sandi milik administrator
Sumber: Dokumentasi Penulis

Berdasarkan HTTP Response tersebut, diketahui bahwa panjang password milik administrator adalah memiliki panjang delapan karakter. Kita bisa melakukan Brute Force dari sini dengan menggunakan Custom Python Script, atau memanfaatkan tools fuzzer seperti Intruder milik Burp Suite, atau Automate milik Caido. Kita akan mencoba dengan Custom Python Script yang sudah dibuat oleh Muhammad Husnain sebagaimana yang tersedia pada websitenya.

Memperoleh sandi milik administrator menggunakan Custom Python Script
Sumber: Dokumentasi Penulis

Berdasarkan hasil uji coba tersebut, kita dapat menggunakan script Python untuk melakukan Brute Force, dan memecahkan delapan karakter sandi milik administrator, serta masuk kepada sistem dengan akun milik administrator. Langkah yang sama akan kita gunakan untuk memecahkan sandi milik user John, dan Pedro. User John memiliki panjang delapan karakter yang hanya terdiri dari nilai angka saja, sedangkan password milik user Pedro terdiri dari 11 karakter dengan kombinasi string, dan angka, dengan menggunakan script Python kita dapat mengekstrak secara Brute Force password milik kedua user tersebut. 

Proses Brute Forcing sandi milik user John dan Pedro
Sumber: Dokumentasi Penulis


Hasil akhir Task 6
Sumber: Dokumentasi Penulis

4. Finding Syntax Injection
Task terakhir pada modul ini adalah menemukan Syntax Injection. Cara yang paling umum untuk menemukan Syntax Injection ini adalah dengan menginjeksi syntax bahasa pemrograman seperti Javascript pada bagian inputan yang tidak terfilter dengan baik. Syntax yang untuk menguji adanya kerentanan NoSQL Injection diantaranya adalah:
  1. '
  2. Operator Boolean seperti:
    1. |
    2. &
Hasil akhir Task 7
Sumber: Dokumentasi Penulis


Referensi




Kamis, 12 Maret 2026

Journaling | Hacker Methodology/Metodologi Peretas (TryHackMe)


Analis Purwakarta – Admin. Seorang Hacker (Peretas) atau Penetration Tester memiliki proses yang dia ikuti, proses tersebut berguna untuk memahami, dan mengeksploitasi targetnya. Proses atau metodologi ini diikuti oleh seorang peretas untuk memastikan konsistensi bagaimana pengujian/assessment sebuah target berlangsung dengan performa dari sebuah industri.

Setidaknya ada enam langkah yang dimana seorang peretas itu ikuti, diantaranya adalah:

  1. Pengintaian (Reconnaissance)
  2. Enumerasi/Pemindaian (Enumeration/Scanning)
  3. Mendapatkan akses (Gaining Access)
  4. Eskalasi hak dan fungsi (Privilege Escalation)
  5. Menutup jejak (Covering Track), dan
  6. Pelaporan (Reporting)

Pengintaian (Reconnaissance)

Proses pengintaian merupakan sebuah proses dimana seorang peretas mengkoleksi informasi-informasi yang dibutuhkan untuk memahami target yang dia uji. Informasi-informasi tersebut dapat berupa:

  1. Technology stack
  2. Data Karyawan
  3. Riwayat perubahan situs
  4. Riwayat perubahan DNS

Peralatan-peralatan yang terkait dengan pengintaian dapat kita unduh secara bebas di internet, selain itu peretas dapat menggunakan peralatan-peralatan yang sudah tersedia bila menggunakan sistem operasi tertentu seperti Kali Linux/Parrot OS

Contoh peralatan yang dapat digunakan pada tahapan ini diantaranya:

Google Dorking

  1. WhoIs
  2. Web Archive
  3. AngryIPScanner
  4. Wireshark
  5. Subfinder
  6. DNSMap
  7. HTTPx

Enumerasi/Pemindaian (Enumeration/Scanning)

Pada fase ini, peretas akan menggunakan peralatan pemindai untuk mengidentifikasi kerentanan dari sebuah target. Penggunaan peralatan pemindai ini selain untuk mengidentifikasi kerentanan, juga berfungsi untuk memetakan attack surface secara keseluruhan.

Contoh peralatan tersebut diantaranya:

  1. Nmap
  2. FFuF
  3. Nuclei
  4. Burp Suite (Pro)

Ekploitasi (Exploitation)

Fase ini merupakan fase dimana peretas akan mengeksploitasi kerentanan yang sudah ditemukan pada fase enumerasi, dan pengintaian. Kesuksesan dari fase ini tergantung dari sejauh mana peretas dapat memahami target yang dia punya yang dia dapatkan dari fase pengintaian, dan enumerasi.

Fase eksploitasi ini dapat dilakukan melalui otomasi, ataupun dapat dilakukan dengan manual. Peralatan yang digunakan secara otomasi pada fase ini diantaranya:

  1. Burp Scanner
  2. SQLMap, dan
  3. Metasploit

Kita dapat melalui fase ini dengan cara manual dengan berpedoman pada Open Worldwide Application Security Project (OWASP) Top 10.

Eskalasi Hak dan Fungsi (Privileged Escalation)

Fase ini memungkinkan peretas untuk mengeskalasi hak atau fungsi dari akun peretas yang sebelumnya tidak disediakan menjadi tersedia. Sebagai contoh akun peretas yang sebelumnya tidak memiliki fungsi untuk menghapus akun pengguna lain, ketika peretas mengeskalasi haknya, peretas mampu menghapus akun pengguna lain.

Eskalasi hak dan fungsi memiliki jenis-jenis lainnya, diantaranya adalah:

  1. Meretas hash sandi
  2. Menemukan service yang memiliki kerentanan, dan melakukan eskalasi melalui servis tersebut
  3. Menggunakan default credential
  4. Menemukan secret keys atau SSH keys, dan menggunakannya melalui perantara komputer lain
  5. Menjalankan script atau command tertentu

Menutup Jejak (Covering Track)

Fase ini bertujuan untuk menutup jejak peretas secara profesional, maksud dari menutupi jejak ini bukan berarti menghapus log dari fase-fase sebelumnya melainkan meninggalkan jejak dengan menutupinya dengan laporan dokumentasi yang berguna untuk pengembang system kedepannya.

Pelaporan (Reporting)

Pelaporan merupakan fase terakhir dari serangkaian fase yang sebelumnya sudah dilalui. Fase ini merupakan sebuah fase dimana peretas menyusun pelaporan terkait aktivitas yang sudah dilakukan, dan kerentanan apa saja yang ditemukan. Penyusunan laporan setidaknya memuat:

  1. Penemuan kerentanan pada sistem
  2. Tingkat kerentanan pada sistem
  3. Deskripsi atau ringkasan bagaimana kerentanan tersebut ditemukan, dan
  4. Rekomendasi remediasi atas temuan kerentanan