diff --git a/web/api/serializers.py b/web/api/serializers.py index f15f81b4..95de6d41 100644 --- a/web/api/serializers.py +++ b/web/api/serializers.py @@ -718,6 +718,12 @@ class IpSubdomainSerializer(serializers.ModelSerializer): fields = ['name', 'ip_addresses'] depth = 1 +class WafSerializer(serializers.ModelSerializer): + + class Meta: + model = Waf + fields = '__all__' + class SubdomainSerializer(serializers.ModelSerializer): @@ -735,6 +741,7 @@ class SubdomainSerializer(serializers.ModelSerializer): directories_count = serializers.SerializerMethodField('get_directories_count') subscan_count = serializers.SerializerMethodField('get_subscan_count') ip_addresses = IpSerializer(many=True) + waf = WafSerializer(many=True) technologies = TechnologySerializer(many=True) directories = DirectoryScanSerializer(many=True) diff --git a/web/startScan/templates/startScan/detail_scan.html b/web/startScan/templates/startScan/detail_scan.html index 3c05fdd8..18ac291c 100644 --- a/web/startScan/templates/startScan/detail_scan.html +++ b/web/startScan/templates/startScan/detail_scan.html @@ -1938,11 +1938,12 @@ $(document).ready(function() { {'data': 'id'}, {'data': 'directories_count'}, {'data': 'subscan_count'}, + {'data': 'waf'}, ], "columnDefs": [ { "orderable": false, "targets": [2, 3, 6, 7, 9]}, { - "targets": [ 2, 3, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 26], + "targets": [ 2, 3, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 25, 26, 27], "visible": false, "searchable": false, }, @@ -1960,11 +1961,12 @@ $(document).ready(function() { // subdomain Name { "render": function ( data, type, row ) { - badges = ''; - tech_badge = ''; - interesting_badge = ''; - content_type = ''; - web_server = ''; + var badges = ''; + var tech_badge = ''; + var interesting_badge = ''; + var content_type = ''; + var web_server = ''; + var waf_badge = ''; if (row['technologies']){ tech_badge = '
' + parse_technology(row['technologies'], "primary", scan_id={{scan_history_id}}, domain_id=null) + '
'; } @@ -1997,6 +1999,15 @@ $(document).ready(function() { endpoint_count_badge = `${row['endpoint_count']} `; } + if(row['waf'].length){ + waf_badge = `
WAF Detected`; + for (var waf in row['waf']) { + var waf_object = row['waf'][waf]; + waf_badge += `${waf_object.name}`; + } + waf_badge += `
`; + } + vuln_count_badge = ''; total_vuln_badge = `${row['info_count'] + row['low_count'] + row['high_count'] + row['medium_count'] + row['critical_count']} `; info_badge = `${row['info_count']} Info`; @@ -2030,11 +2041,11 @@ $(document).ready(function() { if (row['http_url']) { if (row['cname']) { cname_badge = `
CNAME
` + row['cname'].replace(',', '
') + `
`; - return badges + `
` + data +`${copy_icon} `+ `
` + cname_badge + end_vuln_badge + tech_badge + todo_badge; + return badges + `
` + data +`${copy_icon} `+ `
` + cname_badge + waf_badge + end_vuln_badge + tech_badge + todo_badge; } - return badges + `
` + data + `${copy_icon} ` + `
` + end_vuln_badge + tech_badge + todo_badge; + return badges + `
` + data + `${copy_icon} ` + `
` + waf_badge + end_vuln_badge + tech_badge + todo_badge; } - return badges + `
` + data + `${copy_icon} ` + `
` + end_vuln_badge + tech_badge + todo_badge; + return badges + `
` + data + `${copy_icon} ` + `
` + waf_badge + end_vuln_badge + tech_badge + todo_badge; }, "targets": 1 },