Translated ['src/pentesting-web/account-takeover.md'] to it

This commit is contained in:
Translator 2025-04-20 14:57:41 +00:00
parent d736975663
commit 837fab3a7b
2 changed files with 61 additions and 11 deletions

View File

@ -16,7 +16,7 @@ Come spiegato in [**questo intervento**](https://www.youtube.com/watch?v=CiIyaZ3
- Creare un account nel fornitore di identità di terze parti con un'email simile a quella della vittima utilizzando qualche carattere unicode (`vićtim@company.com`). - Creare un account nel fornitore di identità di terze parti con un'email simile a quella della vittima utilizzando qualche carattere unicode (`vićtim@company.com`).
- Il fornitore di terze parti non dovrebbe verificare l'email. - Il fornitore di terze parti non dovrebbe verificare l'email.
- Se il fornitore di identità verifica l'email, forse puoi attaccare la parte di dominio come: `victim@ćompany.com` e registrare quel dominio e sperare che il fornitore di identità generi la versione ascii del dominio mentre la piattaforma della vittima normalizza il nome del dominio. - Se il fornitore di identità verifica l'email, forse puoi attaccare la parte del dominio come: `victim@ćompany.com` e registrare quel dominio e sperare che il fornitore di identità generi la versione ascii del dominio mentre la piattaforma della vittima normalizza il nome del dominio.
- Accedi tramite questo fornitore di identità nella piattaforma della vittima che dovrebbe normalizzare il carattere unicode e permetterti di accedere all'account della vittima. - Accedi tramite questo fornitore di identità nella piattaforma della vittima che dovrebbe normalizzare il carattere unicode e permetterti di accedere all'account della vittima.
Per ulteriori dettagli, fare riferimento al documento sulla Normalizzazione Unicode: Per ulteriori dettagli, fare riferimento al documento sulla Normalizzazione Unicode:

View File

@ -471,17 +471,67 @@ window.search = window.search || {};
showResults(true); showResults(true);
} }
var branch = lang === "en" ? "master" : lang (async function loadSearchIndex(lang = window.lang || 'en') {
fetch(`https://raw.githubusercontent.com/HackTricks-wiki/hacktricks/refs/heads/${branch}/searchindex.json`) /* ───────── paths ───────── */
.then(response => response.json()) const branch = lang === 'en' ? 'master' : lang;
.then(json => init(json)) const baseRemote = `https://raw.githubusercontent.com/HackTricks-wiki/hacktricks/${branch}`;
.catch(error => { // Try to load searchindex.js if fetch failed const remoteJson = `${baseRemote}/searchindex.json`;
var script = document.createElement('script'); const remoteJs = `${baseRemote}/searchindex.js`;
script.src = `https://raw.githubusercontent.com/HackTricks-wiki/hacktricks/refs/heads/${branch}/searchindex.js`; const localJson = './searchindex.json';
script.onload = () => init(window.search); const localJs = './searchindex.js';
document.head.appendChild(script); const TIMEOUT_MS = 5_000;
/* ───────── helpers ───────── */
const fetchWithTimeout = (url, opt = {}) =>
Promise.race([
fetch(url, opt),
new Promise((_, r) => setTimeout(() => r(new Error('timeout')), TIMEOUT_MS))
]);
const loadScript = src =>
new Promise((resolve, reject) => {
const s = document.createElement('script');
s.src = src;
s.onload = resolve;
s.onerror = reject;
document.head.appendChild(s);
}); });
/* ───────── 1. remote JSON ───────── */
try {
const r = await fetchWithTimeout(remoteJson);
if (!r.ok) throw new Error(r.status);
return init(await r.json());
} catch (e) {
console.warn('Remote JSON failed →', e);
}
/* ───────── 2. remote JS ───────── */
try {
await loadScript(remoteJs);
return init(window.search);
} catch (e) {
console.warn('Remote JS failed →', e);
}
/* ───────── 3. local JSON ───────── */
try {
const r = await fetch(localJson);
if (!r.ok) throw new Error(r.status);
return init(await r.json());
} catch (e) {
console.warn('Local JSON failed →', e);
}
/* ───────── 4. local JS ───────── */
try {
await loadScript(localJs);
return init(window.search);
} catch (e) {
console.error('Local JS failed →', e);
}
})();
// Exported functions // Exported functions
search.hasFocus = hasFocus; search.hasFocus = hasFocus;
})(window.search); })(window.search);