Sabtu, 13 Desember 2025

Berkenalan dengan PHP 8.1.0-dev - 'User-Agentt' Remote Code Execution

Analis Siber Purwakarta - Admin. Agent T TryHackMe CTF Room, merupakan sebuah room CTF yang bertujuan untuk mengeksplorasi kerentanan yang terdapat pada sebuah situs dashboard admin. Room ini hanya terdiri dari satu buah flag, dimana kita sebagai pemain bertujuan untuk mengcapture flag tersebut.

Pertama, kita akan mencoba mengcapture request dari halaman utama dashboard admin situs ini, dan mengidentifikasi apa saja yang dapat dijadikan sebuah landasan untuk mengeksploitasi kerentanan dari dashboard admin ini.

HTTP Request dan Response yang dicapture dari halaman awal dashboard admin
Sumber: Dokumentasi Penulis

Untuk HTTP Request dari halaman ini tidak ada yang bisa kita identifikasi untuk mengeksplotasi kerentnan, namun bila kita perhatikan HTTP Response dari khususnya pada bagian X-Powered By Header diketahui bahwa website ini menggunakan PHP 8.10-dev. PHP 8.10-dev merupakan sebuah versi PHP yang masih dalam tahap pengembangan sehingga terdapat beberapa kemungkinan kerentanan-kerentanan yang dapat dieksploitasi.

Bila kita berkunjung pada situs Exploit DB kita dapat mengetahui bahwa versi dari PHP ini memiliki kerentanan Remote Code Execution  (RCE), yang artinya peretas dapat mengeksekusi sebuah perintah pada sistem target tanpa memerlukan akses langsung ke server. 

Uji Coba RCE pada Dashboard Admin situs
Sumber: Dokumentasi penulis

Sebagai praktik, kita dapat mengunduh sebuah script Python yang disediakan oleh Exploit DB untuk melakukan eksploitasi Remote Code Execution (RCE). Berdasarkan hasil pengujian, eksploitasi tersebut berhasil dilakukan pada situs target. Dengan demikian, flag dari CTF ini berhasil diperoleh dan dapat digunakan sebagai solusi untuk menyelesaikan room tersebut.

Senin, 08 Desember 2025

Berkenalan dengan encoding klasik, c4ptur3-th3-fl4g TryHackMe Task 1

Analis Siber Purwakarta - Admin. c4ptur3-th3-fl4g merupakan salah satu dari room yang disediakan oleh TryHackMe sebuah platform yang menyediakan tempat pelatihan cyber security. Room ini terdiri dari empat task, pada task pertama peserta akan mempelajari dan mempraktikkan proses encoding terhadap beberapa kalimat yang telah disamarkan menggunakan berbagai jenis metode encoding. Beberapa alat seperti CyberChef, dan atau Decimal to Text dapat membantu dalam mengerjakan tugas ini.

Kalimat pertama yakni:

c4n y0u c4p7u23 7h3 f149?

Tidak ada yang tantangan dari encoding ini, solusinya ganti angka dengan huruf yang sesuai sehingga menghasilkan kalimat:

can you capture the flag.

Kalimat kedua:

01101100 01100101 01110100 01110011 00100000 01110100 01110010 01111001 00100000 01110011 01101111 01101101 01100101 00100000 01100010 01101001 01101110 01100001 01110010 01111001 00100000 01101111 01110101 01110100 00100001

Kalimat ini disamarkan menggunakan teknik binary encoding, yaitu teknik merepresentasikan karakter dalam bentuk binary encoding. Adapun hasil dari decoding kalimat ini adalah:

lets try some binary out!

Kalimat ketiga: 

MJQXGZJTGIQGS4ZAON2XAZLSEBRW63LNN5XCA2LOEBBVIRRHOM======

Kalimat ini disamarkan menggunakan teknik Base32, yaitu metode binary-to-text encoding yang berbasis sistem bilangan 32. Hasil decoding dari kalimat yang disamarkan tersebut yaitu:

base32 is super common in CTF's

Kalimat keempat:

