libInjection Python3 bindings
Python3 bindings for libinjection - a SQL/SQLI tokenizer, parser and analyzer.
- Python 3.x
- SWIG 4.x
- GCC or compatible C compiler
git clone https://github.com/libinjection/python3-libinjection.git
cd python3-libinjection
make upstreammake libinjection/libinjection.h libinjection/libinjection_sqli.h libinjection/libinjection_error.hswig -python -builtin -Wall -Wextra \
-o libinjection/libinjection_wrap.c \
-outdir libinjection \
libinjection/libinjection.ipython3 setup.py build_ext --inplaceOr using the Makefile:
make buildpython3 json2python.py < upstream/src/sqlparse_data.json > words.pyimport libinjection
# Simple API - detect SQLi in a string
result, fingerprint = libinjection.sqli("1 UNION SELECT * FROM users")
if result:
print(f"SQLi detected! Fingerprint: {fingerprint}")
# Advanced API with state object
state = libinjection.sqli_state()
libinjection.sqli_init(state, "1 UNION SELECT * FROM users",
libinjection.FLAG_QUOTE_NONE | libinjection.FLAG_SQL_ANSI)
libinjection.sqli_callback(state, None)
if libinjection.is_sqli(state):
print(f"SQLi detected! Fingerprint: {state.fingerprint}")import libinjection
# Detect XSS in a string
result = libinjection.xss("<script>alert(1)</script>")
if result:
print("XSS detected!")Run the test suite using pytest from the repository root:
python3 -m pytest test_driver.py test_api.py -vNote:
upstream/tests/must exist (runmake upstreamfirst) fortest_driver.pyto find test data.