Skip to content

Commit edea39c

Browse files
author
Greg Anderson
authored
Merge pull request #180 from CCoffie/master
Fixing Re-Importing scan functionality
2 parents d539f28 + 0c657ac commit edea39c

File tree

2 files changed

+40
-19
lines changed

2 files changed

+40
-19
lines changed

dojo/api.py

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -843,9 +843,6 @@ class ImportScanResource(MultipartResource, Resource):
843843
file = fields.FileField(attribute='file')
844844
engagement = fields.CharField(attribute='engagement')
845845

846-
@staticmethod
847-
848-
849846
class Meta:
850847
resource_name = 'importscan'
851848
fields = ['scan_date', 'minimum_severity', 'active', 'verified', 'scan_type', 'tags', 'file']
@@ -1112,19 +1109,20 @@ def obj_create(self, bundle, **kwargs):
11121109
)
11131110

11141111
if len(find) == 1:
1115-
if find[0].mitigated:
1112+
find = find[0]
1113+
if find.mitigated:
11161114
# it was once fixed, but now back
1117-
find[0].mitigated = None
1118-
find[0].mitigated_by = None
1119-
find[0].active = True
1120-
find[0].verified = verified
1121-
find[0].save()
1115+
find.mitigated = None
1116+
find.mitigated_by = None
1117+
find.active = True
1118+
find.verified = verified
1119+
find.save()
11221120
note = Notes(entry="Re-activated by %s re-upload." % scan_type,
11231121
author=bundle.request.user)
11241122
note.save()
1125-
find[0].notes.add(note)
1123+
find.notes.add(note)
11261124
reactivated_count += 1
1127-
new_items.append(find[0].id)
1125+
new_items.append(find.id)
11281126
else:
11291127
item.test = test
11301128
item.date = test.target_start
@@ -1137,6 +1135,16 @@ def obj_create(self, bundle, **kwargs):
11371135
finding_added_count += 1
11381136
new_items.append(item.id)
11391137
find = item
1138+
1139+
if hasattr(item, 'unsaved_req_resp') and len(item.unsaved_req_resp) > 0:
1140+
for req_resp in item.unsaved_req_resp:
1141+
burp_rr = BurpRawRequestResponse(finding=find,
1142+
burpRequestBase64=req_resp["req"],
1143+
burpResponseBase64=req_resp["resp"],
1144+
)
1145+
burp_rr.clean()
1146+
burp_rr.save()
1147+
11401148
if item.unsaved_request is not None and item.unsaved_response is not None:
11411149
burp_rr = BurpRawRequestResponse(finding=find,
11421150
burpRequestBase64=item.unsaved_request,
@@ -1153,6 +1161,7 @@ def obj_create(self, bundle, **kwargs):
11531161
query=endpoint.query,
11541162
fragment=endpoint.fragment,
11551163
product=test.engagement.product)
1164+
find.endpoints.add(ep)
11561165

11571166
if item.unsaved_tags is not None:
11581167
find.tags = item.unsaved_tags

dojo/test/views.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -438,19 +438,20 @@ def re_import_scan_results(request, tid):
438438
)
439439

440440
if len(find) == 1:
441-
if find[0].mitigated:
441+
find = find[0]
442+
if find.mitigated:
442443
# it was once fixed, but now back
443-
find[0].mitigated = None
444-
find[0].mitigated_by = None
445-
find[0].active = True
446-
find[0].verified = verified
447-
find[0].save()
444+
find.mitigated = None
445+
find.mitigated_by = None
446+
find.active = True
447+
find.verified = verified
448+
find.save()
448449
note = Notes(entry="Re-activated by %s re-upload." % scan_type,
449450
author=request.user)
450451
note.save()
451-
find[0].notes.add(note)
452+
find.notes.add(note)
452453
reactivated_count += 1
453-
new_items.append(find[0].id)
454+
new_items.append(find.id)
454455
else:
455456
item.test = t
456457
item.date = t.target_start
@@ -463,6 +464,16 @@ def re_import_scan_results(request, tid):
463464
finding_added_count += 1
464465
new_items.append(item.id)
465466
find = item
467+
468+
if hasattr(item, 'unsaved_req_resp') and len(item.unsaved_req_resp) > 0:
469+
for req_resp in item.unsaved_req_resp:
470+
burp_rr = BurpRawRequestResponse(finding=find,
471+
burpRequestBase64=req_resp["req"],
472+
burpResponseBase64=req_resp["resp"],
473+
)
474+
burp_rr.clean()
475+
burp_rr.save()
476+
466477
if item.unsaved_request is not None and item.unsaved_response is not None:
467478
burp_rr = BurpRawRequestResponse(finding=find,
468479
burpRequestBase64=item.unsaved_request,
@@ -479,6 +490,7 @@ def re_import_scan_results(request, tid):
479490
query=endpoint.query,
480491
fragment=endpoint.fragment,
481492
product=t.engagement.product)
493+
find.endpoints.add(ep)
482494

483495
if item.unsaved_tags is not None:
484496
find.tags = item.unsaved_tags

0 commit comments

Comments
 (0)