sql >> Database teknologi >  >> RDS >> Mysql

Fandt 'OR 1=1/* sql-injektion i min nyhedsbrevsdatabase

'OR 1=1 er et forsøg på at få en forespørgsel til at lykkes uanset hvad
/* er et forsøg på at starte en kommentar med flere linjer, så resten af ​​forespørgslen ignoreres.

Et eksempel kunne være

SELECT userid 
FROM users 
WHERE username = ''OR 1=1/*' 
    AND password = ''
    AND domain = ''

Som du kan se, hvis du skulle udfylde brugernavnsfeltet uden at undslippe ' uanset hvilke legitimationsoplysninger brugeren sender i forespørgslen, vil alle bruger-id'er i systemet sandsynligvis give adgang til angriberen (muligvis administratoradgang, hvis admin er din første bruger). Du vil også bemærke, at resten af ​​forespørgslen ville blive kommenteret ud på grund af /* inklusive den rigtige ' .

Det faktum, at du kan se værdien i din database, betyder, at den blev undsluppet, og at netop det angreb ikke lykkedes. Du bør dog undersøge, om der blev gjort andre forsøg.



  1. Den lagrede procedure for at få instansindstillingerne

  2. Hvad skal du kontrollere, hvis PostgreSQL-hukommelsesudnyttelsen er høj

  3. Laravel Fra rå DB til veltalende

  4. mysql-indsættelse efter sletning mislykkes på grund af dobbeltindtastning