Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En esta práctica se resolverá el reto #3 del SANS Holliday Hack Challenge 2018
con ayuda de la herramienta Burp Suite.
● VirtualBox 6.0.4.
https://www.virtualbox.org/wiki/Downloads
● Kali Linux 2019.1a.
https://www.kali.org/downloads/
● Burp Suite Community Edition v1.7.36
https://portswigger.net/burp/communitydownload
A. Burp Suite
Es una plataforma integrada por diversas herramientas que permite evaluar la
seguridad de una aplicación web desarrollada por la empresa PortSwigger, la cual
cuenta versión gratuita y de paga, a continuación, se muestran las versiones
disponibles:
La versión gratuita (Comunitaria) cuenta con herramientas esenciales para realizar
un Pentesting de forma manual.
● Burp Proxy: permite interceptar de forma manual todas las solicitudes y
respuestas entre el navegador y la aplicación de destino, incluso cuando se
usa HTTPS, generando un certificado de CA único que puede instalar en su
navegador. Además, permite modificar automáticamente las respuestas.
Por ejemplo, mostrar formularios ocultos, eliminar validación de formularios
de JavaScript.
● Burp Target tool: El mapa del sitio de destino muestra todo el contenido
que se ha descubierto en los sitios que se están probando.
Para resolver este reto debes obtener el código que protege la puerta de acceso
de la sala de preparación para expositores del KringleCon e ingresar el mensaje
que se muestra al expositor.
Por lo cual se puede suponer que se trata de una petición a alguna base de datos,
para verificar es necesario analizar el código fuente de la página.
Analizando la primera parte del código se puede apreciar el posible valor para
cada una de las figuras.
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=Mountains+of+Christmas" rel="stylesheet">
<link href="doorpasscode.css" rel="stylesheet" type="text/css">
<script src='./conduit.js'></script>
</head>
<body>
<div>
<h1>Enter the Code to Unlock the Door</h1>
</div>
<br>
<div class="button_wrapper">
<div class="shape-buttons">
<button onClick="addShape(0)" />
<button onClick="addShape(1)" />
<button onClick="addShape(2)" />
<button onClick="addShape(3)" />
</div>
</div>
Triangulo = 0
Cuadro = 1
Circulo = 2
Estrella = 3
Además, al mandar la petición a la base de datos, se realiza por XMLHttpRequest
que es utilizada por AJAX lo que permite que la página completa no se recargue al
realizar una petición en este caso por el método GET a la página “checkpass.php”.
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
try {
const parsedResponse = JSON.parse(statusElement.innerHTML=xmlhttp.responseText);
statusElement.innerHTML = parsedResponse.message;
if (parsedResponse.success) {
__POST_RESULTS__({
hash: parsedResponse.hash,
resourceId: parsedResponse.resourceId,
});
document.getElementById('banner').style.visibility='visible';
}
} catch(err) {
console.error(err);
}
}
}
xmlhttp.open("GET","checkpass.php?i=" + passcodeString + "&resourceId=" + resourceId, true);
xmlhttp.send();
}
La otra forma de solucionar este reto es obteniendo el código correcto, para eso
se utilizará la herramienta Burp Suite.
http://burp
Para agregarlo se debe ingresar en el menu Preferencias->Privacy and
Security->View Certificates
https://doorpasscoden.kringlecastle.com/checkpass.php?i=0123&resourceId=undefined
Triangulo = 0
Cuadro = 1
Circulo = 2
Triangulo = 0
Por último, se ingresa el mensaje en la respuesta del reto #3 para constatar
nuestros hallazgos.