Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sqlmapproject
GitHub Repository: sqlmapproject/sqlmap
Path: blob/master/lib/core/session.py
2989 views
1
#!/usr/bin/env python
2
3
"""
4
Copyright (c) 2006-2025 sqlmap developers (https://sqlmap.org)
5
See the file 'LICENSE' for copying permission
6
"""
7
8
import re
9
10
from lib.core.common import Backend
11
from lib.core.common import Format
12
from lib.core.common import hashDBWrite
13
from lib.core.data import kb
14
from lib.core.data import logger
15
from lib.core.enums import HASHDB_KEYS
16
from lib.core.enums import OS
17
from lib.core.settings import SUPPORTED_DBMS
18
19
def setDbms(dbms):
20
"""
21
@param dbms: database management system to be set into the knowledge
22
base as fingerprint.
23
@type dbms: C{str}
24
"""
25
26
hashDBWrite(HASHDB_KEYS.DBMS, dbms)
27
28
_ = "(%s)" % ('|'.join(SUPPORTED_DBMS))
29
_ = re.search(r"\A%s( |\Z)" % _, dbms, re.I)
30
31
if _:
32
dbms = _.group(1)
33
34
Backend.setDbms(dbms)
35
if kb.resolutionDbms:
36
hashDBWrite(HASHDB_KEYS.DBMS, kb.resolutionDbms)
37
38
logger.info("the back-end DBMS is %s" % Backend.getDbms())
39
40
def setOs():
41
"""
42
Example of kb.bannerFp dictionary:
43
44
{
45
'sp': set(['Service Pack 4']),
46
'dbmsVersion': '8.00.194',
47
'dbmsServicePack': '0',
48
'distrib': set(['2000']),
49
'dbmsRelease': '2000',
50
'type': set(['Windows'])
51
}
52
"""
53
54
infoMsg = ""
55
56
if not kb.bannerFp:
57
return
58
59
if "type" in kb.bannerFp:
60
Backend.setOs(Format.humanize(kb.bannerFp["type"]))
61
infoMsg = "the back-end DBMS operating system is %s" % Backend.getOs()
62
63
if "distrib" in kb.bannerFp:
64
kb.osVersion = Format.humanize(kb.bannerFp["distrib"])
65
infoMsg += " %s" % kb.osVersion
66
67
if "sp" in kb.bannerFp:
68
kb.osSP = int(Format.humanize(kb.bannerFp["sp"]).replace("Service Pack ", ""))
69
70
elif "sp" not in kb.bannerFp and Backend.isOs(OS.WINDOWS):
71
kb.osSP = 0
72
73
if Backend.getOs() and kb.osVersion and kb.osSP:
74
infoMsg += " Service Pack %d" % kb.osSP
75
76
if infoMsg:
77
logger.info(infoMsg)
78
79
hashDBWrite(HASHDB_KEYS.OS, Backend.getOs())
80
81