RWFjaCBCYXNlNjQgZGlnaXQgcmVwcmVzZW50cyBleGFjdGx5IDYgYml0cyBvZiBkYXRhLg==

Masih sama seperti kalimat ketiga, kalimat ini menggunakan metode penyamaran binary-to-text encoding. Perbedaannya adalah penggunaan teknik Base64, yaitu penyandian yang menggunakan skema representasi 64 karakter. Hasil decoding dari kalimat tersebut adalah:

Each Base64 digit represents exactly 6 bits of data.

Kalimat kelima:

68 65 78 61 64 65 63 69 6d 61 6c 20 6f 72 20 62 61 73 65 31 36 3f

Pada kalimat ini, teknik penyamaran menggunakan teknik Base16. Hasil decoding dari kalimat tersebut adalah: 

hexadecimal or base16?

Kalimat keenam:

Ebgngr zr 13 cynprf!

Berbeda dengan sebelumnya, teknik penyamaran yang digunakan pada kalimat ini adalah ROT13. ROT13 (Rotate 13) merupakan teknik penyandian yang melakukan substitusi huruf dengan huruf ke-13 berikutnya dalam alfabet. Hasil decoding dari kalimat tersebut adalah:

Rotate me 13 places!

Kalimat ketujuh:

*@F DA:? >6 C:89E C@F?5 323J C:89E C@F?5 Wcf E:>6DX

Kalimat ini menggunakan teknik penyamaran ROT47. Perbedaannya dengan ROT13 adalah bahwa ROT47 merupakan pengembangan dari ROT13 yang mampu menyamarkan tidak hanya huruf, tetapi juga angka dan simbol umum. ROT47 menggunakan himpunan karakter ASCII yang dapat dicetak dalam proses penyandiannya. Hasil decoding dari kalimat tersebut adalah:

You spin me right round baby right round (47 times)

Kalimat kedelapan:

- . .-.. . -.-. --- -- -- ..- -. .. -.-. .- - .. --- -.

. -. -.-. --- -.. .. -. --.

Kalimat ini menggunakan teknik sandi Morse. Sandi Morse sendiri merupakan teknik penyamaran telekomunikasi yang mengubah teks menjadi dua sinyal yang berbeda yaitu, dits, dan dash. Hasil decoding dari kalimat tersebut adalah:

telecommunication encoding

Kalimat kesembilan:

85 110 112 97 99 107 32 116 104 105 115 32 66 67 68

Kalimat ini menggunakan teknik binary coded decimal. Hasil dari decoding kalimat tersebut adalah:

Unpack this BCD

Kalimat kesepuluh:

LS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0KLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLS0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLi0tLS0KLS0tLS0gLi0tLS0gLi0tLS0gLS0tLS0gLS0tLS0gLi0tLS0gLS0tLS0gLi0tLS0=

Kalimat ini terdiri dari beberapa teknik penyamaran, kita dapat menggunakan alat seperti Cyberchef untuk mempermudah analisa. Teknik penyamaran pertama yang diketahui adalah:

  1. Base64;
  2. Sandi Morse;
  3. ROT47; dan
  4. Binary Coded Decimal

Menggunakan CyberChef untuk membedah kalimat yang disamarkan
Sumber: Dokumentasi Penulis

Adapun hasil akhirnya adalah:

Let's make this a bit trickier...

Referensi

  1. https://en.wikipedia.org/wiki/Binary-to-text_encoding
  2. https://en.wikipedia.org/wiki/Base32
  3. https://en.wikipedia.org/wiki/Base64
  4. https://en.wikipedia.org/wiki/Hexadecimal#Base16
  5. https://en.wikipedia.org/wiki/ROT13
  6. https://en.wikipedia.org/wiki/Morse_code
  7. https://en.wikipedia.org/wiki/Binary-coded_decimal


Senin, 01 Desember 2025

Pentingnya Menambahkan Otorisasi dan Otentikasi Dalam Pengembangan Sistem Aplikasi

