You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
3.6 KiB
78 lines
3.6 KiB
<h1>Insecure Direct Object References</h1>
|
|
|
|
<img src="/static/img/imgr.png">
|
|
|
|
<h2>Image site</h2>
|
|
|
|
<p>Ons nieuwe doelwit is de site "imgr", een populaire website waar vaak meme plaatjes naar worden geüpload. Er is geen database
|
|
dus we kunnen geen SQL injection uitvoeren, en cross-site scripting is ook geen mogelijkheid meer op deze site (...toch?).</p>
|
|
|
|
<p>We zijn geïnteresseerd in de inhoud van een bestandje wat staat in de VM: "/etc/geheim.txt". Hack de website en vind uit
|
|
wat de inhoud van dit bestandje is.</p>
|
|
|
|
<p class="hint">
|
|
<strong>Hint:</strong> het lijkt er op dat je niet alleen plaatjes kan uploaden...</p>
|
|
|
|
<p class="hint">
|
|
<strong>Hint:</strong> Zoek een manier om een eigen php script te uploaden en te runnen</p>
|
|
|
|
<div class="question">
|
|
<span class="question-string">Wat staat er in /etc/geheim.txt? (Het is een supersecret TODO item)</span>
|
|
</div>
|
|
|
|
|
|
|
|
<h2>Image 2</h2>
|
|
<p>Ga naar "Image 2". De site heeft het probleem opgelost door de upload map te verplaatsen naar een map die niet via de webserver
|
|
bereikbaar is. De plaatjes worden nu via een speciaal image.php (
|
|
<a href="https://git.paulwagener.nl/Paul/Security-VM/src/image/image.php">source</a>) bestandje geinclude. Daarmee heeft de site ook weer een enorm security probleem geïntroduceerd! </p>
|
|
|
|
<p class="hint">Met een paar extra
|
|
<code>../</code> kan je file_get_contents() een hele hoop bestanden laten uitlezen!</p>
|
|
|
|
<div class="question">
|
|
<span class="question-string">Met welke URL kan je nu rechtstreeks de inhoud van /etc/geheim.txt uitlezen?</span>
|
|
</div>
|
|
|
|
<p>Verander image.php in image_check_prefix.php (
|
|
<a href="https://git.paulwagener.nl/Paul/Security-VM/src/master/image/image_check_prefix.php">source</a>) . In dit bestand is een extra beveiliging die checkt of het pad begint met de map 'uploads'</p>
|
|
|
|
<div class="question">
|
|
<span class="question-string">Met welke URL kan je met dit meer 'beveiligde' script de inhoud van /etc/geheim.txt uitlezen?</span>
|
|
</div>
|
|
|
|
<p>Verander de bestandsnaam in image_remove_traversal.php (
|
|
<a href="https://git.paulwagener.nl/Paul/Security-VM/src/master/image/image_remove_traversal.php">source</a>) , dit script heeft nu een beveiliging die alle '../' uit de string verwijderd zodat je niet meer ../ in de
|
|
URL kan gebruiken.</p>
|
|
|
|
<p class="hint">
|
|
<strong>Hint:</strong> Weet je nog hoe je deze beveiliging ongedaan hebt gemaakt bij die website die alle SELECT en UNION uit de
|
|
URL filterde?</p>
|
|
|
|
<div class="question">
|
|
<span class="question-string">Met welke URL kan je via het image_remove_traversal.php script de inhoud van /etc/geheim.txt uitlezen?</span>
|
|
</div>
|
|
|
|
<p>Zoek op internet naar 'Directory traversal' en zoek uit wat voor technieken er nog meer mogelijk zijn.</p>
|
|
|
|
<div class="question">
|
|
<span class="question-string">Beschrijf hoe jij de site zou programmeren zodat alle directory traversal aanvallen niet meer mogelijk zijn.</span>
|
|
</div>
|
|
|
|
<img src="/static/img/parent_dir.png" class="center-block">
|
|
|
|
<h2>Image 3</h2>
|
|
|
|
<p>Ga naar "Image 3". imgr heeft hun site uitgebreid met extra pagina's (
|
|
<a href="https://git.paulwagener.nl/Paul/Security-VM/src/image/index_more_pages.php">source</a>). De afbeeldingen hebben ze maar weggehaald omdat daar teveel security problemen mee waren.</p>
|
|
|
|
<p class="hint">
|
|
<strong>Hint:</strong> imgr zijn bezig met het maken van een inlogpagina en een registreren pagina.</p>
|
|
|
|
<p class="hint">
|
|
<strong>Hint:</strong> Heb je de broncode al bekeken? Die regel met
|
|
<code>include()</code> ziet er interessant uit...</p>
|
|
|
|
<div class="question">
|
|
<span class="question-string">Beschrijf hoe je met deze site de inhoud van /etc/geheim.txt kan achterhalen</span>
|
|
</div> |