mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2024-11-29 04:53:48 +03:00
implemented --mobile switch
This commit is contained in:
parent
b299912de4
commit
11124b21f9
|
@ -69,6 +69,15 @@ class HASH:
|
|||
SHA1_GENERIC = r'(?i)\A[0-9a-f]{40}\Z'
|
||||
CRYPT_GENERIC = r'(?i)\A[./0-9A-Za-z]{13}\Z'
|
||||
|
||||
class MOBILES:
|
||||
IPHONE = "Apple iPhone 4;Apple-iPhone3C1/801.306"
|
||||
BLACKBERRY = "Blackberry 9800;Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en-US) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.246 Mobile Safari/534.1+"
|
||||
NEXUS = "Google Nexus One;Mozilla/5.0 (Linux; U; Android 2.2; en-US; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
|
||||
KINDLE = "Amazon Kindle 3;Mozilla/5.0 (Linux; U; en-US) AppleWebKit/528.5+ (KHTML, like Gecko, Safari/528.5+) Version/4.0 Kindle/3.0 (screen 600X800; rotate)"
|
||||
GALAXY = "Samsung Galaxy S;Mozilla/5.0 (Linux; U; Android 2.2; en-US; SGH-T959D Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
|
||||
NOKIA = "Nokia N97;Mozilla/5.0 (SymbianOS/9.3; U; Series60/3.2 NokiaN79-1/32.001; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/413 (KHTML, like Gecko) Safari/413"
|
||||
HP = "HP iPAQ 6365;Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320; HP iPAQ h6300)"
|
||||
|
||||
class HTTPHEADER:
|
||||
ACCEPT_ENCODING = "Accept-Encoding"
|
||||
AUTHORIZATION = "Authorization"
|
||||
|
|
|
@ -57,6 +57,7 @@ from lib.core.datatype import injectionDict
|
|||
from lib.core.enums import DBMS
|
||||
from lib.core.enums import HTTPHEADER
|
||||
from lib.core.enums import HTTPMETHOD
|
||||
from lib.core.enums import MOBILES
|
||||
from lib.core.enums import PAYLOAD
|
||||
from lib.core.enums import PRIORITY
|
||||
from lib.core.exception import sqlmapFilePathException
|
||||
|
@ -1051,14 +1052,31 @@ def __setHTTPUserAgent():
|
|||
file choosed as user option
|
||||
"""
|
||||
|
||||
if conf.agent:
|
||||
if conf.mobile:
|
||||
message = "which smartphone do you want sqlmap to imitate through HTTP User-Agent header?\n"
|
||||
items = sorted(getPublicTypeMembers(MOBILES, True))
|
||||
|
||||
for count in xrange(len(items)):
|
||||
item = items[count]
|
||||
message += "[%d] %s%s\n" % (count + 1, item[:item.find(';')], " (default)" if item==MOBILES.IPHONE else "")
|
||||
|
||||
test = readInput(message.rstrip('\n'), default=items.index(MOBILES.IPHONE) + 1)
|
||||
try:
|
||||
item = items[int(test) - 1]
|
||||
except:
|
||||
item = MOBILES.IPHONE
|
||||
|
||||
item = item[item.find(';') + 1:]
|
||||
|
||||
conf.httpHeaders.append(("User-Agent", item))
|
||||
|
||||
elif conf.agent:
|
||||
debugMsg = "setting the HTTP User-Agent header"
|
||||
logger.debug(debugMsg)
|
||||
|
||||
conf.httpHeaders.append(("User-Agent", conf.agent))
|
||||
return
|
||||
|
||||
if not conf.randomAgent:
|
||||
elif not conf.randomAgent:
|
||||
addDefaultUserAgent = True
|
||||
|
||||
for header, _ in conf.httpHeaders:
|
||||
|
@ -1069,9 +1087,7 @@ def __setHTTPUserAgent():
|
|||
if addDefaultUserAgent:
|
||||
conf.httpHeaders.append(("User-Agent", __defaultHTTPUserAgent()))
|
||||
|
||||
return
|
||||
|
||||
if not kb.userAgents:
|
||||
elif not kb.userAgents:
|
||||
debugMsg = "loading random HTTP User-Agent header(s) from "
|
||||
debugMsg += "file '%s'" % paths.USER_AGENTS
|
||||
logger.debug(debugMsg)
|
||||
|
@ -1085,8 +1101,7 @@ def __setHTTPUserAgent():
|
|||
|
||||
conf.httpHeaders.append((HTTPHEADER.USER_AGENT, __defaultHTTPUserAgent()))
|
||||
|
||||
return
|
||||
|
||||
else:
|
||||
count = len(kb.userAgents)
|
||||
|
||||
if count == 1:
|
||||
|
@ -1566,6 +1581,10 @@ def __basicOptionValidation():
|
|||
errMsg = "switch --tor is incompatible with switch --ignore-proxy"
|
||||
raise sqlmapSyntaxException, errMsg
|
||||
|
||||
if conf.mobile and conf.agent:
|
||||
errMsg = "switch --mobile is incompatible with switch --user-agent"
|
||||
raise sqlmapSyntaxException, errMsg
|
||||
|
||||
if conf.proxy and conf.ignoreProxy:
|
||||
errMsg = "switch --proxy is incompatible with switch --ignore-proxy"
|
||||
raise sqlmapSyntaxException, errMsg
|
||||
|
|
|
@ -163,6 +163,7 @@ optDict = {
|
|||
"checkPayload": "boolean",
|
||||
"cleanup": "boolean",
|
||||
"googlePage": "integer",
|
||||
"mobile": "boolean",
|
||||
"pageRank": "boolean",
|
||||
"parseErrors": "boolean",
|
||||
"replicate": "boolean",
|
||||
|
|
|
@ -497,6 +497,10 @@ def cmdLineParser():
|
|||
miscellaneous.add_option("--gpage", dest="googlePage", type="int",
|
||||
help="Use Google dork results from specified page number")
|
||||
|
||||
miscellaneous.add_option("--mobile", dest="mobile",
|
||||
action="store_true", default=False,
|
||||
help="Imitate smartphone through HTTP User-Agent header")
|
||||
|
||||
miscellaneous.add_option("--page-rank", dest="pageRank",
|
||||
action="store_true", default=False,
|
||||
help="Display page rank (PR) for Google dork results")
|
||||
|
|
|
@ -538,6 +538,10 @@ forms = False
|
|||
# Default: 1
|
||||
googlePage = 1
|
||||
|
||||
# Imitate smartphone through HTTP User-Agent header.
|
||||
# Valid: True or False
|
||||
mobile = False
|
||||
|
||||
# Display page rank (PR) for Google dork results.
|
||||
# Valid: True or False
|
||||
pageRank = False
|
||||
|
|
Loading…
Reference in New Issue
Block a user