Skip to content

Commit 353d951

Browse files
committed
Call the get_hostname_options in find_hostname_in_context instead
1 parent 447c7c6 commit 353d951

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

aikido_zen/vulnerabilities/ssrf/find_hostname_in_context.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
from aikido_zen.helpers.extract_strings_from_context import extract_strings_from_context
66
from .find_hostname_in_userinput import find_hostname_in_userinput
7+
from .get_hostname_options import get_hostname_options
78
from .is_request_to_itself import is_request_to_itself
89
from ...context import Context
910

@@ -19,8 +20,11 @@ def find_hostname_in_context(hostname, context: Context, port):
1920
if is_request_to_itself(context.url, hostname, port):
2021
return None
2122

23+
# Gets the different hostname options: with/without punycode, with/without brackets for IPv6
24+
hostname_options = get_hostname_options(hostname)
25+
2226
for user_input, path, source in extract_strings_from_context(context):
23-
found = find_hostname_in_userinput(user_input, hostname, port)
27+
found = find_hostname_in_userinput(user_input, hostname_options, port)
2428
if found:
2529
return {
2630
"source": source,

aikido_zen/vulnerabilities/ssrf/find_hostname_in_userinput.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,16 @@
33
"""
44

55
from typing import List
6-
76
from aikido_zen.helpers.get_port_from_url import get_port_from_url
87
from aikido_zen.helpers.try_parse_url import try_parse_url
98

109

11-
def find_hostname_in_userinput(user_input, hostname, port=None):
10+
def find_hostname_in_userinput(user_input, hostname_options: List[str], port=None):
1211
"""
1312
Returns true if the hostname is in userinput
1413
"""
1514
if len(user_input) <= 1:
1615
return False
17-
18-
hostname_options = get_hostname_options(hostname)
1916
if len(hostname_options) == 0:
2017
return False
2118

aikido_zen/vulnerabilities/ssrf/find_hostname_in_userinput_test.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
import pytest
2-
from .find_hostname_in_userinput import find_hostname_in_userinput
2+
from .find_hostname_in_userinput import (
3+
find_hostname_in_userinput as _find_hostname_in_userinput,
4+
)
5+
from .get_hostname_options import get_hostname_options
6+
7+
8+
def find_hostname_in_userinput(user_input, hostname, port=None):
9+
hostname_options = get_hostname_options(hostname)
10+
return _find_hostname_in_userinput(user_input, hostname_options, port)
311

412

513
def test_returns_false_if_user_input_and_hostname_are_empty():

0 commit comments

Comments
 (0)