Skip to content

Commit 1f5c362

Browse files
committed
create encode_safely helper function, and use it for sql inj algo
1 parent f6536bf commit 1f5c362

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

aikido_zen/helpers/encode_safely.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
def encode_safely(string: str) -> bytes:
2+
"""Encodes the given string using UTF-8 encoding, and replaces encoding errors with �"""
3+
return string.encode("utf-8", errors="replace")

aikido_zen/vulnerabilities/sql_injection/__init__.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from aikido_zen.helpers.logging import logger
88
from .map_dialect_to_rust_int import map_dialect_to_rust_int
99
from .get_lib_path import get_binary_path
10+
from ...helpers.encode_safely import encode_safely
1011

1112

1213
def detect_sql_injection(query, user_input, dialect):
@@ -20,9 +21,12 @@ def detect_sql_injection(query, user_input, dialect):
2021
return False
2122

2223
internals_lib = ctypes.CDLL(get_binary_path())
23-
query_bytes = query_l.encode("utf-8")
24-
userinput_bytes = userinput_l.encode("utf-8")
24+
25+
# Parse input variables for rust function
26+
query_bytes = encode_safely(query_l)
27+
userinput_bytes = encode_safely(userinput_l)
2528
dialect_int = map_dialect_to_rust_int(dialect)
29+
2630
c_int_res = internals_lib.detect_sql_injection(
2731
query_bytes, userinput_bytes, dialect_int
2832
)

0 commit comments

Comments
 (0)