elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
14 Febrero 2012, 10:50  


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  Bug en CMD.EXE, comando FOR, parametro /F
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Bug en CMD.EXE, comando FOR, parametro /F  (Leído 3,925 veces)
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 2.940


/^$/


Ver Perfil WWW
Bug en CMD.EXE, comando FOR, parametro /F
« en: 3 Julio 2009, 03:30 »

Bug en comando FOR, parametro /f, opcion "USEBACKQ"

Este bug esta relacionado con el trato de cadenas.

La documentación sobre dicha opción dice:
        
Código:
usebackq        - especifica que la nueva semántica está vigente,
                          donde una cadena entre comillas inversas se ejecuta
                          como un comando y una cadena con comillas simples
                          es un comando de cadena literal y permite el uso de
                          comillas dobles para entrecomillar los nombres de
                          archivo en un grupo de nombres de archivos.
Es decir, cambia la semantica:
Código:
'' : Comandos
"" : Cadenas
No especificar comillas dobles o simples : Archivo.
Nos dice que para procesar cadenas, debemos usar comillas simples:

Código
@echo off
for /f "tokens=1 usebackq" %%_ in ('Leonardo') do (
echo %%_
)
Salida:
Código:
Leonardo

Como pueden ver, usamos comillas simples para tratar cadenas.

Sin la opción "usebackq" sería asi:
Código
@echo off
for /f "tokens=1" %%_ in ("Leonardo") do (
echo %%_
)
Salida:
Código:
Leonardo

Ahora, iré directo al problema que afecta a las opciones "useback" y "usebackq":

Esto produce un error:
Código
@echo off
for /f "tokens=1 usebackq" %%_ in ('1 2 3 4 5 6 7 8 10 11 12') do (
echo %%_
)
Salida:

Código:
C:\>code.bat
1
El sistema no puede encontrar el archivo Ɛ§㏀§럀§풘§>♂.

C:\>

Como ven, provoca un error, ya que busca un archivo, pero es claro que no estoy trabajando con archivos, sino con cadenas.

Estos también provocan error:

Código
@echo off
for /f "tokens=1 useback delims=" %%_ in ('p1 p2 p3 p4 p5 p6 p7 p8 p9') do (
echo %%_
)
Salida:
Código:

p1 p2 p3 p4 p5 p6 p7 p8 p9
El sistema no puede encontrar el archivo ?.

Código
@echo off
for /f "tokens=1-20 useback delims=_" %%a in ('p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14') do (
echo %%a  
)
Salida:
Código:
p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14
☼?♀\.stema no puede encontrar el archivo ?¶

En fin, esto esta probado en un Windows XP Professional Service Pack 3

Si me pudieran hacer el favor de probar si en otros sistemas falla, sino les da error, solo alteren la cantidad de tokens en el conjunto, asi:

Código
@echo off
for /f "tokens=1-20 usebackq" %%a in ('1 2 3 4 5 6 7 8 9 11 12 13 14 16 especificar ms tokens en caso de no ver error') do (
echo %%a  
)

Bueno, saludos.
En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
Azielito
no es
CoAdmin
***
Desconectado Desconectado

Mensajes: 9.085


>.<


Ver Perfil WWW
Re: Bug en CMD.EXE, comando FOR, parametro /F
« Respuesta #1 en: 3 Julio 2009, 18:43 »

Código
azi@azielito:ver
 
Microsoft Windows XP [Versión 5.1.2600]
 
azi@azielito:type test.bat
@echo off
for /f "tokens=1-20 usebackq" %%a in ('1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 4
4 45 46 47 48 49 50') do (
echo %%a
)
 
azi@azielito:test.bat
1
El sistema no puede encontrar el archivo &#9824;&°§&#9827;'.
 
azi@azielito:test.bat
1
El sistema no puede encontrar el archivo ?&&#9827;' .
 
azi@azielito:test.bat
1
El sistema no puede encontrar el archivo &#8596;&&#8735;'`§?§?§.
 
azi@azielito:

ñ_ñ
cada vez que lo ejecutas te dice diferente nombre de archivo xD


Mira el ultimo que me dio
Código
azi@azielito:test.bat
1
El sistema no puede encontrar el archivo &#8616;&&#9644;'0§?§?§ram Files\Common Files\Tele
ca Shared.
 
azi@azielito:
:-|
En línea
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 2.940


/^$/


Ver Perfil WWW
Re: Bug en CMD.EXE, comando FOR, parametro /F
« Respuesta #2 en: 3 Julio 2009, 19:10 »

Ya me han confirmado que también se da en Windows XP Sp2.
@Azielito, ¿en que sistema lo probaste?
En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
YST


Desconectado Desconectado

Mensajes: 963


I'm you


Ver Perfil WWW
Re: Bug en CMD.EXE, comando FOR, parametro /F
« Respuesta #3 en: 3 Julio 2009, 19:24 »

