elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  FILTRO AntiBATCH Injections 3.0
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: FILTRO AntiBATCH Injections 3.0  (Leído 6,314 veces)
carlitos.dll

Desconectado Desconectado

Mensajes: 266



Ver Perfil
FILTRO AntiBATCH Injections 2.0
« Respuesta #10 en: 7 Agosto 2008, 10:51 am »

La versión 1.0 tiene un bug. El comando find es externo find.exe

Por eso si dentro de la misma carpeta donde tenga este filtro.bat coloco un archivo llamado FIND.BAT
con el siguiente contenido:
Código:
Código:

@echo off
echo hack | find.exe "crack" >NUL


cuando hago esto:
Código:

for %%a in ("|" "&" "^" ">" "<" "'" "." ";" "," " " "/" "\" "+" "-" "~" "!" ")" "(" "]" "[" "}" "{") do (
set pass|find %%a >NUL && goto warning)

la salida de set pass se la paso a find
cmd.exe encuentra a find.bat que imprime hack y la salida de esa palabra se la da a find.exe buscando la palabra "crack" y como esa palabra no está en la palabra hack retorna que no se encuentra.

Entonces si abro el filtro.bat e ingreso:
}] (cls ) else rem

hago la inyección, pues find (find.bat que llama a find.exe siempre retorna que no hay nada malo) :D

Dejo la última versión correjida:
Código:
@echo off

::FILTRO ANTI-BATCH-INJECTIONS 3.0
::BY CARLITOS.DLL

set findstr="%WinDir%\system32\findstr.exe"
set find="%WinDir%\system32\find.exe"

:Login
set pass=
set /p pass=Enter password:
if not defined pass (goto Login)

set pass | %find% """" >NUL 2>&1 && goto warning
rem identificamos las comillas

set pass | %find% " " >NUL 2>&1 && goto warning
rem identificamos los espacios

set pass | %findstr% "| & ^ > < # ' ` . ; , / \  + - ~ ! ) ( ] [ } { : ? *" >NUL 2>&1 && goto warning
rem identificamos una serie de caracteres

echo %pass% | find "=" >NUL 2>&1 && goto warning
rem identificamos el caracter =

if not [{entrar}]==[{%pass%}] (goto Login) 2>NUL
if "%errorlevel%"=="9009" (goto warning)

echo Password correcta

pause
goto :eof

:warning
echo Posible intento de batch injection
goto Login


« Última modificación: 4 Abril 2009, 10:07 am por Leo Gutierrez. » En línea

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: FILTRO AntiBATCH Injections 2.0
« Respuesta #11 en: 7 Agosto 2008, 14:44 pm »

:¬¬

set WinDir = %homepath%


En línea

carlitos.dll

Desconectado Desconectado

Mensajes: 266



Ver Perfil
Re: FILTRO AntiBATCH Injections 2.5
« Respuesta #12 en: 7 Agosto 2008, 22:08 pm »

Modifiqué nuevamente el código, pues findstr se mareaba con las comillas, ahora quedó super bien. Sirdarckcat entendí el mensaje, pero pienso que esto es lo que más yo puedo hacer utilizando el propio batch. Vi tu filtro, y está muy bueno, l ovi con un editor hexadecimal y parece sacado de algún comando del dos.

En línea

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: FILTRO AntiBATCH Injections 2.5
« Respuesta #13 en: 7 Agosto 2008, 22:21 pm »

Pues es igual a lo que decias a que si find.(exe|bat|cmd) está en la misma carpeta.

Más bién yo diria que esto sobra..
set pass | %findstr% /i "if else goto call echo rem shift start set doskey pause cmd command find exit" >NUL 2>&1 && goto warning

que tal que el password que se pone es shift, o algo..
En línea

carlitos.dll

Desconectado Desconectado

Mensajes: 266



Ver Perfil
Re: FILTRO AntiBATCH Injections 3.0
« Respuesta #14 en: 7 Agosto 2008, 22:39 pm »

Listo, ahora si que quedó casi perfecto, gracias por el comentario sirdarckcat, tenías razón.
Esto podría obviarse:
set findstr="%WinDir%\system32\findstr.exe"

y en vez de %find% escribir find.exe siempre que se ejecute este bat desde el directorio de windows\system32.
« Última modificación: 7 Agosto 2008, 22:45 pm por carlitos.dll » En línea

wizard_0

Desconectado Desconectado

Mensajes: 11


THe magic


Ver Perfil
Re: FILTRO AntiBATCH Injections 3.0
« Respuesta #15 en: 8 Agosto 2008, 07:34 am »

Hola  "carlitos.dll" , kisiera  q m expliques   esta  part del  code..  veo   ksi  en  todo  tus  crackme..  q   usas   el   2>nul  ?¿?¿  q  significa?? hasta   con  la  condicional  "IF"  lo  utilizas...  q   obtienes  con  eso?¿  hace  alguna  diferencia  si  no  lo  colocas ??¿


Código:

set pass | %find% """" >NUL 2>&1 && goto warning

if not [{_]==[{%pass%}] (echo>NUL) 2>NUL

Espero   aclares  mi  duda..

salu2-->
En línea

carlitos.dll

Desconectado Desconectado

Mensajes: 266



Ver Perfil
Re: FILTRO AntiBATCH Injections 3.0
« Respuesta #16 en: 8 Agosto 2008, 07:39 am »

>NUL 2>&1

Redirigo la salida del programa que por defecto es CON a NUL y cualquier error y mensaje de error a NUL

Aquí sale:
http://www.ss64.com/ntsyntax/redirection.html

command  >nul 2>&1         Redirect error and information messages to NUL

Puede que en algunos casos esté demás, pero con tal de evitar cualquier mensaje no deseado :D

Acabo de corregir un error en el post correspondiente.


&& es realizar el comando solo si el anterior fue exitoso, es decir si encontró el carácter que busco en la variable, irá a etiqueta warning

|| es lo contrario de && es decir hacer si el comando falla.

Ejemplo:

ver | find /i "XP" && echo es XP || ver | find /i "Vista" && echo es Vista || echo es Otro

el | es redireccionar la salida de un programa a otro programa.
« Última modificación: 8 Agosto 2008, 23:42 pm por carlitos.dll » En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Escanner de sql injections
Bugs y Exploits
ireg 0 2,425 Último mensaje 27 Junio 2013, 20:01 pm
por ireg
Ataque SQLMAP INJECTIONS
Hacking
DroidZnet 0 701 Último mensaje 5 Mayo 2018, 08:04 am
por DroidZnet
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines