Come reindirizzare qualsiasi risposta a una posizione arbitraria nell'editor di richieste di OWASP ZAP?

0

Sto cercando di trovare XSS memorizzato in un'applicazione. Fortunatamente, l'applicazione mi consente di inserire e modificare la descrizione di me stesso che viene visualizzata a chiunque visiti il mio profilo.

Il luogo in cui modifico la mia descrizione: link

Pagina in cui viene visualizzata la descrizione modificata: link

Venendo al mio problema, come posso configurare l'editor delle richieste di zap in modo tale che quando invio una richiesta nel link , viene visualizzata la risposta per link ?

NOTA: una possibile cosa che ho pensato era includere Location: http://example/edit_dec?content=test come intestazione di ogni risposta, ma non ho trovato il modo di farlo in Request editor .

    
posta Then008 20.07.2018 - 18:25
fonte

1 risposta

1

modifica: soluzione di lavoro sotto!

Vorrei esaminare la creazione di uno script di regole proxy per verificare la chiamata al percorso URL e quindi effettuare una chiamata al percorso "risposta".

Esempi: link

Ecco il modello di esempio per gli script proxy: link e la documentazione corrispondente per l'oggetto HTTPMessage che dovresti gestire: link

soluzione semplice

Non lavoro con javascript (principalmente un pitone), ma vediamo se possiamo lavorare su uno script di base:

Ecco il modello di script proxy JS di esempio collegato sopra:

/**
 * This function allows interaction with proxy responses (i.e.: 
inbound from the server to the browser/client).
 * 
 * @param msg - the HTTP response being proxied. This is an HttpMessage object.
 */
function proxyResponse(msg) {
// Debugging can be done using print like this
    print('proxyResponse called for url=' + 
msg.getRequestHeader().getURI().toString())
    return true
}

Quindi, se vogliamo andare da qualche altra parte, possiamo provare un 307 (reindirizzamento temporaneo) in questo modo:

function proxyRequest(msg) {
return true
}

function proxyResponse(msg){
    print(msg.getRequestHeader().getURI().toString());
    if (msg.getRequestHeader().getURI().toString().contains("edit_desc?content=")) {
        print("Found the URL!");
        var uri = msg.getRequestHeader().getURI().toString()
        var username = uri.match(/content=(.*)/)[1];
        var redirUrl = "http://example.com/"+username;
        msg.getResponseHeader().setStatusCode(307);
        msg.getResponseHeader().setHeader("Location", redirUrl)
    return true;
    }
}

Se lo lanci in un nuovo script proxy (se hai problemi con esso non permettendoti di creare un nuovo script, duplicarne un altro e rimpiazzare tutto), abilitarlo e voilà, reindirizza qualsiasi richiesta con 'edit_desc?content='user a 'http://example.com/user' dopo invio della richiesta al server.

script in azione

script abilitato:

richiestanellastoria:

visualizzazionerisposta:

statodelbrowser:

    
risposta data 20.07.2018 - 21:52
fonte

Leggi altre domande sui tag