Skip to content

Commit c51e219

Browse files
committed
Fix for an Issue sqlmapproject#691
1 parent fc3c321 commit c51e219

1 file changed

Lines changed: 8 additions & 9 deletions

File tree

plugins/dbms/mssqlserver/fingerprint.py

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -137,16 +137,16 @@ def checkDbmsOs(self, detailed=False):
137137
versions = { "2003": ("5.2", (2, 1)),
138138
# TODO: verify this
139139
#"2003": ("6.0", (2, 1)),
140-
"2008": ("7.0", (1,)),
140+
"2008": ("7.0", (2, 1,)),
141141
"2000": ("5.0", (4, 3, 2, 1)),
142142
"7": ("6.1", (1, 0)),
143-
"XP": ("5.1", (2, 1)),
143+
"XP": ("5.1", (3, 2, 1)),
144144
"NT": ("4.0", (6, 5, 4, 3, 2, 1)) }
145145

146146
# Get back-end DBMS underlying operating system version
147147
for version, data in versions.items():
148-
query = "(SELECT LEN(%s) FROM %s WHERE %s " % (self.tblField, self.fileTblName, self.tblField)
149-
query += "LIKE '%Windows NT " + data[0] + "%')>0"
148+
query = "EXISTS(SELECT %s FROM %s WHERE %s " % (self.tblField, self.fileTblName, self.tblField)
149+
query += "LIKE '%Windows NT " + data[0] + "%')"
150150
result = inject.checkBooleanExpression(query)
151151

152152
if result:
@@ -169,13 +169,12 @@ def checkDbmsOs(self, detailed=False):
169169

170170
# Get back-end DBMS underlying operating system service pack
171171
sps = versions[Backend.getOsVersion()][1]
172-
173172
for sp in sps:
174-
query = "SELECT LEN(%s) FROM %s WHERE %s " % (self.tblField, self.fileTblName, self.tblField)
175-
query += "LIKE '%Service Pack " + getUnicode(sp) + "%'"
176-
result = inject.goStacked(query)
173+
query = "EXISTS(SELECT %s FROM %s WHERE %s " % (self.tblField, self.fileTblName, self.tblField)
174+
query += "LIKE '%Service Pack " + getUnicode(sp) + "%')"
175+
result = inject.checkBooleanExpression(query)
177176

178-
if result is not None and len(result) > 0 and result[0].isdigit():
177+
if result:
179178
Backend.setOsServicePack(sp)
180179
break
181180

0 commit comments

Comments
 (0)