Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: @XSStringManolo en 22 Febrero 2020, 23:02 pm



Título: Obtener url de una respuesta? XHR
Publicado por: @XSStringManolo en 22 Febrero 2020, 23:02 pm
Hice un programa para enviar peticiones en base a un diccionario y obtener las respuestas.

Hago por ejemplo 950 peticiones en 1 segundo:
google.com/
google.com/admin
google.com/about
google.com/login
....

Recibo las respuestas, pero no sé a que petición corresponde cada petición.
Con xhr.responseUrl me retorna siempre undefined.
Mirando las cabeceras de respuesta no saco ninguna útil, solo el dominio tls sin directorio.
Si analizo la respuesta, no en todas queda claro de que ruta proceden.

Mi objetivo es listar todos los directorios con respuesta 200, pero no lo consigo.


Código
  1. function Leer() {
  2.  
  3. /* for (var i =0; i < dominios.length; ++i)
  4.     alert */
  5. req.url = dominios[0].value;
  6. alert("Url a buscar\n" + req.url);
  7. HacerPeticiones();
  8. /*  for (i =0; i < diccionarios.length; ++i)
  9.     alert (diccionarios[i].value);
  10. */
  11. }
  12.  
  13. function ObtenerDiccionario() {
  14.  
  15. req.url = "https://raw.githubusercontent.com/xmendez/wfuzz/master/wordlist/general/common.txt";
  16. alert("Obteniendo diccionario de\n" + req.url);
  17. HacerPeticiones(1);
  18.  
  19. }
  20.  
  21.  
  22. function HacerPeticiones(retornar) {
  23.  req.method = "GET";
  24.  req.statusCode = 200;
  25.  request(req);
  26.  
  27.  function request(obj) {
  28.    var url = "https://cors-anywhere.herokuapp.com/" + obj.url;
  29.    var xhr = new XMLHttpRequest();
  30.    xhr.open(obj.method, url, true);
  31.    xhr.onreadystatechange = function() {
  32. alert(xhr.responseUrl);
  33.      if (xhr.readyState == 4) {
  34.        alert(xhr.status);
  35.        if (xhr.status == obj.statusCode) {
  36.          if (retornar) {
  37.            dictUrls = xhr.responseText;
  38.            alert("Obtenidas las siguientes palabras del diccionario\n" + dictUrls);
  39.            dictUrls = dictUrls.replace(/(\r\n|\n|\r)/gm, " ");
  40.            alert("Eliminados los espacios de las palabras del diccionario\n" + dictUrls);
  41.            dictUrls = dictUrls.split(" ");
  42.            alert("Obteniendo las palabras en un contendor\n" + dictUrls);
  43.            Leer();
  44.          }
  45.          else {
  46.          /*  urlFound */
  47.        /*    alert("Urls válida\n" + xhr.responseText); */
  48.            alert(xhr.getAllResponseHeaders());
  49.            masiveReq();
  50.          }
  51.        }
  52.      }
  53.    }
  54.  xhr.send();
  55.  }
  56. }
  57.  
  58. function masiveReq() {
  59.  while(!dictUrls.length) {
  60.  
  61.   }
  62.  
  63.    alert("Realizando " + dictUrls.length + " peticiones");
  64.      var baseUrl = dominios[0].value + "/";
  65.  
  66.    for (var i = 0; i < dictUrls.length; ++i) {
  67.      req.url = baseUrl + dictUrls[i];
  68.      /*alert("Haciendo petición a\n" + req.url);*/
  69.      HacerPeticiones();
  70.        if (i == (dictUrls.length-1))
  71.          alert("Realizando última petición");
  72.  
  73.  }
  74. alert(urlFound);
  75. }



Título: Re: Obtener url de una respuesta? XHR
Publicado por: #!drvy en 22 Febrero 2020, 23:18 pm
Citar
Con xhr.responseUrl me retorna siempre undefined.
Código
  1. alert(xhr.responseUrl);


Es responseURL con URL mayusculas. Deberia funcionarte en todos menos en IE.

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseURL

Saludos


Título: Re: Obtener url de una respuesta? XHR
Publicado por: @XSStringManolo en 22 Febrero 2020, 23:42 pm

Es responseURL con URL mayusculas. Deberia funcionarte en todos menos en IE.

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseURL

Saludos
Lo probé en SamsungB y Chrome y nada de nada. Si con responseUrl ni con responseURL.