Analis Siber Purwakarta - Admin. Perancangan dan pembangunan sebuah sistem aplikasi memerlukan suatu manajemen pengelolaan data yang dapat menjamin kerahasiaan data milik penggunanya. Dalam ranah kemanan siber terdapat konsep tiga serangkai CIA, berdasarkan pemaparan dari OWASP Foundation (2016), konsep tiga serangkai CIA merupakan sebuah konsep yang terdiri dari:

  1. Confidentaly atau Keamanan Data;
  2. Integrity atau Keutuhan Data, dan;
  3. Availability atau Ketersediaan Data.

Konsep ini tidak dapat dipisahkan karena konsep ini merupakan fondasi dari keamanan suatu sistem aplikasi dan ketiga istilah tadi saling berhubungan satu dengan lainnya. Konsep ini seringnya juga diperpanjang oleh Otorisasi (Authorization), Otentikasi (Authentication), dan Auditing. Perpanjangan konsep ini dikarenakan Otorisasi dan Otentikasi akan saling melengkapi konsep tersebut, sedangkan Auditing memiliki fungsi untuk menyediakan kepastian berupa bukti interaksi pada sebuah sistem aplikasi .

Sebagaimana dikutip dari OWASP Foundation (2016), Otorisasi dan Otentikasi merupakan dua hal yang berbeda, sederhananya Otorisasi merupakan mekanisme pemberian hak istimewa (privileges), ataupun peranan pengguna dalam sebuah aplikasi untuk mengakses, merubah, atau memodifikasi data, maupun fungsi dalam suatu aplikasi, sebelum dijalankannya proses Otorisasi biasanya aplikasi akan terlebih dahulu melakukan proses Otentikasi. Sedangkan Otentikasi adalah sebuah mekanisme yang dapat memverifikasi berdasarkan identitas yang otentik pada suatu pengguna. Dengan demikian secara mekanisme, Otentikasi dan Otorisasi akan saling melengkapi dalam mengelola peranan pengguna dalam mengakses, merubah, ataupun memodifkasi suatu fungsi ataupun data dalam sebuah aplikasi.

Meskipun pada akhirnya terdapat juga kerentanan-kerentanan yang menargetkan mekanisme Otorisasi dan Otentikasi seperti Broken Authentication, namun penerapan Otorisasi dan Otentikasi dalam suatu sistem aplikasi tentu akan meminimalisir adanya kebocoran data, misalkan berupa kerentanan Referensi Objek Tidak Langsung atau IDOR (Insecure Direct Object References). Sebagai contoh penulis akan mempraktikannya secara legal dalam aplikasi CTF (Capture the Flag) Postbook milik Hackerone.com. Tujuan dari praktik ini adalah untuk merubah konten seorang Administrator Website melalui kerentanan IDOR (Insecure Direct Object References).

Penulis akan membuat terlebih dahulu sebuah akun dummy dengan username @testakun, dan membuat sebuah konten pada aplikasi. Dalam proses ini diketahui bahwa akun @testakun memiliki parameter id (id=4) dalam url konten tersebut, hal ini menandakan bahwa akun yang penulis buat secara tidak langsung menandakan bahwa penulis telah membuat akun keempat setelah tiga akun sudah dibuat oleh pengguna lain. Untuk memastikan bahwa penulis merupakan pengguna keempat dalam aplikasi, dapat dilihat pada id milik pengguna lain yang dapat dilihat dalam gambar berikut.


Parameter id=1 pada user @admin | Sumber: Dokumentasi Penulis


Parameter id juga digunakan bila akan mengedit konten yang akan diunggah pada aplikasi Postbook. Untuk mendeteksi adanya kerentanan IDOR, penulis akan merubah konten  Administrator Website. Menggunakan Burp Suite, penulis akan melakukan penyadapan HTTP Request Header pada bagian edit konten milik penulis dan memanipulasi parameter id penulis (id=4) seolah-olah parameter id tersebut merupakan parameter id milik Administrator Website (id=1), proses manipulasi dapat dilihat pada gambar berikut.

Memanipulasi Parameter id=4 Menjadi id=1 melalui HTTP Request Header | Sumber: Dokumentasi Penulis


