name = UNTRUSTED_INPUT
subprocess.check_call(
"write_report_for '" + name + "' output.pdf"
)
'; malicious_command; /bin/true 'name = UNTRUSTED_INPUT
result = db_connection.execute(
"SELECT a, b, c FROM items WHERE name = '" + name + "'"
)
'; SELECT password FROM users WHERE name = 'foowith command injection: input interpreted for wrong purpose
supposed to be label/string to match/etc.
actually interpreted as part of command
same pattern for a bunch of memory vulnerabilities we’ll look at