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.
		
		
		
		
		
			
		
			
				
					
					
						
							82 lines
						
					
					
						
							3.7 KiB
						
					
					
				
			
		
		
	
	
							82 lines
						
					
					
						
							3.7 KiB
						
					
					
				| {% extends 'base.html' %} {% block content %}
 | |
| 
 | |
| <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>
 | |
| 
 | |
| {% endblock %} |