2626
2727import re
2828
29+ from lib .core .agent import agent
2930from lib .core .common import formatDBMSfp
3031from lib .core .common import formatFingerprint
3132from lib .core .common import getHtmlErrorFp
3839from lib .core .settings import ORACLE_SYSTEM_DBS
3940from lib .core .unescaper import unescaper
4041from lib .request import inject
42+ from lib .request .connect import Connect as Request
4143
4244from plugins .generic .enumeration import Enumeration
4345from plugins .generic .filesystem import Filesystem
@@ -163,17 +165,17 @@ def checkDbms(self):
163165 logMsg = "testing Oracle"
164166 logger .info (logMsg )
165167
166- query = "LENGTH(SYSDATE)"
167- sysdate = inject . getValue ( query )
168+ payload = agent . fullPayload ( " AND ROWNUM=ROWNUM" )
169+ result = Request . queryPage ( payload )
168170
169- if sysdate and int ( sysdate ) > 0 :
171+ if result == True :
170172 logMsg = "confirming Oracle"
171173 logger .info (logMsg )
172174
173- query = "SELECT SUBSTR((VERSION), 1, 2) FROM SYS.PRODUCT_COMPONENT_VERSION WHERE ROWNUM=1"
174- version = inject . getValue ( query )
175+ payload = agent . fullPayload ( " AND LENGTH(SYSDATE)=LENGTH(SYSDATE)" )
176+ result = Request . queryPage ( payload )
175177
176- if not version :
178+ if result != True :
177179 warnMsg = "the back-end DMBS is not Oracle"
178180 logger .warn (warnMsg )
179181
@@ -186,6 +188,9 @@ def checkDbms(self):
186188 if not conf .extensiveFp :
187189 return True
188190
191+ query = "SELECT SUBSTR((VERSION), 1, 2) FROM SYS.PRODUCT_COMPONENT_VERSION WHERE ROWNUM=1"
192+ version = inject .getValue (query )
193+
189194 if re .search ("^11" , version ):
190195 kb .dbmsVersion = ["11i" ]
191196 elif re .search ("^10" , version ):
0 commit comments