Vulnerabilities > CVE-2005-1688 - Forced Browsing 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

Summary

Wordpress 1.5 and earlier allows remote attackers to obtain sensitive information via a direct request to files in (1) wp-content/themes/, (2) wp-includes/, or (3) wp-admin/, which reveal the path in an error message.

Common Weakness Enumeration (CWE)

Common Attack Pattern Enumeration and Classification (CAPEC)

  • Directory Indexing
    An adversary crafts a request to a target that results in the target listing/indexing the content of a directory as output. One common method of triggering directory contents as output is to construct a request containing a path that terminates in a directory name rather than a file name since many applications are configured to provide a list of the directory's contents when such a request is received. An adversary can use this to explore the directory tree on a target as well as learn the names of files. This can often end up revealing test files, backup files, temporary files, hidden files, configuration files, user accounts, script contents, as well as naming conventions, all of which can be used by an attacker to mount additional attacks.
  • Forceful Browsing
    An attacker employs forceful browsing to access portions of a website that are otherwise unreachable through direct URL entry. Usually, a front controller or similar design pattern is employed to protect access to portions of a web application. Forceful browsing enables an attacker to access information, perform privileged operations and otherwise reach sections of the web application that have been improperly protected.

Nessus

NASL familyCGI abuses
NASL idWORDPRESS_151.NASL
descriptionThe version of WordPress installed on the remote host is affected by multiple vulnerabilities : - The application is affected by a SQL injection vulnerability because it fails to properly sanitize user-supplied input passed via the
last seen2020-06-01
modified2020-06-02
plugin id18301
published2005-05-19
reporterThis script is Copyright (C) 2005-2018 Tenable Network Security, Inc.
sourcehttps://www.tenable.com/plugins/nessus/18301
titleWordPress < 1.5.1 Multiple Vulnerabilities
code
#
# Tenable Network Security, Inc.
#

include("compat.inc");

if (description)
{
  script_id(18301);
  script_version("1.18");
  script_cvs_date("Date: 2018/08/07 16:46:49");

  script_cve_id("CVE-2005-1687", "CVE-2005-1688");
  script_bugtraq_id(13655, 13663, 13664);

  script_name(english:"WordPress < 1.5.1 Multiple Vulnerabilities");
  script_summary(english:"Checks for multiple vulnerabilities in WordPress < 1.5.1.");

  script_set_attribute(attribute:"synopsis", value:
"The remote web server contains a PHP application that is affected by
multiple vulnerabilities.");
  script_set_attribute(attribute:"description", value:
"The version of WordPress installed on the remote host is affected by
multiple vulnerabilities :

  - The application is affected by a SQL injection
    vulnerability because it fails to properly sanitize
    user-supplied input passed via the 'tb_id' parameter
    to the 'wp-trackback.php' script before using it in
    database queries. This could lead to disclosure of
    sensitive information or attacks against the underlying
    database. (CVE-2005-1687)

  - The application contains an information disclosure flaw
    in which paths can be exposed in error messages after
    direct requests to files in '/wp-content/themes/',
    '/wp-includes', and '/wp-admin/'.  (CVE-2005-1688)

  - The application is affected by multiple cross-site
    scripting vulnerabilities. An attacker can pass
    arbitrary HTML and script code through the 's'
    parameter of the 'wp-admin/edit.php' script or the
    'p' parameter in the 'wp-admin/post.php' script, thereby
    facilitating cross-site scripting attacks. Note that
    these attacks will only be successful against
    administrators since the scripts themselves are limited
    to administrators.");
  script_set_attribute(attribute:"see_also", value:"https://wordpress.org/news/2005/05/one-five-one/");
  script_set_attribute(attribute:"solution", value:"Upgrade to WordPress version 1.5.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:U/RL:OF/RC:C");
  script_set_attribute(attribute:"exploitability_ease", value:"No exploit is required");
  script_set_attribute(attribute:"exploit_available", value:"false");
  script_cwe_id(20, 74, 79, 442, 629, 711, 712, 722, 725, 750, 751, 800, 801, 809, 811, 864, 900, 928, 931, 990);

  script_set_attribute(attribute:"vuln_publication_date", value:"2005/05/19");
  script_set_attribute(attribute:"patch_publication_date", value:"2005/05/19");
  script_set_attribute(attribute:"plugin_publication_date", value:"2005/05/19");

  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) 2005-2018 Tenable Network Security, Inc.");

  script_dependencie("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("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'];
ver = install['version'];
install_url = build_url(port:port, qs:dir);

# Try a SQL injection.
# nb: this should lead to a syntax error.
postdata =
  "tb_id=-99'" + SCRIPT_NAME + "&" +
  "url=https://wordpress.org/news/2005/05/one-five-one/&" +
  "title=" + SCRIPT_NAME + "&" + "blog_name=Nessus";

w = http_send_recv3(method: "POST", port:port,
  item:  dir + "/wp-trackback.php",
  data: postdata, exit_on_fail: TRUE);
res = w[2];

# There's a problem if we see a database error with the plugin's name.
if (
  "<p class='wpdberror'>" >< res &&
  "FROM wp_posts WHERE ID = -99'" + SCRIPT_NAME >< res
)
{
  set_kb_item(name: 'www/'+port+'/SQLInjection', value: TRUE);
  security_hole(port);
  exit(0);
}

# Alert on the version number in case magic_quotes was enabled.
# Ensure we are running as paranoid
if (report_paranoia == 2)
{
  if (ver =~ "^(0\.|1\.([0-4]|5([^0-9.]+|$|\.0)))")
  {
    set_kb_item(name: 'www/'+port+'/XSS', value: TRUE);
    set_kb_item(name: 'www/'+port+'/SQLInjection', value: TRUE);
    if (report_verbosity > 0)
    {
      report =
        '\n  URL               : ' + install_url +
        '\n  Installed version : ' + ver +
        '\n  Fixed version     : 1.5.1\n';
      security_hole(port:port, extra:report);
    }
    else security_hole(port);
    exit(0);
  }
}
audit(AUDIT_WEB_APP_NOT_AFFECTED, app, install_url);