Vulnerabilities > CVE-2007-2821 - Unspecified vulnerability in Wordpress

047910
CVSS 0.0 - NONE
Attack vector
UNKNOWN
Attack complexity
UNKNOWN
Privileges required
UNKNOWN
Confidentiality impact
UNKNOWN
Integrity impact
UNKNOWN
Availability impact
UNKNOWN
wordpress
nessus
exploit available

Summary

SQL injection vulnerability in wp-admin/admin-ajax.php in WordPress before 2.2 allows remote attackers to execute arbitrary SQL commands via the cookie parameter.

Exploit-Db

descriptionWordpress 2.1.3 admin-ajax.php SQL Injection Blind Fishing Exploit. CVE-2007-2821. Webapps exploit for php platform
fileexploits/php/webapps/3960.php
idEDB-ID:3960
last seen2016-01-31
modified2007-05-21
platformphp
port
published2007-05-21
reporterwaraxe
sourcehttps://www.exploit-db.com/download/3960/
titleWordPress 2.1.3 - admin-ajax.php SQL Injection Blind Fishing Exploit
typewebapps

Nessus

  • NASL familyCGI abuses
    NASL idWORDPRESS_AJAX_REFERER_SQL_INJECTION.NASL
    descriptionThe version of WordPress on the remote host fails to properly sanitize input to the
    last seen2020-06-01
    modified2020-06-02
    plugin id25291
    published2007-05-23
    reporterThis script is Copyright (C) 2007-2018 Tenable Network Security, Inc.
    sourcehttps://www.tenable.com/plugins/nessus/25291
    titleWordPress check_ajax_referer() Function SQL Injection
    code
    #
    # (C) Tenable Network Security, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(25291);
      script_version("1.22");
      script_cvs_date("Date: 2018/11/15 20:50:19");
    
      script_cve_id("CVE-2007-2821");
      script_bugtraq_id(24076);
      script_xref(name:"EDB-ID", value:"3960");
    
      script_name(english:"WordPress check_ajax_referer() Function SQL Injection");
      script_summary(english:"Attempts to generate a SQL error.");
    
      script_set_attribute(attribute:"synopsis", value:
    "The remote web server contains a PHP script that is prone to a SQL
    injection attack.");
      script_set_attribute(attribute:"description", value:
    "The version of WordPress on the remote host fails to properly sanitize
    input to the 'cookie' parameter of the 'wp-admin/admin-ajax.php'
    script before using it in the 'check_ajax_referer' function in
    database queries. Regardless of PHP's 'magic_quotes_gpc' setting, an
    unauthenticated, remote attacker can leverage this issue to launch SQL
    injection attacks against the affected application, including the
    discovery of password hashes of WordPress users.");
      script_set_attribute(attribute:"see_also", value:"http://www.waraxe.us/advisory-50.html");
      script_set_attribute(attribute:"see_also", value:"https://seclists.org/bugtraq/2007/May/316");
      script_set_attribute(attribute:"solution", value:"Upgrade to version 2.2.1 or later.");
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
      script_set_cvss_temporal_vector("CVSS2#E:H/RL:OF/RC:C");
      script_set_attribute(attribute:"exploitability_ease", value:"No exploit is required");
      script_set_attribute(attribute:"exploit_available", value:"false");
    
      script_set_attribute(attribute:"vuln_publication_date", value:"2007/05/21");
      script_set_attribute(attribute:"patch_publication_date", value:"2007/05/21");
      script_set_attribute(attribute:"plugin_publication_date", value:"2007/05/23");
    
      script_set_attribute(attribute:"plugin_type", value:"remote");
      script_set_attribute(attribute:"cpe", value:"cpe:/a:wordpress:wordpress");
      script_end_attributes();
    
      script_category(ACT_ATTACK);
      script_family(english:"CGI abuses");
    
      script_copyright(english:"This script is Copyright (C) 2007-2018 Tenable Network Security, Inc.");
    
      script_dependencies("wordpress_detect.nasl");
      script_require_keys("installed_sw/WordPress", "www/PHP");
      script_require_ports("Services/www", 80);
    
      exit(0);
    }
    
    include("audit.inc");
    include("global_settings.inc");
    include("misc_func.inc");
    include("http.inc");
    include("url_func.inc");
    include("install_func.inc");
    
    app = "WordPress";
    get_install_count(app_name:app, exit_if_zero:TRUE);
    
    port = get_http_port(default:80, php:TRUE);
    
    install = get_single_install(
      app_name : app,
      port     : port
    );
    
    dir = install['path'];
    install_url = build_url(port:port, qs:dir);
    
    # Try to exploit the flaw to generate a SQL error.
    exploit = "'" + SCRIPT_NAME;
    # nb: this works as long as the USER_COOKIE and PASS_COOKIE are
    #     derived from COOKIEHASH / site url as in wp-settings.php.
    site = "http://" + get_host_name();
    if (port != 80) site = site + ":" + port;
    if (strlen(dir)-1 == '/') dir = substr(dir, 0, strlen(dir)-2);
    site = site + dir;
    cookiehash = hexstr(MD5(site));
    
    # nb: we need to encode (twice) the single quote.
    cookie = urlencode(
      str        : exploit,
      unreserved : "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_!~*()-]/"
    );
    cookie =
      "wordpressuser_" + cookiehash + "=" + cookie + "; " +
      "wordpresspass_" + cookiehash + "=x";
    
    u = dir + "/wp-admin/admin-ajax.php?cookie=" + urlencode(str:cookie);
    r = http_send_recv3(method: "GET", port:port, item: u, exit_on_fail: TRUE);
    
    # There's a problem if we see an error involving our exploit for the user name.
    if ("WordPress database error" >< r[2])
    {
      res2 = str_replace(find:"&#039;", replace:"'", string:r[2]);
      if (" WHERE user_login = '" + exploit + "'</code>" >< res2)
      {
        set_kb_item(name: 'www/'+port+'/SQLInjection', value: TRUE);
        security_hole(port);
        exit(0);
      }
    }
    else audit(AUDIT_WEB_APP_NOT_AFFECTED, app, install_url);
    
  • NASL familyDebian Local Security Checks
    NASL idDEBIAN_DSA-1502.NASL
    descriptionSeveral remote vulnerabilities have been discovered in wordpress, a weblog manager. The Common Vulnerabilities and Exposures project identifies the following problems : - CVE-2007-3238 Cross-site scripting (XSS) vulnerability in functions.php in the default theme in WordPress allows remote authenticated administrators to inject arbitrary web script or HTML via the PATH_INFO (REQUEST_URI) to wp-admin/themes.php. - CVE-2007-2821 SQL injection vulnerability in wp-admin/admin-ajax.php in WordPress before 2.2 allows remote attackers to execute arbitrary SQL commands via the cookie parameter. - CVE-2008-0193 Cross-site scripting (XSS) vulnerability in wp-db-backup.php in WordPress 2.0.11 and earlier allows remote attackers to inject arbitrary web script or HTML via the backup parameter in a wp-db-backup.php action to wp-admin/edit.php. - CVE-2008-0194 Directory traversal vulnerability in wp-db-backup.php in WordPress 2.0.3 and earlier allows remote attackers to read arbitrary files, delete arbitrary files, and cause a denial of service via a .. (dot dot) in the backup parameter in a wp-db-backup.php action to wp-admin/edit.php. Wordpress is not present in the oldstable distribution (sarge).
    last seen2020-06-01
    modified2020-06-02
    plugin id31146
    published2008-02-25
    reporterThis script is Copyright (C) 2008-2019 and is owned by Tenable, Inc. or an Affiliate thereof.
    sourcehttps://www.tenable.com/plugins/nessus/31146
    titleDebian DSA-1502-1 : wordpress - several vulnerabilities
    code
    #%NASL_MIN_LEVEL 80502
    #
    # (C) Tenable Network Security, Inc.
    #
    # The descriptive text and package checks in this plugin were  
    # extracted from Debian Security Advisory DSA-1502. The text 
    # itself is copyright (C) Software in the Public Interest, Inc.
    #
    
    include("compat.inc");
    
    if (description)
    {
      script_id(31146);
      script_version("1.17");
      script_cvs_date("Date: 2019/08/02 13:32:21");
    
      script_cve_id("CVE-2008-0193", "CVE-2008-0194");
      script_xref(name:"DSA", value:"1502");
    
      script_name(english:"Debian DSA-1502-1 : wordpress - several vulnerabilities");
      script_summary(english:"Checks dpkg output for the updated package");
    
      script_set_attribute(
        attribute:"synopsis", 
        value:"The remote Debian host is missing a security-related update."
      );
      script_set_attribute(
        attribute:"description", 
        value:
    "Several remote vulnerabilities have been discovered in wordpress, a
    weblog manager. The Common Vulnerabilities and Exposures project
    identifies the following problems :
    
      - CVE-2007-3238
        Cross-site scripting (XSS) vulnerability in
        functions.php in the default theme in WordPress allows
        remote authenticated administrators to inject arbitrary
        web script or HTML via the PATH_INFO (REQUEST_URI) to
        wp-admin/themes.php.
    
      - CVE-2007-2821
        SQL injection vulnerability in wp-admin/admin-ajax.php
        in WordPress before 2.2 allows remote attackers to
        execute arbitrary SQL commands via the cookie parameter.
    
      - CVE-2008-0193
        Cross-site scripting (XSS) vulnerability in
        wp-db-backup.php in WordPress 2.0.11 and earlier allows
        remote attackers to inject arbitrary web script or HTML
        via the backup parameter in a wp-db-backup.php action to
        wp-admin/edit.php.
    
      - CVE-2008-0194
        Directory traversal vulnerability in wp-db-backup.php in
        WordPress 2.0.3 and earlier allows remote attackers to
        read arbitrary files, delete arbitrary files, and cause
        a denial of service via a .. (dot dot) in the backup
        parameter in a wp-db-backup.php action to
        wp-admin/edit.php.
    
    Wordpress is not present in the oldstable distribution (sarge)."
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2007-3238"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2007-2821"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2008-0193"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://security-tracker.debian.org/tracker/CVE-2008-0194"
      );
      script_set_attribute(
        attribute:"see_also",
        value:"https://www.debian.org/security/2008/dsa-1502"
      );
      script_set_attribute(
        attribute:"solution", 
        value:
    "Upgrade the wordpress package.
    
    For the stable distribution (etch), these problems have been fixed in
    version 2.0.10-1etch1."
      );
      script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P");
      script_cwe_id(22, 79);
    
      script_set_attribute(attribute:"plugin_type", value:"local");
      script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:wordpress");
      script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:4.0");
    
      script_set_attribute(attribute:"patch_publication_date", value:"2008/02/22");
      script_set_attribute(attribute:"plugin_publication_date", value:"2008/02/25");
      script_end_attributes();
    
      script_category(ACT_GATHER_INFO);
      script_copyright(english:"This script is Copyright (C) 2008-2019 and is owned by Tenable, Inc. or an Affiliate thereof.");
      script_family(english:"Debian Local Security Checks");
    
      script_dependencies("ssh_get_info.nasl");
      script_require_keys("Host/local_checks_enabled", "Host/Debian/release", "Host/Debian/dpkg-l");
    
      exit(0);
    }
    
    
    include("audit.inc");
    include("debian_package.inc");
    
    
    if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
    if (!get_kb_item("Host/Debian/release")) audit(AUDIT_OS_NOT, "Debian");
    if (!get_kb_item("Host/Debian/dpkg-l")) audit(AUDIT_PACKAGE_LIST_MISSING);
    
    
    flag = 0;
    if (deb_check(release:"4.0", prefix:"wordpress", reference:"2.0.10-1etch1")) flag++;
    
    if (flag)
    {
      if (report_verbosity > 0) security_hole(port:0, extra:deb_report_get());
      else security_hole(0);
      exit(0);
    }
    else audit(AUDIT_HOST_NOT, "affected");