Un ricercatore ha recentemente segnalato un problema in un sito sull'uso dello script su un sito di terze parti per scoprire se un utente è un amministratore.
Ecco lo scenario:
- Il sito principale è target.example
- Il sito dell'attacker è evil.example
- target.example ha SSL e HSTS e reindirizza tutto il traffico http a https utilizzando un reindirizzamento 301
- il cookie di sessione su target.example è httponly e "sicuro"
- evil.example ha javascript che carica javascript src da target.example / admin / utility e usa successo / errore di caricamento che la pagina html può eseguire attack javascript
Esempio di javascript che potrebbe essere su evil.example:
<script type="text/javascript"
src="https://www.target.example/admin/utility"onload="alert('Hello, Admin')"
onerror="alert('Ok, you are not the admin')"
async="async"
></script>
Questa tecnica sfrutta il fatto che il sito restituisce un 403 anziché un 200 nelle pagine di amministrazione. Il suggerimento era di restituire un errore 200 nelle pagine di amministrazione per gli utenti che avevano effettuato il logout invece di restituire l'errore 403.
Il rischio presentato restituendo un 403 o 404 è che l'attaccante invierà solo attacchi per gli utenti che conoscono come amministratori. Ciò consentirebbe all'utente di eseguire l'impronta digitale del sito o tentare di sfruttarlo e l'unico "rumore" nei log sarebbe superiore al normale numero di errori 403 nel log degli errori che potrebbe non generare sospetti tanto quanto altri tipi di attività potrebbero. / p>
La domanda: In realtà aggiunge benefici pratici alla sicurezza per restituire un 200? È una cosa che fanno molti siti?