Hallo en welkom op mijn andere instructable. In dit instructable ik zal u vertellen hoe te kappen A Website In minder dan 2 minuten bij gebruik van SQL injectie.
'' Ik ben niet verantwoordelijk voor eventuele hacken door iedereen gedaan ''
Inleiding tot Sql injectie:
Een SQL-injectie is een soort van de kwetsbaarheid van de injectie waarin
de aanvaller probeert te injecteren van willekeurige stukken van schadelijke gegevens in de invoervelden voor een toepassing, die, wanneer verwerkt door de toepassing, veroorzaakt dat gegevens moet worden uitgevoerd als een stukje code door de back-end SQL server, waardoor ongewenste die de ontwikkelaar van de toepassing resultaten niet had verwacht. De backend server kan elke willekeurige SQL server (MySQL, MSSQL, ORACLE, POSTGRESS, om enkelen te noemen)
Het vermogen van de aanvaller voor het uitvoeren van code (SQL-instructies) door kwetsbare invoerparameters machtigt hem rechtstreeks communiceren met de back-end SQL server, waardoor het leveraging van bijna een volledige compromis van systeem in de meeste gevallen.
Waarom gebeurt SQL injectie?
Over het algemeen wanneer een toepassing is communiceren met de backend
database, dat gebeurt in de vorm van query's met behulp van een onderliggende databasestuurprogramma. Dit stuurprogramma is afhankelijk van het toepassingsplatform wordt gebruikt en de soort backend database, zoals MYSQL, MSSQL, DB2 en ORACLE.
Een generieke login query zou als volgt uitzien:
' SELECT Kolom1, kolom2, Kolom3 van table_name waar gebruikersbenaming =' $variable1′ en wachtwoord = "$variable2′;"
We kunnen deze query opgesplitst in twee delen, codesectie en de sectie van de data. Het gegevensgedeelte is de $variable1 en $variable2 en aanhalingstekens rond de variabele worden gebruikt om de grens van de tekenreeks te bepalen.
Laten we proberen om het proces op een ruwe manier doorlopen. Op het aanmeldingsformulier, zeggen de ingevoerde gebruikersnaam is Admin en wachtwoord is p die is verzameld door toepassing en waarden van $variable1 en $variable2 zijn geplaatst op hun respectieve plaatsen in de query, waardoor het iets als dit.
' Selecteer Kolom1, kolom2, Kolom3 van table_name waar gebruikersbenaming = 'Admin' en wachtwoord ='p
Nu de ontwikkelaar wordt ervan uitgegaan dat gebruikers van zijn aanvraag altijd een gebruikersnaam en wachtwoord combinatie brengt om een geldige query voor evaluatie door database backend. Wat als de gebruiker schadelijk is en sommige tekens hebben een speciale betekenis in de query typt? Bijvoorbeeld een enkel aanhalingsteken. Dus, in plaats van Admin, zet hij Admin', waardoor een fout gegooid door de DB-stuurprogramma veroorzaakt. Waarom? Vanwege de ongepaarde offerte ingevoerd door de gebruiker het breken van de toepassingslogica.