code |
include("compat.inc");
if (description)
{
script_id(18622);
script_version("1.17");
script_cvs_date("Date: 2018/06/13 18:56:27");
script_cve_id("CVE-2005-2152");
script_bugtraq_id(14143);
script_name(english:"Geeklog User Comment Retrieval SQL Injection");
script_summary(english:"Checks for user comment retrieval SQL injection vulnerability in Geeklog");
script_set_attribute(attribute:"synopsis", value:
"The remote web server contains a PHP script that is affected by a SQL
injection flaw.");
script_set_attribute(attribute:"description", value:
"The installed version of Geeklog suffers from a SQL injection
vulnerability due to the application's failure to sanitize user-
supplied input via the 'order' parameter of the 'comment.php' script.
By leveraging this flaw, an attacker may be able to recover sensitive
information, such as password hashes, launch attacks against the
underlying database, and the like.");
script_set_attribute(attribute:"see_also", value:"http://www.nessus.org/u?94c28482");
script_set_attribute(attribute:"solution", value:"Upgrade to Geeklog version 1.3.11 sr1 or later.");
script_set_cvss_base_vector("CVSS2#AV:N/AC:H/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:"true");
script_set_attribute(attribute:"vuln_publication_date", value:"2005/07/04");
script_set_attribute(attribute:"plugin_publication_date", value:"2005/07/06");
script_set_attribute(attribute:"plugin_type", value:"remote");
script_set_attribute(attribute:"cpe", value:"cpe:/a:geeklog:geeklog");
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_dependencies("geeklog_detect.nasl");
script_exclude_keys("Settings/disable_cgi_scanning");
script_require_ports("Services/www", 80);
script_require_keys("Settings/ParanoidReport", "www/geeklog");
exit(0);
}
include("global_settings.inc");
include("misc_func.inc");
include("http.inc");
port = get_http_port(default:80, embedded: 0);
if (!can_host_php(port:port)) exit(0);
install = get_kb_item(string("www/", port, "/geeklog"));
if (isnull(install)) exit(0);
matches = eregmatch(string:install, pattern:"^(.+) under (/.*)$");
if (!isnull(matches))
{
dir = matches[2];
w = http_send_recv3(method:"GET",
item:string(
dir, "/comment.php?",
"mode=display&",
"format=flat&",
"pid=99999&",
"order=", SCRIPT_NAME
),
port:port
);
if (isnull(w)) exit(1, "the web server did not answer");
res = w[2];
if ("A SQL error has occured." >< res)
{
security_warning(port);
set_kb_item(name: 'www/'+port+'/SQLInjection', value: TRUE);
exit(0);
}
}
|