SQL Injection Tutorial

SQL injection hacks worden uitgevoerd op servers die niet beschikken over de nodige veilig programmeren.Deze worden meestal uitgevoerd op de servers waar de webpagina code gebruikt inline SQL, wat betekent dat de vraag in de webpagina code in plaats van zich in een opgeslagen procedure.Weten hoe een SQL-injectie hack werkt helpt eigenaren van websites te beschermen gegevens van de klant en zet de webpagina's.

De Vorm Variabele

  • De eerste stap in het begrijpen van hoe een SQL-injectie aanval wordt gecreëerd is door het repliceren van het probleem.SQL injectie aanvallen worden bereikt door middel van het formulier variabelen in een HTML-pagina.Het creëren van de vorm kan de webmaster te simuleren en testen van de beveiliging van de webserver.Hieronder is een voorbeeld van een formulier object gebruikt om een ​​SQL-injectie aanval te creëren.

    & lt; input type = \ "text \" name = \ "myName \" & gt;

    Hoewel dit een eenvoudige vorm tekstvak, het is alles wat nodig is om e

    en ​​SQL-injectie te bereiken.

The Hacker code

  • Wanneer SQL-statements zijn gemaakt, de applicatie bouwt SQL-code die naar de database wordt verzonden.Wanneer een string naar de database wordt verzonden, wordt de code ziet er ongeveer als de onderstaande tekst:

    select * from myTable waarbij naam = 'myVariableFromtheForm'

    Het vinkje betekent het einde van de SQL-code, en dit is waar hackers richten.Wanneer een tekstvak als degene die in hoofdstuk 1 wordt gebruikt om een ​​string te bouwen, kan een hacker iets als het volgende in het tekstvak in te voeren:

    'of 1 = 1;-

    Dit kan uitzien wartaal, maar in feite injecteert code in de database die wordt beheerd door de server.Als \ "myVariableFromtheForm \" wordt vervangen door de bovenstaande code, de verklaring die door de server ziet er eigenlijk als de volgende:

    select * from myTable waarbij naam = '' of 1 = 1 - '

    The \ "-\ "is het commentaar code voor SQL-server, zodat de laatste afsluitende teek wordt genegeerd.De string is leeg en de hacker injecteert de code \ "1 = 1 \" in de verklaring.Wat dat doet is terug elke rij van de tafel naar de hacker.Dit is hoe een gewetenloze persoon steelt persoonlijke informatie uit de database servers.

Vaststelling van het probleem

  • De beste manier om het probleem in de code die gevoelig is voor een SQL injection hack te lossen is om de \ gebruiken "Vervang \" functie in ieder geval waar de tekst van de gebruikers is ingevoerd.Bijvoorbeeld, in ASP-code, de volgende regel code vervangt de enkelvoudige vinkje met twee.Wanneer een SQL Server loopt code met twee maatstreepjes, het hen leest als een letterlijke en de string niet wordt beëindigd.

    string.Replace (\ "'\", \ "' '\')
    GO

    De bovenstaande code vervangt alle gevallen van een enkel vinkje met twee, het verwijderen van de kwetsbaarheid van een SQL-injectie aanval.

531
0
0
Database Software