Hasil dari manipulasi parameter ini menunjukan bahwa tidak adanya mekanisme Otorisasi serta Otentikasi dalam Aplikasi Postbook. Penyerang dapat memanfaatkan kerentanan IDOR yang disebabkan tidak terfilternya parameter id dan bisa digunakan untuk tujuan memanipulasi, ataupun mengakses secara leluasa sistem aplikasi. Hal ini dapat dilihat dari potensi penulis untuk merubah unggahan seorang Administrator Website melalui manipulasi parameter id tanpa adanya proses Otentikasi untuk memverifikasi siapa penulis, dan tidak adanya Otorisasi sebagai mekanisme pemberian akses bagi penulis untuk mengakses parameter id=1 didalam url edit konten aplikasi Postbook.

Konten Administrator Website sesudah manipulasi parameter id | Sumber: Dokumentasi Penulis


Berdasarkan praktik tersebut dapat disimpulkan, bila pengembang aplikasi lupa atau tidak menerapkan mekanisme Otorisasi dan Otentikasi maka akan muncul dampak yang besar seperti kebocoran ataupun pencurian data pada sistem aplikasi yang dikelola oleh perusahaan tertentu. Selain itu hasil praktik juga menunjukan bahwa konsep tiga serangkai CIA akan selaras dengan Otorisasi dan Otentikasi selaku mekanisme yang memberikan akses dan memverifikasi peranan dari seorang pengguna aplikasi. Tentu akan berbeda bila aplikasi Postbook menerapkan Otorisasi dan Otentikasi, aplikasi kemungkinan tidak akan memberikan izin bagi penulis untuk merubah data.


Daftar Pustaka:

DevGuide/01-Security Fundamentals.md · OWASP/DevGuide. (2016). Retrieved 10 January 2022, from https://github.com/OWASP/DevGuide/blob/master/01-Foundations/01-Security%20Fundamentals.md


Tulisan ini sudah terbit sebelumnya pada situs Kompasiana

Sabtu, 08 November 2025

"Login" PicoCTF Writeup

Analis Siber Purwakarta - Admin. Penulis akan kembali membagikan pengalaman menyelesaikan sebuah soal CTF yang disediakan oleh PicoCTF. Soal yang dibuat oleh BROWNIENMOTION ini bernama Login, dan menuntut kita agar dapat untuk mengevaluasi isi dari formulir login dari sisi aplikasi client.

Kesan awal ketika memasuki aplikasi ini sangat sederhana. Isinya hanyalah berupa formulir login HTML dan CSS, dengan file Javascript didalamnya. Kurang lebih struktur HTML dalam aplikasi ini adalah sebagai berikut:


Struktur HTML Dalam Aplikasi Client
Sumber: Dokumentasi Penulis


Jika kita mengakses file CSS maka yang akan ditemukan hanyalah sebuah style untuk mendesain aplikasi. Berbeda jika kita mengakses file Javascript, terdapat beberapa mekanisme dan informasi didalamnya seperti verifikasi nama username dan password.


Struktur CSS dalam Aplikasi Client
Sumber: Dokumentasi Penulis


Terdapat celah keamanan dalam Fungsi perulangan aplikasi client yang dapat kita baca pada baris 10-12. Fungsi perulangan tersebut memuat sebuah informasi berupa nama username dan password yang valid namun terenkripsi oleh algoritma Base64. Hal ini dapat diketahui dari penggunaan method btoa() yang dibalik menjadi atob() pada baris ke-12.


Isi program Javascript dalam Aplikasi Client
Sumber: Dokumentasi Penulis


Sandi "YWRtaW4" pada baris ke-12 bila kita dekripsikan maka akan memuat informasi berupa username dengan nama: admin. Bila kita menginput nama selain "admin" maka aplikasi akan merespon dengan memunculkan dialog box dengan isi pesan "Incorect Username".


Proses dekripsi username pada Aplikasi Client
Sumber: Dokumentasi Penulis

