Beste phphelpers,
hoe moet je een sql injection uitvoeren in een url,
als je bijvoorbeeld deze link hebt:

http://www.hackthissite.org/missions/realistic/4/products.php?category=1

en je weet dat een tabelnaam email heet en de db heet ook email. Hoe kan je dan alle emailadressen (dus de variabele 'email' in de db) weergeven door middel van een sql injection? Hoe en wat moet je dat dan achter categorie=1 plakken? Union, of select?
Wie kan het mij duidelijk uitleggen hoe het werkt,

Met vriendelijke groet,
Tom


ps:
dit werkte niet:

Http:// ..... ?category = 1 UNION ALL SELECT *,*,* FROM email
Hoe kan je het nou leren als wij je de kant en klare URL geven?
Nogmaals een SELECT zal echt niet zomaar werken, wie zegt dat die gegevens ook in het script gefetched en getoond worden? Als je al met SQL injectie aan de slag gaat, leg je dan toe op DELETE of DROP queries.

Nog beter: vergeet de hele hacker gedachte en leer jezelf gewoon hoe je het kunt voorkomen. Gebruikt dat dan voortaan en denk er verder niet meer over na...

ps. Twee functies die je in dat geval zeker zult willen gebruiken:
- SQL Injectie: mysql_real_escape_string()
- XSS Injectie: htmlentities(), strip_tags()

REVOKE DELETE ON tabelnaam FROM database_user

En toen kon 'database_user' ineens geen gegevens meer verwijderen uit 'tabelnaam'. Zolang hij wel kan updaten, kan hij ook de status van een record (je hebt uiteraard een kolom met de status in je tabel staan) aanpassen: 'verwijderd'. Een administrator kan dan eens in de zoveel tijd oude records daadwerkelijk gaan verwijderen.

Ontneem een user de rechten die hij niet nodig heeft, kan hij deze ook niet misbruiken. Wanneer je stored procedures gaat gebruiken, dan kun je nog veel verder gaan met de rechten en exact bepalen wat iemand nu wel of niet mag uitspoken. Het gebruik van rollen is eveneens sterk aan te raden, dat maakt het beheren van de rechten nog eenvoudiger.

Ps. In MySQL heb ik hier minder ervaring mee maar weet wel dat MySQL minder goed/eenvoudig/gedetaileerd is te beveiligen.

Reageren