Zoek De Kwetsbaarheid
Na toestemming gekregen te hebben van onze lieve modjes, word hier een nieuw forum-game gestart omtrent programming.Om dit goed te laten verlopen, hier eerst de volledige uitleg over wat de bedoeling is, wat niet de bedoeling is, wat de regels zijn,..
1. De Bedoeling
De bedoeling van het spel is, zoals de titel al zegt, kwetsbaarheden zoeken. Omdat dit topic in het programming forum staat, lijkt het me logisch dat we kwetsbaarheden in programmacode gaan zoeken.Het gaat alsvolgt:
- Ik begin met het plaatsen van een stukje programmacode/code snippet
- Jullie zoeken uit hoe je dat stukje code kan exploiten. Natuurlijk ook uitleggen hoe je het exploit, dat levert een goede leerervaring op voor anderen.
- Degene die het juist raadt plaatst het volgende stukje code.
- Zo gaan we eenvoudig genoeg verder.
- Indien er na 1 week nog niemand de exploit gevonden heeft, mag er een andere persoon een nieuwe snippet plaatsen.
2. Regels & Afspraken
De code snippets- Het is niet de bedoeling dat dit een 'check my code'-topic wordt. Je moet dus reeds zelf weten waar de kwetbaarheid zich bevind en hoe deze te exploiten alvorens een stukje code te plaatsen.
- De rest van de code moet volledig werken. Dit omdat sommigen misschien zelf de code eens willen proberen om de exploit te zoeken + eventuele achterhouding van informatie te vermijden.
- Er mag maar 1 code snippet per keer geplaatst worden, en dit alleen door degene die de vorige kwetbaarheid als eerste gevonden had.
- De kwetsbaarheid moet toe te passen zijn zonder de code zelf aan te passen/reverse engineering/hex editing. Dit zou het maar al te gemakkelijk maken om zelf een bug te maken.
- Elke programmeertaal is toegestaan; zo krijgt iedereen de kans om mee te doen.
- Indien je zelf geen code hebt voor de anderen doe je best niet mee; zo loopt het spel niet vast.
Halve exploits tellen niet. Als je wel weet waar de fout zich bevind, maar niet hoe je deze moet misbruiken telt het antwoord niet.
Zulke dingen houd je dus best voor jezelf, om het de anderen niet te gemakkelijk te maken.
Het enige geldige antwoord is de plaats waar de fout zich bevind + hoe deze te misbruiken.
3. Voorbeeld
Om het een beetje duidelijker te maken voor degenen die het nog niet helemaal snappen; hier een klein (dom) voorbeeldje.Er wordt een code-snippet geplaatst:
PHP:
1
2
3
| <?php header('Location: '.$_POST['url']); ?> |
Voor dit stukje code zou het juiste antwoord zijn:
(Omdat het hier maar 1 regeltje code was; moet er niet expliciet vermeld worden waar de fout zich bevind)
Het is natuurlijk niet slim om met POST een header te maken.. Maar het is ook maar een voorbeeld.quote: userIedereen kan zo zijn eigen Headers toevoegen:
PHP:
1 $_POST="www.url.com\nHeader: Value";
Zo; dat was de uitleg zo een beetje.
Ik hoop natuurlijk dat jullie je hier mee gaan amuseren & eventueel nog dingen uit leert er beveiliging van je code!
Om het topic te starten plaats ik hier dus het eerste stukje code. Het zou een deel kunnen zijn van een bepaalde functie op een forum waar users zichzelf kunnen op aanmelden.
PHP:
1
2
3
4
5
6
7
8
9
| <?php $result = mysql_query('SELECT name FROM players WHERE id=1'); if (!$result) { die('Could not query:' . mysql_error()); } $name = mysql_result($result, 0); mysql_query("UPDATE players SET name='$name (banned)' WHERE name='$name'"); ?> |
Succes & veel plezier met exploiten!
[ Voor 4% gewijzigd door een moderator op 16-05-2008 16:34 . Reden: Ook hier de groetjes weggehaald ;) ]