# # This script is (C) Tenable Network Security # # if(description) { script_id(15443); script_bugtraq_id(11348); script_version ("$Revision: 1.1 $"); name["english"] = "WordPress HTTP Splitting Vulnerability"; script_name(english:name["english"]); desc["english"] = " The remote host is running WordPress BLOG, a web blog manager written in PHP. The remote version of this software is vulnerable to an HTTP-splitting attack wherein an attacker can insert CR LF characters and then entice an unsuspecting user into accessing the URL. The client will parse and possibly act on the secondary header which was supplied by the attacker. Solution : Upgrade to the latest version of this software Risk factor : Medium"; script_description(english:desc["english"]); summary["english"] = "Checks for the presence of WordPress"; script_summary(english:summary["english"]); script_category(ACT_ATTACK); script_copyright(english:"This script is Copyright (C) 2004 Tenable Network Security", francais:"Ce script est Copyright (C) 2004 Tenable Network Security"); family["english"] = "CGI abuses"; family["francais"] = "Abus de CGI"; script_family(english:family["english"], francais:family["francais"]); script_dependencie("http_version.nasl"); script_require_ports("Services/www", 80); exit(0); } # # The script code starts here # include("http_func.inc"); include("http_keepalive.inc"); port = get_http_port(default:80); if(!get_port_state(port))exit(0); if(!can_host_php(port:port))exit(0); # The actual attack requires credentials -> do a banner check function check(loc) { res = http_keepalive_send_recv(port:port, data:http_get(item:loc + "/index.php", port:port)); if ( res == NULL ) exit(0); res = str_replace(find:'\n', replace:'', string:res); res = str_replace(find:'\r', replace:'', string:res); if ( "WordPress" >< res && egrep(pattern:'