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`).
|
- 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.
|
- Üçü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.
|
- 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, bu platform unicode karakterini normalize etmeli ve kurban hesabına erişmenize izin vermelidir.
|
- 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:
|
Daha fazla ayrıntı için Unicode Normalizasyonu belgesine bakın:
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ cors-bypass.md
|
|||||||
|
|
||||||
## **CSRF ile Hesap Ele Geçirme**
|
## **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}}
|
{{#ref}}
|
||||||
csrf-cross-site-request-forgery.md
|
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/
|
hacking-with-cookies/
|
||||||
{{#endref}}
|
{{#endref}}
|
||||||
|
|
||||||
## **Şifre Sıfırlama Mekanizmasına Saldırma**
|
## **Şifre Sıfırlama Mekanizmasına Saldırı**
|
||||||
|
|
||||||
{{#ref}}
|
{{#ref}}
|
||||||
reset-password.md
|
reset-password.md
|
||||||
@ -75,7 +75,7 @@ reset-password.md
|
|||||||
|
|
||||||
## **Yanıt Manipülasyonu**
|
## **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
|
## 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.
|
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.
|
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.
|
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
|
## 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.
|
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):
|
[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
|
### 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 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.
|
- 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
|
### 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ü.\
|
[**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şturulsa da eski çerezler tekrar çalışmaya başladı.
|
Yeni girişle, farklı çerezler oluşturulmuş olsa da, eski çerezler tekrar çalışmaya başladı.
|
||||||
|
|
||||||
## Referanslar
|
## Referanslar
|
||||||
|
|
||||||
|
@ -471,16 +471,66 @@ 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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user