??CRITICALOWASP #3

?? Injection

Inyección de código malicioso en aplicaciones. Incluye SQL Injection, NoSQL Injection, Command Injection, LDAP Injection y XSS. Un clásico que sigue sióndo devastadoramente efectivo.

94%
Apps Testeadas
#3
Ranking OWASP
274k
Ocurrencias
?

�Qué es?

Injection ocurre cuando datos no confiables son enviados a un int�rprete como parte de un comando o consulta. El aéééticante puede hacer que el int�rprete ejecute comandos no intenciónados o acceda a datos sin autorización.

  • SQL Injection: Manipulación de consultas SQL
  • Command Injection: Ejecución de comandos del sistema
  • LDAP Injection: Manipulación de consultas LDAP
  • XPath Injection: Manipulación de consultas XML
  • NoSQL Injection: Ataques a bases de datos NoSQL
??

SQL Injection (�ético)

??Solo para propósitos educativos

Practica únicamente en entornos autorizados como labs de seguridad.

Detección Básica

Payloads de Detección ? Test
# En campos de login/búsqueda
'                    # Error de sintaxis?
' OR '1'='1          # Bypass de login
' OR 1=1--           # Comentar resto de query
' UNION SELECT null-- # Determinar columnas

Extracción de Datos

SQL ? UNION Attack
-- Determinar número de columnas
' ORDER BY 1--
' ORDER BY 2--
' ORDER BY 3--  -- Error = 2 columnas

-- Extraer versión de DB
' UNION SELECT null,@@versión--

-- Listar tablas (MySQL)
' UNION SELECT table_name,null FROM information_schema.tables--

Código Seguro

JavaScript (Node.js) ? Parametrizado
// ? VULNERABLE - Concatenación
const query = `SELECT * FROM users WHERE id = ${userId}`;

// ? SEGURO - Consultas parametrizadas
const query = 'SELECT * FROM users WHERE id = ?';
db.query(query, [userId]);
???

Command Injection

Payloads ? Vulnerable
# Encadenamiento de comandos
; id
| whoami
`id`
$(whoami)

# Ejemplo: ping vulnerable
127.0.0.1; cat /etc/passwd
127.0.0.1 | ls -la
Python ? Seguro
# ? VULNERABLE
os.system(f"ping {user_input}")

# ? SEGURO - usar arrays, no shell
subprocess.run(["ping", "-c", "4", validated_ip], 
              shell=False, 
              capture_output=True)
??

Labs Pr�céticos