mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2024-11-22 17:46:37 +03:00
Implementation for an Issue #4
This commit is contained in:
parent
b3552494c4
commit
efa99c4519
|
@ -88,7 +88,8 @@ optDict = {
|
||||||
"timeSec": "integer",
|
"timeSec": "integer",
|
||||||
"uCols": "string",
|
"uCols": "string",
|
||||||
"uChar": "string",
|
"uChar": "string",
|
||||||
"dnsName": "string"
|
"dnsName": "string",
|
||||||
|
"secondOrder": "string"
|
||||||
},
|
},
|
||||||
|
|
||||||
"Fingerprint": {
|
"Fingerprint": {
|
||||||
|
|
|
@ -288,6 +288,10 @@ def cmdLineParser():
|
||||||
techniques.add_option("--dns-domain", dest="dnsName",
|
techniques.add_option("--dns-domain", dest="dnsName",
|
||||||
help="Domain name used for DNS exfiltration attack")
|
help="Domain name used for DNS exfiltration attack")
|
||||||
|
|
||||||
|
techniques.add_option("--second-order", dest="secondOrder",
|
||||||
|
help="Resulting page url searched for second-order "
|
||||||
|
"response")
|
||||||
|
|
||||||
# Fingerprint options
|
# Fingerprint options
|
||||||
fingerprint = OptionGroup(parser, "Fingerprint")
|
fingerprint = OptionGroup(parser, "Fingerprint")
|
||||||
|
|
||||||
|
|
|
@ -192,7 +192,7 @@ class Connect:
|
||||||
code = None
|
code = None
|
||||||
page = None
|
page = None
|
||||||
requestMsg = u"HTTP request [#%d]:\n%s " % (threadData.lastRequestUID, method or (HTTPMETHOD.POST if post else HTTPMETHOD.GET))
|
requestMsg = u"HTTP request [#%d]:\n%s " % (threadData.lastRequestUID, method or (HTTPMETHOD.POST if post else HTTPMETHOD.GET))
|
||||||
requestMsg += "%s" % urlparse.urlsplit(url)[2] or "/"
|
requestMsg += ("%s" % urlparse.urlsplit(url)[2] or "/") if not any((refreshing, crawling)) else url
|
||||||
responseMsg = u"HTTP response "
|
responseMsg = u"HTTP response "
|
||||||
requestHeaders = u""
|
requestHeaders = u""
|
||||||
responseHeaders = None
|
responseHeaders = None
|
||||||
|
@ -236,7 +236,7 @@ class Connect:
|
||||||
|
|
||||||
return page
|
return page
|
||||||
|
|
||||||
elif any ([refreshing, crawling]):
|
elif any ((refreshing, crawling)):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
elif target:
|
elif target:
|
||||||
|
@ -731,6 +731,9 @@ class Connect:
|
||||||
if not pageLength:
|
if not pageLength:
|
||||||
page, headers, code = Connect.getPage(url=uri, get=get, post=post, cookie=cookie, ua=ua, referer=referer, host=host, silent=silent, method=method, auxHeaders=auxHeaders, response=response, raise404=raise404, ignoreTimeout=timeBasedCompare)
|
page, headers, code = Connect.getPage(url=uri, get=get, post=post, cookie=cookie, ua=ua, referer=referer, host=host, silent=silent, method=method, auxHeaders=auxHeaders, response=response, raise404=raise404, ignoreTimeout=timeBasedCompare)
|
||||||
|
|
||||||
|
if conf.secondOrder:
|
||||||
|
page, headers, code = Connect.getPage(url=conf.secondOrder, cookie=cookie, ua=ua, silent=silent, auxHeaders=auxHeaders, response=response, raise404=False, ignoreTimeout=timeBasedCompare, refreshing=True)
|
||||||
|
|
||||||
threadData.lastQueryDuration = calculateDeltaSeconds(start)
|
threadData.lastQueryDuration = calculateDeltaSeconds(start)
|
||||||
|
|
||||||
kb.originalCode = kb.originalCode or code
|
kb.originalCode = kb.originalCode or code
|
||||||
|
|
|
@ -310,6 +310,10 @@ uChar =
|
||||||
# Valid: string
|
# Valid: string
|
||||||
dnsName =
|
dnsName =
|
||||||
|
|
||||||
|
# Resulting page url searched for second-order response
|
||||||
|
# Valid: string
|
||||||
|
secondOrder =
|
||||||
|
|
||||||
|
|
||||||
[Fingerprint]
|
[Fingerprint]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user