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

Skip to content

Commit 2033a28

Browse files
committed
minor update regarding last commit (cleaner code)
1 parent 3a3561f commit 2033a28

3 files changed

Lines changed: 44 additions & 46 deletions

File tree

lib/core/common.py

Lines changed: 39 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1334,53 +1334,49 @@ def parseUnionPage(output, expression, partial=False, condition=None, sort=True)
13341334

13351335
data = BigArray()
13361336

1337-
if isinstance(output, list):
1338-
for entry in output:
1339-
data.append(entry[0] if len(entry) == 1 else entry)
1340-
else:
1341-
outCond1 = ( output.startswith(kb.misc.start) and output.endswith(kb.misc.stop) )
1342-
outCond2 = ( output.startswith(DUMP_START_MARKER) and output.endswith(DUMP_STOP_MARKER) )
1343-
1344-
if outCond1 or outCond2:
1345-
if outCond1:
1346-
regExpr = '%s(.*?)%s' % (kb.misc.start, kb.misc.stop)
1347-
elif outCond2:
1348-
regExpr = '%s(.*?)%s' % (DUMP_START_MARKER, DUMP_STOP_MARKER)
1349-
1350-
output = re.findall(regExpr, output, re.DOTALL | re.IGNORECASE)
1351-
if condition is None:
1352-
condition = (
1353-
kb.resumedQueries and conf.url in kb.resumedQueries.keys()
1354-
and expression in kb.resumedQueries[conf.url].keys()
1355-
)
1356-
1357-
if partial or not condition:
1358-
logOutput = "".join(["%s%s%s" % (DUMP_START_MARKER, replaceNewlineTabs(value), DUMP_STOP_MARKER) for value in output])
1359-
dataToSessionFile("[%s][%s][%s][%s][%s]\n" % (conf.url, kb.injection.place, conf.parameters[kb.injection.place], expression, logOutput))
1360-
1361-
if sort:
1362-
dict_ = {}
1363-
for entry in output:
1364-
dict_[entry.lower()] = entry
1365-
output = dict_.values()
1366-
1337+
outCond1 = ( output.startswith(kb.misc.start) and output.endswith(kb.misc.stop) )
1338+
outCond2 = ( output.startswith(DUMP_START_MARKER) and output.endswith(DUMP_STOP_MARKER) )
1339+
1340+
if outCond1 or outCond2:
1341+
if outCond1:
1342+
regExpr = '%s(.*?)%s' % (kb.misc.start, kb.misc.stop)
1343+
elif outCond2:
1344+
regExpr = '%s(.*?)%s' % (DUMP_START_MARKER, DUMP_STOP_MARKER)
1345+
1346+
output = re.findall(regExpr, output, re.DOTALL | re.IGNORECASE)
1347+
if condition is None:
1348+
condition = (
1349+
kb.resumedQueries and conf.url in kb.resumedQueries.keys()
1350+
and expression in kb.resumedQueries[conf.url].keys()
1351+
)
1352+
1353+
if partial or not condition:
1354+
logOutput = "".join(["%s%s%s" % (DUMP_START_MARKER, replaceNewlineTabs(value), DUMP_STOP_MARKER) for value in output])
1355+
dataToSessionFile("[%s][%s][%s][%s][%s]\n" % (conf.url, kb.injection.place, conf.parameters[kb.injection.place], expression, logOutput))
1356+
1357+
if sort:
1358+
dict_ = {}
13671359
for entry in output:
1368-
info = []
1360+
dict_[entry.lower()] = entry
1361+
output = dict_.values()
13691362

1370-
if DUMP_DEL_MARKER in entry:
1371-
entry = entry.split(DUMP_DEL_MARKER)
1372-
else:
1373-
entry = entry.split(kb.misc.delimiter)
1363+
for entry in output:
1364+
info = []
13741365

1375-
if len(entry) == 1:
1376-
data.append(entry[0])
1377-
else:
1378-
for value in entry:
1379-
info.append(value)
1366+
if DUMP_DEL_MARKER in entry:
1367+
entry = entry.split(DUMP_DEL_MARKER)
1368+
else:
1369+
entry = entry.split(kb.misc.delimiter)
13801370

1381-
data.append(info)
1382-
else:
1383-
data = output
1371+
if len(entry) == 1:
1372+
data.append(entry[0])
1373+
else:
1374+
for value in entry:
1375+
info.append(value)
1376+
1377+
data.append(info)
1378+
else:
1379+
data = output
13841380

13851381
if len(data) == 1 and isinstance(data[0], basestring):
13861382
data = data[0]

lib/request/inject.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ def __goInband(expression, expected=None, sort=True, resumeValue=True, unpack=Tr
375375

376376
output = None
377377
partial = False
378-
data = []
378+
data = None
379379

380380
if resumeValue:
381381
output = resume(expression, None)
@@ -386,7 +386,9 @@ def __goInband(expression, expected=None, sort=True, resumeValue=True, unpack=Tr
386386
if output is None:
387387
output = unionUse(expression, unpack=unpack, dump=dump)
388388

389-
if output:
389+
if isinstance(output, list):
390+
data = output
391+
else:
390392
data = parseUnionPage(output, expression, partial, None, sort)
391393

392394
return data

lib/techniques/union/use.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ def unionThread():
309309
if all(map(lambda x: x in output, [kb.misc.start, kb.misc.stop])):
310310
items = extractRegexResult(r'%s(?P<result>.*?)%s' % (kb.misc.start, kb.misc.stop), output, re.DOTALL | re.IGNORECASE).split(kb.misc.delimiter)
311311
kb.locks.value.acquire()
312-
threadData.shared.value.append(items)
312+
threadData.shared.value.append(items[0] if len(items) == 1 else items)
313313
kb.locks.value.release()
314314
else:
315315
items = output.replace(kb.misc.start, "").replace(kb.misc.stop, "").split(kb.misc.delimiter)

0 commit comments

Comments
 (0)