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

📄 no404.nasl

📁 漏洞扫描源码,可以扫描linux,windows,交换机路由器
💻 NASL
字号:
## This script was written by Renaud Deraison <deraison@cvs.nessus.org># - rewritten in parts by H D Moore <hdmoore@digitaldefense.net>## See the Nessus Scripts License for details#if(description){ script_id(10386); script_version ("$Revision: 116 $"); name["english"] = "No 404 check"; script_name(english:name["english"]);  desc["english"] = "Synopsis :Remote web server does not reply with 404 error code.Description :This web server is [mis]configured in that it does not return'404 Not Found' error codes when a non-existent file is requested,perhaps returning a site map, search page or authentication pageinstead.OpenVAS enabled some counter measures for that, however they mightbe insufficient. If a great number of security holes are producedfor this port, they might not all be accurateRisk factor :None"; script_description(english:desc["english"]);  summary["english"] = "Checks if the remote webserver issues 404 errors"; script_summary(english:summary["english"]);  script_category(ACT_GATHER_INFO);  script_copyright(english:"This script is Copyright (C) 2000 RD / H D Moore"); family["english"] = "Web Servers"; script_family(english:family["english"]); script_dependencie("find_service.nes", "httpver.nasl", "http_login.nasl", "webmirror.nasl"); script_require_ports("Services/www", 80); exit(0);}## The script code starts here#include("http_func.inc");include("global_settings.inc");include("http_keepalive.inc");include("misc_func.inc");function check(url, port){    req = http_get(item:url, port:port);    result = http_keepalive_send_recv(data:req, port:port);    if(result == NULL)exit(0);    return(result);}function find_err_msg(buffer){    for (cmsg = 0; errmsg[cmsg]; cmsg = cmsg + 1)    {        cpat = errmsg[cmsg];        if (egrep(pattern:cpat, string:buffer, icase:TRUE))        {            if (debug_level) display("no404 - '",cpat, "' found in '", buffer, "'\n");            return(cpat);        }    }    return (0);}# build list of test urlsbasename="404";while ("404" >< basename) basename= "/" + rand_str(length:12);i = 0;badurl[i++] = string(basename, ".html");badurl[i++] = string(basename, ".cgi");badurl[i++] = string(basename, ".sh");badurl[i++] = string(basename, ".pl");badurl[i++] = string(basename, ".inc");badurl[i++] = string(basename, ".shtml");badurl[i++] = string(basename, ".asp");badurl[i++] = string(basename, ".php");badurl[i++] = string(basename, ".php3");badurl[i++] = string(basename, ".cfm");badurl[i++] = string("/cgi-bin", basename, ".html");badurl[i++] = string("/cgi-bin", basename, ".cgi");badurl[i++] = string("/cgi-bin", basename, ".sh");badurl[i++] = string("/cgi-bin", basename, ".pl");badurl[i++] = string("/cgi-bin", basename, ".inc");badurl[i++] = string("/cgi-bin", basename, ".shtml");badurl[i++] = string("/cgi-bin", basename, ".php");badurl[i++] = string("/cgi-bin", basename, ".php3");badurl[i++] = string("/cgi-bin", basename, ".cfm");i = 0;errmsg[i++] = "not found";errmsg[i++] = "404";errmsg[i++] = "error has occurred";errmsg[i++] = "FireWall-1 message";errmsg[i++] = "Reload acp_userinfo database";errmsg[i++] = "IMail Server Web Messaging";errmsg[i++] = "HP Web JetAdmin";errmsg[i++] = "Error processing SSI file";errmsg[i++] = "ExtendNet DX Configuration";errmsg[i++] = "Unable to complete your request due to added security features";errmsg[i++] = "Client Authentication Remote Service</font>";errmsg[i++] = "Bad Request";errmsg[i++] = "<form action=/session_login.cgi";	# webminerrmsg[i++] = "Webmin server";errmsg[i++] = "Management Console";	errmsg[i++] = "TYPE=password";	# As in "<input type=password>"errmsg[i++] = "The userid or password that was specified is not valid.";  # Tivoli server administrator   errmsg[i++] = "Access Failed";errmsg[i++] = "Please identify yourself:";errmsg[i++] = "forcelogon.htm";errmsg[i++] = "encountered an error while publishing this resource";errmsg[i++] = "No web site is configured at this address";errmsg[i++] = 'name=qt id="search" size=40 value=" "';errmsg[i++] = "PHP Fatal error:  Unable to open";errmsg[i++] = "RSA SecurID User Name Request";errmsg[i++] = "Error Occurred While Processing Request";errmsg[i++] = "Web access denied";errmsg[i++] = "Error Page";errmsg[i++] = "The page you requested doesn't exist";errmsg[i++] = "TYPE='password'";errmsg[i++] = 'TYPE="password"';errmsg[i++] = "This version of Compaq's management software has added";function my_exit(){ local_var now; now = unixtime();  if ( now - then > 60 && ! thorough_tests ) {  report = "The remote web server is very slow - it took " + int(now - then) + " seconds toexecute the plugin no404.nasl (it usually only takes a few seconds).In order to keep the scan total time to a reasonable amount, the remote web serverhas not been tested.If you want to test the remote server, either fix it to have it reply to OpenVAS's requestsin a reasonable amount of time, or set the global option 'Thorough tests' to 'yes'";  security_note(port:port, data:report);  set_kb_item(name:"Services/www/" + port + "/broken", value:TRUE); } exit(0);}port = get_http_port(default:80);if(!get_port_state(port))exit(0);found = string("www/no404/", port);then = unixtime();for (c = 0; badurl[c]; c = c + 1){    url = badurl[c];        if(debug_level) display("no404 - Checking URL ", url, " on port ", port, "\n");    ret = check(url:url, port:port);      if (!(ret == 0))    {	# WebMin's miniserv and CompaqDiag behave strangely	if ( egrep(pattern:"^Server: MiniServ/", string:ret) )	{	  set_kb_item(name:found, value:"HTTP");          security_note(port);	  exit(0);	}	# MailEnable-HTTP does not handle connections fast enough	if ( egrep(pattern:"^Server: MailEnable-HTTP/", string:ret) )	{	  set_kb_item(name:found, value:"HTTP");	  set_kb_item(name:"Services/www/" + port + "/broken", value:TRUE);          security_note(port);	  exit(0);	}	if ( egrep(pattern:"^Server: CompaqHTTPServer/", string:ret) )	{	  set_kb_item(name:found, value:"HTTP");	  set_kb_item(name:"Services/www/" + port + "/broken", value:TRUE);          security_note(port);	  exit(0);	}	# This is not a web server	if ( egrep(pattern:"^DAAP-Server: ", string:ret) )	{	  set_kb_item(name:"Services/www/" + port + "/broken", value:TRUE);          security_note(port);	  exit(0);	}        raw_http_line = egrep(pattern:"^HTTP/", string:ret);        # check for a 200 OK        if(ereg(pattern:"^HTTP/[0-9]\.[0-9] 200 ", string:raw_http_line))        {             # look for common "not found": indications             not_found = find_err_msg(buffer:ret);             if (not_found != 0)             {                                set_kb_item(name:found, value:string(not_found));                security_note(port);                                if(debug_level) display("no404 - 200: Using string: ", not_found, "\n");                my_exit(0);                           } else {                                # try to match the title                title = egrep(pattern:"<title", string:ret, icase:TRUE);                if (title)                {                    title = ereg_replace(string:title, pattern:".*<title>(.*)</title>.*", replace:"\1", icase:TRUE);                    if (title)                    {                        if(debug_level) display("no404 - using string from title tag: ", title, "\n");                        set_kb_item(name:found, value:title);                        security_note(port);                        my_exit(0);                    }                }                                # try to match the body tag                body = egrep(pattern:"<body", string:ret, icase:TRUE);                if (body)                {                    body = ereg_replace(string:body, pattern:"<body(.*)>", replace:"\1", icase:TRUE);                    if (body)                    {                        if(debug_level) display("no404 - using string from body tag: ", body, "\n");                        set_kb_item(name:found, value:body);                        security_note(port);                        my_exit();                    }                }                                # get mad and give up                if(debug_level)display("no404 - argh! could not find something to match against.\n");                if(debug_level)display("no404 - [response]", ret, "\n");		msg = "This web server is [mis]configured in that itdoes not return '404 Not Found' error codes whena non-existent file is requested, perhaps returninga site map, search page or authentication page instead.Unfortunately, we were unable to find a way to recognize this page,so some CGI-related checks have been disabled.To work around this issue, please contact the OpenVAS team.";		security_note(port: port, data: msg);		set_kb_item(name:found, value:"HTTP");                my_exit();                             }        }                # check for a 302 Moved Temporarily or 301 Move Permanently        if(ereg(pattern:"^HTTP/[0-9]\.[0-9] 30[12] ", string:raw_http_line))        {		msg = "This web server is [mis]configured in that it does not return '404 Not Found' error codes when a non-existent file is requested, perhaps returninga site map, search page or authentication page instead.CGI scanning will be disabled for this host.To work around this issue, please contact the OpenVAS team.";		security_note(port: port, data: msg);		set_kb_item(name:found, value:"HTTP");                my_exit();        }            } else {        if(debug_level) display("no404 - An error occurred when trying to request: ", url, "\n");    }}my_exit();

⌨️ 快捷键说明

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