sql >> Database >  >> RDS >> Mysql

Hoe kan ik mijn PHP MySQL-injectievoorbeeld testen?

Een van de meest voorkomende voorbeelden is deze vraag:

' or '1'='1

Als u dit invoert als gebruikersnaam en wachtwoord in een niet-opgeschoonde login-invoer, verandert de vraag als volgt:

Original: SELECT * FROM USERS WHERE USER='' AND PASS='';
Modified: SELECT * FROM USERS WHERE USER='' or '1'='1' AND PASS='' or '1'='1';

Dit zorgt ervoor dat alles waar het naar op zoek is waar is, aangezien 1 altijd gelijk zal zijn aan 1. Het probleem met deze methode is dat het niet toestaat om een ​​bepaalde gebruiker te selecteren. Als je dit doet, moet je ervoor zorgen dat het de AND-instructie negeert door er commentaar op te geven, zoals te zien is in andere voorbeelden.



  1. Twee primaire sleutels gespecificeerd in MySQL-database

  2. bij het initialiseren van PDO - moet ik doen:charset=UTF8 of charset=UTF8MB4?

  3. Ik kan Bundler niet uitvoeren, krijg steeds foutmelding

  4. PostgreSQL-equivalent voor MySQL GROUP BY