mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/pentesting-web/account-takeover.md'] to tr
This commit is contained in:
parent
ff23b8fd10
commit
f0f222e730
@ -16,8 +16,8 @@ Bir hesabın e-posta adresinin değiştirilmesi denenmeli ve onay süreci **ince
|
||||
|
||||
- Kurbanın e-posta adresine benzer bir e-posta ile üçüncü taraf kimlik sağlayıcısında bir hesap oluşturun, bazı unicode karakterleri kullanarak (`vićtim@company.com`).
|
||||
- Üçüncü taraf sağlayıcı e-postayı doğrulamamalıdır.
|
||||
- Eğer kimlik sağlayıcı e-postayı doğruluyorsa, belki de `victim@ćompany.com` gibi alan kısmına saldırabilir ve o alanı kaydedip kimlik sağlayıcının alanın ascii versiyonunu oluşturmasını umabilirsiniz, kurban platformu alan adını normalize ederken.
|
||||
- Bu kimlik sağlayıcı aracılığıyla kurban platformuna giriş yapın, bu platform unicode karakterini normalize etmeli ve kurban hesabına erişmenize izin vermelidir.
|
||||
- Eğer kimlik sağlayıcı e-postayı doğruluyorsa, belki de alan kısmını saldırıya uğratabilirsiniz: `victim@ćompany.com` ve o alanı kaydedip kimlik sağlayıcının alanın ascii versiyonunu oluşturmasını umabilirsiniz, kurban platformu alan adını normalize ederken.
|
||||
- Bu kimlik sağlayıcı aracılığıyla kurban platformuna giriş yapın, kimlik sağlayıcı unicode karakterini normalize etmeli ve kurban hesabına erişmenize izin vermelidir.
|
||||
|
||||
Daha fazla ayrıntı için Unicode Normalizasyonu belgesine bakın:
|
||||
|
||||
@ -45,7 +45,7 @@ cors-bypass.md
|
||||
|
||||
## **CSRF ile Hesap Ele Geçirme**
|
||||
|
||||
Sayfa CSRF'ye karşı savunmasızsa, **kullanıcının şifresini**, e-posta adresini veya kimlik doğrulamasını değiştirmesini sağlayabilir ve böylece erişim sağlayabilirsiniz:
|
||||
Sayfa CSRF'ye karşı savunmasızsa, **kullanıcının şifresini**, e-posta adresini veya kimlik doğrulamasını değiştirmesini sağlayabilir ve ardından buna erişebilirsiniz:
|
||||
|
||||
{{#ref}}
|
||||
csrf-cross-site-request-forgery.md
|
||||
@ -67,7 +67,7 @@ Sınırlı bir XSS veya bir alt alan ele geçirme bulursanız, çerezlerle oynam
|
||||
hacking-with-cookies/
|
||||
{{#endref}}
|
||||
|
||||
## **Şifre Sıfırlama Mekanizmasına Saldırma**
|
||||
## **Şifre Sıfırlama Mekanizmasına Saldırı**
|
||||
|
||||
{{#ref}}
|
||||
reset-password.md
|
||||
@ -75,7 +75,7 @@ reset-password.md
|
||||
|
||||
## **Yanıt Manipülasyonu**
|
||||
|
||||
Eğer kimlik doğrulama yanıtı **basit bir boolean'a indirgenebiliyorsa, false'u true olarak değiştirmeyi deneyin** ve erişim elde edip edemediğinizi görün.
|
||||
Eğer kimlik doğrulama yanıtı **basit bir boolean'a indirgenebiliyorsa, false'u true olarak değiştirmeyi deneyin** ve herhangi bir erişim elde edip edemediğinizi görün.
|
||||
|
||||
## OAuth ile Hesap Ele Geçirme
|
||||
|
||||
@ -88,7 +88,7 @@ oauth-to-account-takeover.md
|
||||
1. Şifre sıfırlama isteği başlatıldıktan sonra Host başlığı değiştirilir.
|
||||
2. `X-Forwarded-For` proxy başlığı `attacker.com` olarak değiştirilir.
|
||||
3. Host, Referrer ve Origin başlıkları aynı anda `attacker.com` olarak değiştirilir.
|
||||
4. Şifre sıfırlama başlatıldıktan sonra, e-postayı yeniden göndermeyi seçerek, yukarıda belirtilen üç yöntem de kullanılır.
|
||||
4. Şifre sıfırlama başlatıldıktan sonra, e-postayı yeniden göndermeyi seçerken, yukarıda belirtilen üç yöntem de kullanılır.
|
||||
|
||||
## Yanıt Manipülasyonu
|
||||
|
||||
@ -99,7 +99,7 @@ oauth-to-account-takeover.md
|
||||
|
||||
Bu manipülasyon teknikleri, JSON'un veri iletimi ve alımı için kullanıldığı senaryolarda etkilidir.
|
||||
|
||||
## Mevcut oturumun e-posta adresini değiştirme
|
||||
## Mevcut Oturumun E-posta Adresini Değiştirme
|
||||
|
||||
[bu rapordan](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea):
|
||||
|
||||
@ -113,13 +113,13 @@ Bu, [**bu raporda**](https://dynnyd20.medium.com/one-click-account-take-over-e50
|
||||
|
||||
### Hesap Ele Geçirme için E-posta Doğrulamasını Atlatma
|
||||
- Saldırgan attacker@test.com ile giriş yapar ve kaydolduğunda e-postayı doğrular.
|
||||
- Saldırgan doğrulanan e-postayı victim@test.com olarak değiştirir (e-posta değişikliği için ikinci bir doğrulama yok).
|
||||
- Saldırgan doğrulanmış e-postayı victim@test.com olarak değiştirir (e-posta değişikliği için ikinci bir doğrulama yoktur).
|
||||
- Artık web sitesi victim@test.com ile giriş yapmaya izin verir ve kurban kullanıcının e-posta doğrulamasını atlatmış oluruz.
|
||||
|
||||
### Eski Çerezler
|
||||
|
||||
[**bu yazıda**](https://medium.com/@niraj1mahajan/uncovering-the-hidden-vulnerability-how-i-found-an-authentication-bypass-on-shopifys-exchange-cc2729ea31a9) açıklandığı gibi, bir hesaba giriş yapmak, çerezleri kimlik doğrulaması yapılmış bir kullanıcı olarak kaydetmek, çıkış yapmak ve sonra tekrar giriş yapmak mümkündü.\
|
||||
Yeni girişle, farklı çerezler oluşturulsa da eski çerezler tekrar çalışmaya başladı.
|
||||
[**bu yazıda**](https://medium.com/@niraj1mahajan/uncovering-the-hidden-vulnerability-how-i-found-an-authentication-bypass-on-shopifys-exchange-cc2729ea31a9) açıklandığı gibi, bir hesaba giriş yapmak, çerezleri kimlik doğrulaması yapılmış bir kullanıcı olarak kaydetmek, çıkış yapmak ve ardından tekrar giriş yapmak mümkündü.\
|
||||
Yeni girişle, farklı çerezler oluşturulmuş olsa da, eski çerezler tekrar çalışmaya başladı.
|
||||
|
||||
## Referanslar
|
||||
|
||||
|
@ -471,16 +471,66 @@ window.search = window.search || {};
|
||||
showResults(true);
|
||||
}
|
||||
|
||||
var branch = lang === "en" ? "master" : lang
|
||||
fetch(`https://raw.githubusercontent.com/HackTricks-wiki/hacktricks/refs/heads/${branch}/searchindex.json`)
|
||||
.then(response => response.json())
|
||||
.then(json => init(json))
|
||||
.catch(error => { // Try to load searchindex.js if fetch failed
|
||||
var script = document.createElement('script');
|
||||
script.src = `https://raw.githubusercontent.com/HackTricks-wiki/hacktricks/refs/heads/${branch}/searchindex.js`;
|
||||
script.onload = () => init(window.search);
|
||||
document.head.appendChild(script);
|
||||
});
|
||||
(async function loadSearchIndex(lang = window.lang || 'en') {
|
||||
/* ───────── paths ───────── */
|
||||
const branch = lang === 'en' ? 'master' : lang;
|
||||
const baseRemote = `https://raw.githubusercontent.com/HackTricks-wiki/hacktricks/${branch}`;
|
||||
const remoteJson = `${baseRemote}/searchindex.json`;
|
||||
const remoteJs = `${baseRemote}/searchindex.js`;
|
||||
const localJson = './searchindex.json';
|
||||
const localJs = './searchindex.js';
|
||||
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
|
||||
search.hasFocus = hasFocus;
|
||||
|
Loading…
x
Reference in New Issue
Block a user