SQL injections....
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
Gewijzigd op 01/01/1970 01:00:00 door Tom Fischer
of
=1' OR 1='1
voor het geval er met quotes in de query wordt gewerkt.
Maar goed, je moet wel heel erg stom zijn om anno 2008 nog steeds niets tegen SQL-injection te doen. Zorg voor 1 goede methode om te escapen en gebruik deze ALTIJD, ook als je denkt dat het niet nodig is. Prepared statements en stored procedures kunnen de boel nog net even iets veiliger maken, maar het begint met veilig escapen.
Ps. SQL-injection met een DELETE of DROP is natuurlijk veel indrukwekkender!
Gewijzigd op 01/01/1970 01:00:00 door Frank -
moet daar dan je SQL in ? (Insert lala ..).
Want daar kom ik niet aan uit.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sNaam = mysql_real_escape_string($_POST['naam']);
$sQuery = "
SELECT *
FROM tabel
WHERE naam = '".$sNaam."'
";
?>
$sNaam = mysql_real_escape_string($_POST['naam']);
$sQuery = "
SELECT *
FROM tabel
WHERE naam = '".$sNaam."'
";
?>
ps. Zie ook de SQL Beginnershandleiding.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
' or 0=0 --
" or 0=0 --
or 0=0 --
' or 0=0 #
" or 0=0 #
or 0=0 #
' or 'x'='x
" or "x"="x
') or ('x'='x
' or 1=1--
" or 1=1--
or 1=1--
' or a=a--
:P
Maar ik wil graag weten hoe het werkt in een url, als je in de URL balk wat veranderd, hoe moet je dat intypen en gebruiken?
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$query = "
UPDATE
tabelnaam
SET
kolom = '".mysql_real_escape_string($_POST['veldnaam']."'
WHERE
id = '".mysql_real_escape_string($_GET['id']."';
";
?>
$query = "
UPDATE
tabelnaam
SET
kolom = '".mysql_real_escape_string($_POST['veldnaam']."'
WHERE
id = '".mysql_real_escape_string($_GET['id']."';
";
?>
Data door de user verstuurd is nooit te vertrouwen!
@Tom: Heb je wel de magic_quotes uitgezet? Die zooi heb je niet nodig, maar je moet dan wel op een andere manier de boel beveiligen. Wil je SQL-injection testen, zul je dit dus uit moeten zetten.
Daarnaast zul jij wel iets moeten uitvoeren wat ook effect heeft op de getoonde data. Met een SELECT en UNION extra data ophalen is leuk en aardig, maar wanneer de resultaten niet worden gefetcht in de PHP-code, zul je dit dus niet op het scherm zien. Ga maar eens klooien met een DELETE of inloggen zonder wachtwoord. Dat is veel leuker!
Ps. Voor FireFox zijn leuke tools te krijgen om data aan te passen in formulieren e.d.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Het komt erop neer dat je een zodanige string invoert dat je query er bijvoorbeeld zo uit komt te zien:
Oftewel, alle records worden nu opgehaald. Op deze manier kun je natuurlijk ook de query afsluiten met een ; en tegelijkertijd een tweede query laten uitvoeren. DROP of DELETE queries zijn hier fijne voorbeelden van...
Maar goed, zorg dus altijd dat gebruikers input beveiligd is voordat je deze in een query gebruikt...
ps. @Frank: je mist 2x een ) in je query ;-)
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
dus: http://www.hackthissite.org/missions/realistic/4/products.php?category=1
en daarachter de sql injectie om alle emailadressen te achterhalen, maar wat is hier dan verkeerd aan:
Http://www.hackthissite.org/missions/realistic/4/products.php?category=1 UNION ALL SELECT *,*,* FROM email
???
gr tom
ps, die plugins heb ik al voor ff zoals firebug, tamper data, en modify headers, maar ik wil weten hoe zo'n url er uit komt te zien voluit getypt.
Gewijzigd op 01/01/1970 01:00:00 door Tom Fischer
voer een DELETE uit om te zien of je kunt hacken.
dit script is een script door de site zelf opgesteld, het is een hack site die je alle bugs leert in een website en die hebben het zo aangepast dat als jij die goede code gebruikt dat je dan ziet "mission completed" en de resultaten worden getoond, dat hebben ze zo gemaakt. Maar ik wil weten hoe je het dus in je url verwerkt.
gr tom
Tom, lees nou mijn post nog eens en ga gewoon wat dingen proberen. Schrijf zelf een kleinscriptje waarin je een gegeven GET variabele echot om te zien hoe een ingevulde waarde eruit komt.
http://www.hackthissite.org/missions/realistic/4/products.php?category=1 or 1=1
dat werkt, maar hoe moet je een select etc. gebruiken?
iemand een voorbeeld? hoe het moet in een url
Let op de ; ertussen
YOU get MY point???
Wanneer jij jouw fiets in de stad niet op slot zet, mag je ook niet klagen wanneer deze na een dagje winkelen is verdwenen. Daar vraag je om en dat is met SQL-injection niet anders. Geen maatregelen getroffen? Ga niet klagen, je vraagt er zelf om.
IK ben zelf geen hacker of cracker.
Maar ik kan mij indenken dat deze mensen een uitdaging nodig hebben om iets te doen.
"Ja, ik heb een server gehackt waar geen firewall op zat"
http://www.hackthissite.org/missions/realistic/4/products.php?category=1
Het is een website die van die lessen aanbiedt zodat je ziet waar beveiligingslekken zitten.
Ik weet dat de db email heet en dat er een tabel email is en een tabel category. Maar hoe kan ik alle emailadressen zien? Er zit express een sql injectiefout in de pagina, en die moet je zien te vinden maar ik wil weten hoe je het moet gebruiken:
http://www.hackthissite.org/missions/realistic/4/products.php?category=1 OR 1=1;SELECT * FROM email
Maar geef je die dan ook weer? want dit werkt niet zoals hierboven
zoiets?
Gewijzigd op 01/01/1970 01:00:00 door Tom Fischer
Probeer het zou ik zeggen.. :)
http://www.hackthissite.org/missions/realistic/4/products.php?category=1 OR 1=1;SELECT * FROM email
Werkt niet.
Maar ik test wel even verder...
Gewijzigd op 01/01/1970 01:00:00 door Tom Fischer
tom schreef op 24.01.2008 10:39:
Zoals ik al zij dit:
http://www.hackthissite.org/missions/realistic/4/products.php?category=1 OR 1=1;SELECT * FROM email
Werkt niet.
http://www.hackthissite.org/missions/realistic/4/products.php?category=1 OR 1=1;SELECT * FROM email
Werkt niet.
Maar dat het niet werkte stond er nog niet toen ik reageerde ;) Vandaar mijn opmerking.. Maar als het niet werkt.. Hmm..
Lees ook dit eens door:
Klik
Klik