Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions docs/content/en/integrations/parsers/file/wfuzz.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ The return code matching are directly put in Severity as follow(this is hardcode
HTTP Return Code | Severity
-----------------|---------
200 | High
302 | Low
401 | Medium
403 | Medium
404 | Medium
407 | Medium
500 | Low

Expand Down
6 changes: 4 additions & 2 deletions dojo/tools/wfuzz/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@ class WFuzzParser(object):
# table to match HTTP error code and severity
SEVERITY = {
"200": "High",
"500": "Low",
"302": "Low",
"401": "Medium",
"407": "Medium",
"403": "Medium",
"404": "Medium",
"407": "Medium",
"500": "Low"
}

def get_scan_types(self):
Expand Down
14 changes: 14 additions & 0 deletions unittests/scans/wfuzz/issue_7863.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[
{
"chars": 2823,
"code": 404,
"payload": "/server-status | GET /server-status HTTP/1.1\nContent-Type: application/x-www-form-urlencoded\nUser-Agent: Wfuzz/3.1.0\nHost: example.com\n\n",
"lines": 0,
"location": "",
"method": "GET",
"post_data": [],
"server": "",
"url": "https://example.com/server-status",
"words": 60
}
]
10 changes: 10 additions & 0 deletions unittests/tools/test_wfuzz_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,13 @@ def test_one_dup_finding(self):
for endpoint in finding.unsaved_endpoints:
endpoint.clean()
self.assertEqual(4, len(findings))

def test_issue_7863(self):
testfile = open("unittests/scans/wfuzz/issue_7863.json")
parser = WFuzzParser()
findings = parser.get_findings(testfile, Test())
for finding in findings:
for endpoint in finding.unsaved_endpoints:
endpoint.clean()
self.assertEqual(1, len(findings))
self.assertEqual("Medium", findings[0].severity)