En win7 no anda
En línea



Yo le enseñe a Kayser a usar objetos en ASM
Azielito
no es
CoAdmin
***
Desconectado Desconectado

Mensajes: 9.085


>.<


Ver Perfil WWW
Re: Bug en CMD.EXE, comando FOR, parametro /F
« Respuesta #4 en: 3 Julio 2009, 20:12 »

WinXP con SP3 y todo "al dia"
En línea
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 2.940


/^$/


Ver Perfil WWW
Re: Bug en CMD.EXE, comando FOR, parametro /F
« Respuesta #5 en: 4 Julio 2009, 07:22 »

En win7 no anda

Por favor, pruebalo asi:

Código:
@echo off
for /f "tokens=1-20 usebackq" %%a in ('1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 4
4 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66') do (
echo %%a
)


Saludos.
En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
YST


Desconectado Desconectado

Mensajes: 963


I'm you


Ver Perfil WWW
Re: Bug en CMD.EXE, comando FOR, parametro /F
« Respuesta #6 en: 4 Julio 2009, 07:27 »

Tampoco da error solamente imprime un "1" :P .
En línea



Yo le enseñe a Kayser a usar objetos en ASM
Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 2.940


/^$/


Ver Perfil WWW
Re: Bug en CMD.EXE, comando FOR, parametro /F
« Respuesta #7 en: 4 Julio 2009, 07:28 »

Gracias, entonces el error no esta en Windows 7, no tengo un Windows Vista para corroborarlo   :-(
En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
Grave

Desconectado Desconectado

Mensajes: 295


|\|0\/\/ 15 7|-|3 71/\/\3


Ver Perfil WWW
Re: Bug en CMD.EXE, comando FOR, parametro /F
« Respuesta #8 en: 16 Julio 2009, 06:20 »

Gracias, entonces el error no esta en Windows 7, no tengo un Windows Vista para corroborarlo   :-(
como en el 7, el vista solo imprime un 1
En línea

"y el conocimiento os hara libres"

Module Console1
   Console.Write("Hello Word")
   Console.ReadLine()
End Module
http://aion.cr0n0triger.operaunite.com/
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.946


Lavando Platos


Ver Perfil WWW
Re: Bug en CMD.EXE, comando FOR, parametro /F
« Respuesta #9 en: 19 Octubre 2009, 07:18 »

como ya te dijeron, no funciona en 7 ni en windows vista

Código
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
 
C:\Users\sdc>copy con: test.bat
@echo off
for /f "tokens=1 usebackq" %%_ in ('1 2 3 4 5 6 7 8 10 11 12') do (
echo %%_
)
^Z
1 file(s) copied.
 
C:\Users\sdc>test.bat
1

en xp funciona, si lo llamas desde un bat como dice azielito, sale diferente string cada que lo ejecutas, si lo ejecutas directo desde cmd, sale siempre la misma..

definitivamente es un bug, no se que tan explotable, o peligroso porque ya puedes leer la memoria de cmd con
Código
(echo d&echo q)|debug

es interesante.. no se que tan util sea en seguridad pero.. interesante

cabe mencionar que solo con '1 2' no funciona, pero con '1 2 3' y para arriba si..

Saludos!!
En línea

Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 2.940


/^$/


Ver Perfil WWW
Re: Bug en CMD.EXE, comando FOR, parametro /F
« Respuesta #10 en: 19 Octubre 2009, 07:21 »

Es evidente que es un bug, pero, ¿qué procede?

¿Ahora qué hago?, ¿lo reporto o así que se quede?
En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.946


Lavando Platos


Ver Perfil WWW
Re: Bug en CMD.EXE, comando FOR, parametro /F
« Respuesta #11 en: 19 Octubre 2009, 07:29 »

si quieres reportalo!
http://connect.microsoft.com/
En línea

Leo Gutiérrez.
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 2.940


/^$/


Ver Perfil WWW
Re: Bug en CMD.EXE, comando FOR, parametro /F
« Respuesta #12 en: 19 Octubre 2009, 07:31 »

Bien, gracias, ¿lo tengo que traducir a inglés?
En línea

Código
(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}
 

leorocko13@hotmail.com
https://github.com/leogtzr/
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.946


Lavando Platos


Ver Perfil WWW
Re: Bug en CMD.EXE, comando FOR, parametro /F
« Respuesta #13 en: 19 Octubre 2009, 07:43 »

parece ser que si.... pero pues, si no sabes ingles ponlo en espa;ol y la traduccion de google translate, a fin de cuentas no es tu responsabilidad
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problemas metodo con parametro (solucionado) era sin parametro XD
Java
RuB'n. 6 1,407 Último mensaje 25 Noviembre 2010, 16:45
por Afsoon
C++ vector por parametro.
Programación C/C++
programador10 7 636 Último mensaje 10 Octubre 2011, 23:06
por Eternal Idol
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines