Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit bf40526

Browse files
authored
Merge pull request #2618 from delvelabs/mark-steps-in-har
Mark steps in HAR file
2 parents 9b41efc + facc54f commit bf40526

3 files changed

Lines changed: 27 additions & 10 deletions

File tree

lib/controller/checks.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,13 @@ def checkSqlInjection(place, parameter, value):
162162
unionExtended = False
163163
trueCode, falseCode = None, None
164164

165+
if conf.httpCollector is not None:
166+
conf.httpCollector.setExtendedArguments({
167+
"_title": title,
168+
"_place": place,
169+
"_parameter": parameter,
170+
})
171+
165172
if stype == PAYLOAD.TECHNIQUE.UNION:
166173
configUnion(test.request.char)
167174

lib/core/threads.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@ def reset(self):
3838
Resets thread data model
3939
"""
4040

41-
self.requestCollector = None
42-
4341
self.disableStdOut = False
4442
self.hashDBCursor = None
4543
self.inTransaction = False

lib/utils/har.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,15 @@ def create(self):
2929
class HTTPCollector:
3030
def __init__(self):
3131
self.messages = BigArray()
32+
self.extendedArguments = {}
33+
34+
def setExtendedArguments(self, arguments):
35+
self.extendedArguments = arguments
3236

3337
def collectRequest(self, requestMessage, responseMessage, startTime=None, endTime=None):
34-
self.messages.append(RawPair(requestMessage, responseMessage, startTime, endTime))
38+
self.messages.append(RawPair(requestMessage, responseMessage,
39+
startTime=startTime, endTime=endTime,
40+
extendedArguments=self.extendedArguments))
3541

3642
def obtain(self):
3743
return {"log": {
@@ -41,31 +47,37 @@ def obtain(self):
4147
}}
4248

4349
class RawPair:
44-
def __init__(self, request, response, startTime=None, endTime=None):
50+
def __init__(self, request, response, startTime=None, endTime=None, extendedArguments=None):
4551
self.request = request
4652
self.response = response
4753
self.startTime = startTime
4854
self.endTime = endTime
55+
self.extendedArguments = extendedArguments or {}
4956

5057
def toEntry(self):
51-
return Entry(request=Request.parse(self.request), response=Response.parse(self.response), startTime=self.startTime, endTime=self.endTime)
58+
return Entry(request=Request.parse(self.request), response=Response.parse(self.response),
59+
startTime=self.startTime, endTime=self.endTime,
60+
extendedArguments=self.extendedArguments)
5261

5362
class Entry:
54-
def __init__(self, request, response, startTime, endTime):
63+
def __init__(self, request, response, startTime, endTime, extendedArguments):
5564
self.request = request
5665
self.response = response
5766
self.startTime = startTime or 0
5867
self.endTime = endTime or 0
68+
self.extendedArguments = extendedArguments
5969

6070
def toDict(self):
61-
return {
71+
out = {
6272
"request": self.request.toDict(),
6373
"response": self.response.toDict(),
6474
"cache": {},
65-
"timings": [],
75+
"timings": {},
6676
"time": int(1000 * (self.endTime - self.startTime)),
6777
"startedDateTime": "%s%s" % (datetime.datetime.fromtimestamp(self.startTime).isoformat(), time.strftime("%z")) if self.startTime else None
6878
}
79+
out.update(self.extendedArguments)
80+
return out
6981

7082
class Request:
7183
def __init__(self, method, path, httpVersion, headers, postBody=None, raw=None, comment=None):
@@ -130,9 +142,9 @@ def __init__(self, httpVersion, status, statusText, headers, content, raw=None,
130142
@classmethod
131143
def parse(cls, raw):
132144
altered = raw
133-
comment = None
145+
comment = ""
134146

135-
if altered.startswith("HTTP response ["):
147+
if altered.startswith("HTTP response [") or altered.startswith("HTTP redirect ["):
136148
io = StringIO.StringIO(raw)
137149
first_line = io.readline()
138150
parts = cls.extract_status.search(first_line)

0 commit comments

Comments
 (0)