Begitu pula dengan password, pada aplikasi client ini password yang disandikan menjadi "cGljb0NURns1M3J2M3JfNTNydjNyXzUzcnYzcl81M3J2M3JfNTNydjNyfQ" yang terdapat pada baris ke-12. Password tersebut merupakan sebuah Flag untuk keseluruhan apikasi.



Hasil akhir dari soal CTF "Login" PicoCTF
Sumber: Dokumentasi Penulis

Kesan pertama bagi penulis untuk menyelesaikan soal CTF adalah menuntut kita untuk membaca beberapa asset-asset dan endpoint yang terdapat dalam aplikasi. Memahami jenis, dan cara menerapkan enkripsi juga penting, hal ini terdapat kaitannya dengan bagaimana caranya agar kita dapat mengekstrak atau menyadikan sebuah informasi.


Daftar Pustaka:
https://developer.mozilla.org/en-US/docs/Web/API/btoa

"Where are the robots?" PicoCTF Writeup

Analis Siber Purwakarta - Admin. Soal CTF kali ini bertujuan agar pemain menumukan sebuah program yang bernama .robots.txt. Program .robots.txt ini berisi sebuah perintah mengenai laman apa yang diperbolehkan dan apa saja yang dilarang untuk diakses oleh oleh sebuah web robots.

