in src/jndi_deobfuscate/jndi_deobfuscate.py [0:0]
def _transform_get_first_jndi_string(input_string: str) -> Union[str, bool]:
"""Returns string contained in first set of curley braces found (incl. braces) (used for filtering)"""
output = None
if input_string:
result = re.findall(SIMPLE_JNDI_REGEX_PATTERN, input_string)
if result:
regex_output = result[0]
logger.debug(
f"Curley brace search: found first JNDI string via regex: `{regex_output}`"
)
first_left_curley_brace_position = regex_output.find("${")
first_right_curley_brace_position = (
regex_output[first_left_curley_brace_position:].find("}") + 1
)
first_jndi_string = str(
regex_output[first_left_curley_brace_position:first_right_curley_brace_position]
)
output = first_jndi_string
if regex_output != first_jndi_string:
logger.debug(
f"Curley brace search: extracted first JNDI string `{first_jndi_string}` from initial regex output {regex_output}"
)
return output