Skip to content

Commit aa03ca6

Browse files
committed
Make changes to find_hostname_in_userinput so it works with all examples
1 parent 20166b3 commit aa03ca6

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

aikido_zen/vulnerabilities/ssrf/find_hostname_in_userinput.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Only exports find_hostname_in_userinput function
33
"""
44

5-
from typing import Optional, List, Dict
5+
from typing import Optional, List, Tuple
66

77
from aikido_zen.helpers.get_port_from_url import get_port_from_url
88
from aikido_zen.helpers.try_parse_url import try_parse_url
@@ -17,9 +17,6 @@ def find_hostname_in_userinput(
1717
normalized_hostname = normalized_hostname.lower()
1818
if len(user_input) <= 1:
1919
return False
20-
if port and not str(port) in user_input:
21-
# Easy way for an early return: If a port is defined, it has to be inside the user input.
22-
return False
2320

2421
user_input_variants = [user_input, f"http://{user_input}", f"https://{user_input}"]
2522
user_input_normalized_variants = normalize_raw_url_variants(user_input_variants)
@@ -41,13 +38,15 @@ def find_hostname_in_userinput(
4138
return False
4239

4340

44-
def normalize_raw_url_variants(url_variants: List[str]) -> Dict[str, Optional[int]]:
45-
normalized_variants = {}
41+
def normalize_raw_url_variants(
42+
url_variants: List[str],
43+
) -> List[Tuple[str, Optional[int]]]:
44+
normalized_variants = []
4645
for variant in url_variants:
4746
# Try parse the variant as an url,
4847
user_input_url = try_parse_url(variant)
4948
if not user_input_url or not user_input_url.hostname:
5049
continue
5150
port = get_port_from_url(user_input_url.geturl())
52-
normalized_variants[user_input_url.hostname.lower()] = port
51+
normalized_variants.append((user_input_url.hostname.lower(), port))
5352
return normalized_variants

aikido_zen/vulnerabilities/ssrf/find_hostname_in_userinput_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def find_hostname_in_userinput(user_input, hostname, port=None):
1111
if not hostname_url:
1212
return False
1313
normalized_hostname = hostname_url.hostname
14-
_find_hostname_in_userinput(user_input, normalized_hostname, port)
14+
return _find_hostname_in_userinput(user_input, normalized_hostname, port)
1515

1616

1717
def test_returns_false_if_user_input_and_hostname_are_empty():

0 commit comments

Comments
 (0)