Program .robots.txt ini bersifat publik, jadi siapapun bisa mengakses program tersebut. Program .robots.txt terdiri dari dua bagian yaitu User Agent, dan Dissalow (robotstxt.org, (2007). User Agent merupakan bagian yang dapat diakses oleh prgram .robots.txt, sementara Dissalow merupakan bagian dimana .robots.txt tidak dapat diakses (robotstxt.org, (2007).

Soal tersebut dibuat oleh Zaratec/Danny, deskripsi awal dari soal ini menyuruh kita agar menemukan program .robots.txt dalam sebuah aplikasi website. Soal ini memiliki sebuah klu yang mempertanyakan letak program .robots.txt.

Berdasarkan dokumentasi yang terdapat dalam situs robotstxt.org letak program .robots.txt ini berada dalam direktori tingkat atas sebuah web server, dan menggunakan penamaan secara lowercase (robotstxt.org, (2007).  Misalkan, jika kita mengakses situs example.com maka untuk mengakses program .robots.txt dalam situs tersebut kita perlu menambahkan /robots.txt dalam url menjadi example.com/robots.txt.

Maka berdasarkan dokumentasi tersebut kita cukup dengan menambahkan /robots.txt dalam url aplikasi ctf ini. Keseluruhan url untuk mengakses program robots.txt adalah seperti berikut: https://jupiter.challenges.picoctf.org/problem/60915/robots.txt. Pada program robots.txt tersebut tertulis jelas sebuah informasi bahwa program robots.txt dalam aplikasi CTF ini tidak mengizinkan sebuah web robots untuk mengakses laman /8028f.html.


Keterangan Dissalow: /8028f.html
Sumber: Dokumentasi Penulis


Seperti yang dijeaskan sebelumnya, program .robots.txt ini juga berisi sebuah informasi mengenai halaman lain dalam aplikasi ini yaitu /8029f.html. Yang dimana jika kita mengakses halaman tersebut maka kita akan mendapatkan sebuah Flag dari soal CTF ini. 


Flag CTF
Sumber: Dokumentasi Penulis

Soal CTF Where are the robot ini mengajarkan kita sebagai Pentester untuk lebih detail lagi untuk memanen sebuah informasi dalam fase pengintaian. Skenario real dalam CTF ini mungkin akan lebih susah, dikarenakan pengembang aplikasi mungkin akan menambahkan sebuah otorisasi bagi siapa saja yang dapat mengakses halaman-halaman website milik mereka yang tercantum dalam program .robots.txt.


Daftar Pustaka

robotstxt.org (2007). The Web Robots Page. http://www.robotstxt.org/

Minggu, 02 November 2025

SSRF Hackerone report journaling (1)

Analis Siber Purwakarta - Admin. Pada kesempatan kali ini, penulis akan membagikan hasil jurnaling dari beberapa laporan mengenai kerentanan SSRF yang didapatkan melalui laporan kerentanan yang sudah terpublish di platform Hackerone. Jurnaling ini dibuat untuk merangkum dan mengetahui bagaimana seorang peretas dapat mengeksploitasi kerentanan SSRF.

  1. Hackerone #2262382 Server Side Request Forgery (SSRF) via Analytics Reports
    1. Disclosed: December 8, 2023
    2. Reporter: h--1
    3. Jenis: SSRF via Request Template Element Parameter
    4. Target: Hackerone
      1. Ringkasan : Kerentanan ini dilatar belakangi oleh kurangnya output sanitization pada sebuah pesan error pada aplikasi milik Hackerone. Dengan merancang sebuah malicious request, seorang peretas dapat mengakses internal AWS services, dan mengambil sebuah kredensial sementara.
  2. Evernote #1189367 Full read SSRF in www.evernote.com that can leak aws metadata and local file inclusion
    1. Disclosed: December 6, 2021
    2. Reporter: neolex
    3. Jenis: SSRF via URL parameter endpoint
    4. Target: Evernote
      1. Ringkasan: Kerentanan ini dipicu dari sebuah endpoint url parameter yang berfungsi sebagai sebuah path yang berfungsi juga untuk memuat beberapa file seperti Javascript, ataupun CSS, dan terenkripsi dengan Base64, namun developer tidak melakukan  validasi request sehingga kerentanan SSRF pun terjadi.
  3. Snapchat #530974 Server-Side Request Forgery using Javascript allows to exfill data from Google Metadata
    1. Disclosed: November 30, 2020
    2. Reporter: nahamsec
    3. Jenis: SSRF via Custom Webpage (DNS Rebinding)
    4. Target: SnapChat
      1. Ringkasan: Kerentanan ini dilakukan dengan cara membuat sebuah skrip custom webpage yang dirancang dengan tujuan untuk melakukan DNS Rebinding. Dengan memanfaatkan DNS Rebinding peretas mampu mengakses internal web endpoint seperti Google Metadata Service

    


Jumat, 19 September 2025

Portswigger - Exploiting a mass assignment vulnerability

Analis Siber Purwakarta - Admin. Pada kesempatan ini penulis akan membagikan cara menyelesaikan lab  Portswigger yang berjudul Exploiting a mass assignment vulnerability. Lab ini bertujuan untuk merubah nilai parameter yang tersembunyi yang diakibatkan oleh Mass Assignment.

Langkah pertama ialah masuk menggunakan akun default yang disediakan oleh Portswigger, kemudian jalankan proxy yang sudah siapkan. Setelah itu kita jalankan proses intersepsi, dan pilih produk jaket yang berjudul Lightweight "l33t" Leather Jacket. Pada proses intersepi, penulis menemukan sebuah HTTP Request bermetode GET dengan path /api/checkout, kirim HTTP Request tersebut ke bagian Replay atau Repeater bila pembaca menggunakan Burp Suite proxy.


HTTP API Request yang telah berhasil di intersep
Sumber: Dokumentasi Penulis 


Untuk menguji kerentanan, penulis akan merubah HTTP method dan merubah nilai dari parameter percentage menjadi 100 pada HTTP Body. HTTP Response menunjukan bahwa lab ini memiliki kerentanan Mass Assignment Vulnerability. Pada dunia nyata peretas akan memanfaatkan parameter tersembunyi untuk memanipulasi nilainya untuk kepentingan mereka.


HTTP Request yang sudah dimodifikasi
Sumber: Dokumentasi Penulis

Rabu, 17 September 2025

Portswigger - Finding and exploiting an unused API endpoint

Analis Siber Purwakarta - Admin. Pada Lab Portswigger ini, penulis akan mendemonstrasikan cara menyelesaikan tugas dari seris API Testing yang disediakan oleh Portswigger. Lab yang berjudul Finding and Exploiting an unused API endpoint, memiliki tujuan untuk memanipulasi harga dari sebuah brand baju yang disediakan didalam sebuah API.

Sebelum memasuki lab ini, penulis diberi sebuah materi bagaimana berinteraksi dengan API endpoints ketika melakukan testing pada sebuah API. Cara bagaimana penulis dapat berinteraksi dengan API endpoints tersebut diantaranya adalah:

  1. Mengidentifkasi HTTP Method apa saja yang digunakan oleh sebuah API, dan;
  2. Mengidentifikasi Content Type apa saja yang digunakan oleh sebuah API.
Langkah awal dari pengujian ini adalah penulis akan masuk menggunakan akun yang disediakan oleh Portswigger, setelah masuk menggunakan akun kembali ke halaman awal website. Pada tampilan halaman awal website, pilih produk "Lightweight "l33t" Leather Jacket", perhatikan harga jaket tersebut berjumlah $1337.00.

Penulis akan mencoba untuk mengintersep HTTP Request dengan menggunakan proxy yang telah disiapkan. Terdapat sebuah HTTP Request yang memiliki header GET Method harga dari produk baju tersebut dengan path API berupa /api/products/1/price. HTTP Response dari Request tersebut berisi setidaknya dua variabel bertipe JSON yakni Price dan Message, penulis disini akan memanipulasi harga yang didapatkan dari Price variabel. Sebagaimana diketahui pada materi sebelumnya, kita dapat memanipulasi sebuah API dengan mengganti HTTP Method, dan menambahkan Content Type apa saja yang didukung, dan digunakan pada web yang akan kita tes.


HTTP Request dan Response yang telah diintersep
Sumber: Dokumentasi Penulis

Penulis merubah HTTP method GET menggunakan method PATCH yang bertujuan untuk merubah nilai dari variabel price. Kemudian penulis menambahkan Content-Type: application/json pada bagian terakhir HTTP Header, dan menambahkan value terbaru untuk variabel price dengan menginput JSON {"price": 0} di HTTP Body.


HTTP Request dan Responnya ketika sudah di manipulasi
Sumber: Dokumentasi penulis

Bila penulis refresh laman produk tersebut, maka harga yang sebelumnya $1337.00 menjadi $0.00. Langkah terakhir dari lab ini adalah kita memasukan kedalam keranjang, dan mengorder jaket tersebut dengan harga $0.00 saja,






Senin, 15 September 2025

PortSwigger - Lab Exploiting an API endpoint using documentation

Analis Siber Purwakarta - Admin. Pada kesempatan kali ini penulis akan memberikan sebuah tata cara dalam menyelesaikan lab dari PortSwigger yang berjudul Exploiting an API Endpoint using documentation. Lab ini merupakan sebuah lab simulasi API Testing dari PortSwigger yang menuntut kita untuk menghapus pengguna dari endpoint API sebuah Website.

API atau dikenal sebagai Application Programming Interfaces merupakan sebuah protokol komunikasi yang memungkinkan dua atau lebih piranti lunak agar dapat berkomunikasi satu sama lain. Contoh dari API itu sendiri pada pengembangan aplikasi Website, pengembang aplikasi familiar dengan API RESTful dan JSON APIs, didalam lab ini penulis akan fokus kepada dua API tersebut.

Untuk menyelesaikan lab ini, langkah awal yang penulis lakukan adalah melakukan login menggunakan akun yang telah disediakan, dan melakukan Recon atau pengintaian dimana Path dari API tersebut disimpan. Path API dalam lab ini cukup mudah ditemukan, kita hanya perlu dengan mengintersepsi Request halaman awal Website menggunakan Proxy yang kalian punya, dan merubah Request Header menjadi /api/ dengan GET method HTTP.


Melakukan intersepsi melalui Proxy Caido, dan memanipulasi HTTP Header
Sumber: Dokumentasi penulis

Setelah proses tersebut, kemudian penulis klik kanan pada bagian Response HTTP dan pilih View response in Browser. Tampilan selanjutnya kita akan menemukan sebuah API Documentation. Klik bagian baris Delete dari tabel dokumentasi tersebut, kemudian hapus pengguna yang harus dihapus berdasarkan instruksi awal lab ini. Bilamana user tersebut telah dihapus, maka tantangan dari lab ini sudah selesai dilakukan.