From b4f2d24aee2ead87dd762005204bfbbb1b72d381 Mon Sep 17 00:00:00 2001 From: Yogesh Ojha Date: Sat, 13 Mar 2021 21:24:22 +0530 Subject: [PATCH] Fixed HTTP status on endpoint and subdomains --- reNgine/common_func.py | 42 ++++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/reNgine/common_func.py b/reNgine/common_func.py index 19aaca79..1e2cc39c 100644 --- a/reNgine/common_func.py +++ b/reNgine/common_func.py @@ -44,8 +44,8 @@ def get_interesting_subdomains(scan_history=None, target=None): if InterestingLookupModel.objects.filter( custom_type=True) and InterestingLookupModel.objects.filter( custom_type=True).order_by('-id')[0].condition_200_http_lookup: - subdomain_lookup_query &= Q(http_status=200) - page_title_lookup_query &= Q(http_status=200) + subdomain_lookup_query &= Q(http_status__exact=200) + page_title_lookup_query &= Q(http_status__exact=200) subdomain_lookup = ScannedHost.objects.none() title_lookup = ScannedHost.objects.none() @@ -74,18 +74,36 @@ def get_interesting_endpoint(scan_history=None, target=None): page_title_lookup_query = Q() for key in lookup_keywords: - url_lookup_query |= Q(http_url__icontains=key) - page_title_lookup_query |= Q(page_title__iregex="\\y{}\\y".format(key)) + if InterestingLookupModel.objects.filter(custom_type=True).exists(): + if InterestingLookupModel.objects.filter(custom_type=True).order_by('-id')[0].url_lookup: + url_lookup_query |= Q(http_url__icontains=key) + if InterestingLookupModel.objects.filter(custom_type=True).order_by('-id')[0].title_lookup: + page_title_lookup_query |= Q(page_title__iregex="\\y{}\\y".format(key)) + + else: + url_lookup_query |= Q(http_url__icontains=key) + page_title_lookup_query |= Q(page_title__iregex="\\y{}\\y".format(key)) + + if InterestingLookupModel.objects.filter(custom_type=True) and InterestingLookupModel.objects.filter(custom_type=True).order_by('-id')[0].condition_200_http_lookup: + url_lookup_query &= Q(http_status__exact=200) + page_title_lookup_query &= Q(http_status__exact=200) + + url_lookup = WayBackEndPoint.objects.none() + title_lookup = WayBackEndPoint.objects.none() if target: - url_lookup = WayBackEndPoint.objects.filter( - target_domain__id=target).filter(url_lookup_query).distinct('http_url') - title_lookup = WayBackEndPoint.objects.filter( - target_domain__id=target).filter(page_title_lookup_query).distinct('http_url') + if url_lookup_query: + url_lookup = WayBackEndPoint.objects.filter( + target_domain__id=target).filter(url_lookup_query).distinct('http_url') + if page_title_lookup_query: + title_lookup = WayBackEndPoint.objects.filter( + target_domain__id=target).filter(page_title_lookup_query).distinct('http_url') elif scan_history: - url_lookup = WayBackEndPoint.objects.filter( - url_of__id=scan_history).filter(url_lookup_query) - title_lookup = WayBackEndPoint.objects.filter( - url_of__id=scan_history).filter(page_title_lookup_query) + if url_lookup_query: + url_lookup = WayBackEndPoint.objects.filter( + url_of__id=scan_history).filter(url_lookup_query) + if page_title_lookup_query: + title_lookup = WayBackEndPoint.objects.filter( + url_of__id=scan_history).filter(page_title_lookup_query) return url_lookup | title_lookup