Obtener url de una respuesta? XHR

Iniciado por @XSStringManolo, 22 Febrero 2020, 23:02 PM

0 Miembros y 1 Visitante están viendo este tema.

@XSStringManolo

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 (javascript) [Seleccionar]
function Leer() {

/* for (var i =0; i < dominios.length; ++i)
    alert */
req.url = dominios[0].value;
alert("Url a buscar\n" + req.url);
HacerPeticiones();
/*  for (i =0; i < diccionarios.length; ++i)
    alert (diccionarios[i].value);
*/
}

function ObtenerDiccionario() {

req.url = "https://raw.githubusercontent.com/xmendez/wfuzz/master/wordlist/general/common.txt";
alert("Obteniendo diccionario de\n" + req.url);
HacerPeticiones(1);

}


function HacerPeticiones(retornar) {
  req.method = "GET";
  req.statusCode = 200;
  request(req);

  function request(obj) {
    var url = "https://cors-anywhere.herokuapp.com/" + obj.url;
    var xhr = new XMLHttpRequest();
    xhr.open(obj.method, url, true);
    xhr.onreadystatechange = function() {
alert(xhr.responseUrl);
      if (xhr.readyState == 4) {
        alert(xhr.status);
        if (xhr.status == obj.statusCode) {
          if (retornar) {
            dictUrls = xhr.responseText;
            alert("Obtenidas las siguientes palabras del diccionario\n" + dictUrls);
            dictUrls = dictUrls.replace(/(\r\n|\n|\r)/gm, " ");
            alert("Eliminados los espacios de las palabras del diccionario\n" + dictUrls);
            dictUrls = dictUrls.split(" ");
            alert("Obteniendo las palabras en un contendor\n" + dictUrls);
            Leer();
          }
          else {
          /*  urlFound */
        /*    alert("Urls válida\n" + xhr.responseText); */
            alert(xhr.getAllResponseHeaders());
            masiveReq();
          }
        }
      }
    }
  xhr.send();
  }
}

function masiveReq() {
  while(!dictUrls.length) {
   
   }
   
    alert("Realizando " + dictUrls.length + " peticiones");
      var baseUrl = dominios[0].value + "/";
 
    for (var i = 0; i < dictUrls.length; ++i) {
      req.url = baseUrl + dictUrls[i];
      /*alert("Haciendo petición a\n" + req.url);*/
      HacerPeticiones();
        if (i == (dictUrls.length-1))
          alert("Realizando última petición");
   
  }
alert(urlFound);
}



#!drvy

CitarCon xhr.responseUrl me retorna siempre undefined.
Código (javascript) [Seleccionar]
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

@XSStringManolo

Cita de: #!drvy en 22 Febrero 2020, 23:18 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.