Bypassear el WAF con Sqlmap

Iniciado por Lonewolf, Octubre 14, 2016, 09:24:35 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Hola en esta entrada vamos a ver como bypassear el WAF (Web Application Firewall) con la herramienta sqlmap y sus tampers .
Que es un Tamper ?
-Un tamper es un script compatible con sqlmap cuya funcion es simplemente camuflar los payloads para asi burlar los sistemas de proteccion de los cortafuegos que traen las bases de datos .

Que tampers tenemos disponibles por defecto en sqlmap ?
-Tenemos una gran cantidad de tampers para burlar distintas soluciones de seguridad . La ubicacion de los tampers es :
En el caso de tenerlo instalado :  /usr/share/sqlmap/tamper
Si lo clonaron desde github es : /sqlmap/tamper

Funcion de los tampers mas utilizados :
space2comment.py = Sustituye un carácter de espacio >>  " ( ' ') ", con inserciones ' / ** /'
charencode.py = Codifica todos los caracteres con numérico   44%20%54%20%
base64encode.py = Convierte todo los caracteres en codificación base64 'MScgQU5EIFNMRUVQKDUpIw=='
randomcomments.py = Añade comentarios al azar mediante búsquedas de palabras MySQL 'I/**/N/**/SERT'
Los invito a averiguar las funciones de los demas tampers por sus propios medios .
Bueno , dicho esto vamos al ataque  ;D ;D ;D
Voy a dar por hecho que sabran lo que es una sqli como explotarlas y mas aun con sqlmap  :-\
Una vez con nuestro sitio vulnerable en pantalla y su tipico error de bases de datos vamos a comenzar con la inyeccion .

Ahora abrimos el terminal y lanzamos el ataque de la siguiente forma : sqlmap -u pagina.php?id=1 --random-agent --tamper=space2comment -v 3 --dbs .
En este caso estamos frente a una db MySql assi que vamos a utilizae el tamper "space2comment" ya que es uno de los tampers mas funcionales en dichas bases de datos .

Muy bien , la herramienta nos confirma que estamos frente a  MySql asi que vamos a proceder con el ataque

Perfecto !!! logramos vulnerar el parametro id esto significa que el tamper ofusco correctamente los payloads . ahora vamos a solicitar las bases de datos .

Bueno esta es una pagina de la biblia asi que creo que es lo mas cerca que podemos estar de "Hackear" a dios ?) jaja
asi concluye el post de hoy , a continuacion se muestran los tampers disponibles y con que database son compatibles  ;)
MySQL
space2randomblank,
unionalltounion
unmagicquotes
versionedkeywords
versionedmorekeywords
xforwardedforbetween
bluecoat
charencode
charunicodeencode
concat2concatws
equaltolike
greatest
halfversionedmorekeywords
ifnull2ifisnull
space2morehash
space2mysqldash
space2plus
modsecurityversioned
modsecurityzeroversioned
multiplespaces
securesphere
space2comment
space2hash
nonrecursivereplacement
percentage
randomcase
MSSQL:
sp_password
space2comment
space2dash
space2mssqlblank
space2mysqldash
space2plus
space2randomblank
charencode
charunicodeencode
equaltolike
greatest
unionalltounion
unmagicquotes
multiplespaces
nonrecursivereplacement
percentage
randomcase
securesphere
MSAccess:
modsecurityversioned
modsecurityzeroversioned
equaltolike
greatest
halfversionedmorekeywords
nonrecursivereplacement
percentage
randomcase
securesphere
between
bluecoat
charencode
charunicodeencode
concat2concatws
space2comment
space2hash
space2morehash
space2mysqldash
space2plus
space2randomblank
unionalltounion
unmagicquotes
versionedkeywords
versionedmorekeywords
ifnull2ifisnull
multiplespaces
PostgreSQL:
xforwardedfor
space2comment
space2plus
space2randomblank
between
charencode
charunicodeencode
equaltolike
greatest
multiplespaces
nonrecursivereplacement
percentage
randomcase
securesphere
between


SQLite:
space2plus
unionalltounion
unmagicquotes
xforwardedfor
ifnull2ifisnull
randomcase
securesphere
space2comment
space2dashmmultiplespaces
nonrecursivereplacement

Conceptos : No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


"Todos tenemos un defecto , un error en nuestro código "

Super útil me lo añado a favoritos.

Desconocía lo de los tampers por completo !! A veces una busca en --help lo que le interesa y se le pasan cosas muy útiles.

Tengo una duda: Si alguien tiene una SQLi típica, estilo id=1' OR '1'='1 y no tiene ningún WAF activado pero usas un tamper, sqlmap será capaz de encontrar la inyección, o al pasar la cadena difente el servidor interpretará mal el parámetro y por tanto no detectará la SQLi?

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Super útil me lo añado a favoritos.

Desconocía lo de los tampers por completo !! A veces una busca en --help lo que le interesa y se le pasan cosas muy útiles.

Tengo una duda: Si alguien tiene una SQLi típica, estilo id=1' OR '1'='1 y no tiene ningún WAF activado pero usas un tamper, sqlmap será capaz de encontrar la inyección, o al pasar la cadena difente el servidor interpretará mal el parámetro y por tanto no detectará la SQLi?
Hola Luciernaga ,  respondiendo tu pregunta sqlmap va a ejecutar correctamente la inyeccion tenga o no waf activado ya que las bases de datos son capazes de interpretar los parametros ofuscados :)
"Todos tenemos un defecto , un error en nuestro código "

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Super útil me lo añado a favoritos.

Desconocía lo de los tampers por completo !! A veces una busca en --help lo que le interesa y se le pasan cosas muy útiles.

Tengo una duda: Si alguien tiene una SQLi típica, estilo id=1' OR '1'='1 y no tiene ningún WAF activado pero usas un tamper, sqlmap será capaz de encontrar la inyección, o al pasar la cadena difente el servidor interpretará mal el parámetro y por tanto no detectará la SQLi?
Hola Luciernaga ,  respondiendo tu pregunta sqlmap va a ejecutar correctamente la inyeccion tenga o no waf activado ya que las bases de datos son capazes de interpretar los parametros ofuscados :)
Gracias majo, luego me pondré a investigar !!

interesante man, aunque deberias probar eso en local porq eso es ilegal