2FA Bypass Teknikleri

Feqtico

Katılımcı Üye
24 Haz 2020
703
237
/root/
Selamlar. Bugün Sizlerle Bazı 2 Faktörlü Doğrulamayı Bypass Etme Tekniklerini
Konuşacağız.


1 - Yanıt Manipülasyonu (Response Manipulation)


Bu teknikte, 2FA bypass doğrulaması esnasında web sunucusundan gelen response yani yanıt değiştirilmeye çalışılır.
Bu sayede sunucu client tarafta doğrulama gerçekleşmiş gibi davranır. Kişileştirme yapacak olursak, sunucu
"manipüle" edilmiş olur. Örnek bir senaryoyu aşağıda paylaşıyorum.


Kod:
HTTP/1.1 200 OK

Server: Apache

Content-Type:Text/HTML

"success":false/CODE]

Örnek olarak verdiğim web server yanıtında success durumunun "false" olduğunu görüyoruz. Basit bir manipülasyon senaryosunda, bunu 
şu şekilde bypass edebiliriz:

[CODE]HTTP/1.1 200 OK

Server: Apache

Content-Type:Text/HTML

"success" :true

Gördüğünüz gibi sunucunun verdiği yanıtı "true" olarak değiştirdik ve cevabı manipüle etmiş olduk.

2 - Durum Kodu Manipülasyonu (Status Code Manipulation)

Bu teknikte sunucunun verdiği yanıt kodu yani response (örnek: 403, 200, 404 vb.) kodu manipüle etmeye çalışıyoruz. Günümüzde nerdeyse hiç bir
web sunucusu bu tür doğrulama durumlarında farklı kodlar ile cevap vermese de ben size örnek vereceğim.


Kod:
HTTP/1.1 403 FORBIDDEN

Server: Apache

Content-Type:Text/HTML

Gördüğünüz üzere sunucu bize "403" yanıtını verdi yani erişim izni elde edemedik. Fakat şu şekilde durum kodunu manipüle edebiliriz:

Kod:
HTTP/1.1 200 OK

Server: Apache

Content-Type:Text/HTML

Gördüğünüz gibi, status code bulunan kısmı "403" yerine olumlu bir yanıt olan "200 OK" ile değiştirdik. Bu şekilde doğrulamayı
aşmış olduk.


3 - Sunucu Yanıtında 2FA Kodu Sızıntısı (2FA Code Leakage In Server Response)

Bu senaryoda sunucu bize verdiği yanıtta 2 faktörlü doğrulama kodunu sızdırıyor. Bizde yanıt üzerinden kodu elde edip
doğrulamayı aşmış oluyoruz. Örnek:


Kod:
HTTP/1.1 200 OK

Server: Apache

2facode:ABCD1234

Content-Type:Text/HTML

Yanıtta gelen 2FA kod kısmını alıp girdiğimizde, doğrulamayı aşmış olacağız.

4 - Java Script Dosya Analizi (JS File Analysis)

Hepimizin de bildiği gibi çoğu web uygulaması kullanıcılara daha iyi bir deneyim sunmak için tarayıcıda Java Script dosylarını kullanıyor.
Diğer teknikler de olduğu gibi çok nadir olmakla beraber, 2FA kısmında bazı Java Script dosyaları, 2 faktörlü doğrulama kodunu
bulundurabiliyor.


5 - 2FA Kodlarının Yeniden Kullanılabilir Olması (Reusable 2FA Codes)

Bu olguda, gerekli güvenlik önemlerinin alınmadığı web uygulamalarında, (örneğin 2FA kodlarının tek kullanımlık olacak şekilde generate edilmemesi.)
daha önce kullandığımız 2 faktörlü doğrulama kodları kullanıyoruz. Örnek olarak doğrulamasını bypass etmek istediğiniz kullanıcının platformuna üye oldunuz,
kendi hesabınız üzerinden bir 2 faktörlü doğrulama kodu aldınız. Kodu diğer kullanıcının doğrulamasını aşmak için kullanabiliyorsanız; kodlar güvensiz,
yeniden kullanılabilir demektir.


6 - Brute Force Koruması Olmayan Sunucular (Lack Of Brute Force Protection)

Bazı web sunucularınım 2FA bölümünde Brute Force korumaları (örnek olarak IP ban, referer doğrulaması, set olması gereken token ve cookiler vb.) bulunmayabilir.
Bu saldırgana doğrulama kısmına Brute Force yani kaba kuvvet saldırısı yapma imkanı tanır. Saldırgan kendi alacağı doğrulama kodu ile istediği uzunlukta potansiyel
2 faktörlü doğrulama kodları içeren bir wordlist oluşturup bypass etmeyi deneyebilir.


7 - 2FA Devre Dışı Bırakırken CSRF (CSRF On 2FA Disabling)

CSRF (Cross-site request forgery) web uygulamalarında sık karşılaştığımız bir açıktır ve 2 faktörlü doğrulamayı bypass etmek için
kullanılabilir. Örnek bir senaryoyu aşağıya bırakıyorum:


Kod:
HTTP/1.1 200 OK

Server: Apache

ornek.com/ayarlar.php?id=disable2fa&=true

Content-Type:Text/HTML


Gördüğünüz gibi normal bir kullanıcı 2FA devre dışı bırakırken sunucuya böyle bir istek gidiyor. Farz edelim, saldırgan bu isteği aldı, Burp Suite üzerinden
bir CSRF PoC oluşturdu (İsteği manipüle edip sunucuya gönderen HTML dosyası.) ve kullanıcıya tıklattı. Eğer konu olan web uygulamasının Anti-CSRF tokenleri doğru
yapılandırılmamış ise, kullanıcının 2FA özelliği saldırgan tarafından devre dışı bırakılabilir.


8 - "null" Veya "000000" İle Bypass (Bypassing With "null" Or "000000")

Bazı web uygulamalarında sunucunun gelen yanıtları yanlış işlemesi veya veri tabanından gelen yanıtlarda anormallik olması sebebiyle
2 faktörlü doğrulama "null", "000000" veya benzeri girdiler ile bypass edilebilmektedir.




9wooqb1.png











 
Selamlar. Bugün Sizlerle Bazı 2 Faktörlü Doğrulamayı Bypass Etme Tekniklerini
Konuşacağız.


1 - Yanıt Manipülasyonu (Response Manipulation)


Bu teknikte, 2FA bypass doğrulaması esnasında web sunucusundan gelen response yani yanıt değiştirilmeye çalışılır.
Bu sayede sunucu client tarafta doğrulama gerçekleşmiş gibi davranır. Kişileştirme yapacak olursak, sunucu
"manipüle" edilmiş olur. Örnek bir senaryoyu aşağıda paylaşıyorum.


Kod:
HTTP/1.1 200 OK

Server: Apache

Content-Type:Text/HTML

"success":false/CODE]

Örnek olarak verdiğim web server yanıtında success durumunun "false" olduğunu görüyoruz. Basit bir manipülasyon senaryosunda, bunu
şu şekilde bypass edebiliriz:

[CODE]HTTP/1.1 200 OK

Server: Apache

Content-Type:Text/HTML

"success" :true

Gördüğünüz gibi sunucunun verdiği yanıtı "true" olarak değiştirdik ve cevabı manipüle etmiş olduk.

2 - Durum Kodu Manipülasyonu (Status Code Manipulation)

Bu teknikte sunucunun verdiği yanıt kodu yani response (örnek: 403, 200, 404 vb.) kodu manipüle etmeye çalışıyoruz. Günümüzde nerdeyse hiç bir
web sunucusu bu tür doğrulama durumlarında farklı kodlar ile cevap vermese de ben size örnek vereceğim.


Kod:
HTTP/1.1 403 FORBIDDEN

Server: Apache

Content-Type:Text/HTML

Gördüğünüz üzere sunucu bize "403" yanıtını verdi yani erişim izni elde edemedik. Fakat şu şekilde durum kodunu manipüle edebiliriz:

Kod:
HTTP/1.1 200 OK

Server: Apache

Content-Type:Text/HTML

Gördüğünüz gibi, status code bulunan kısmı "403" yerine olumlu bir yanıt olan "200 OK" ile değiştirdik. Bu şekilde doğrulamayı
aşmış olduk.


3 - Sunucu Yanıtında 2FA Kodu Sızıntısı (2FA Code Leakage In Server Response)

Bu senaryoda sunucu bize verdiği yanıtta 2 faktörlü doğrulama kodunu sızdırıyor. Bizde yanıt üzerinden kodu elde edip
doğrulamayı aşmış oluyoruz. Örnek:


Kod:
HTTP/1.1 200 OK

Server: Apache

2facode:ABCD1234

Content-Type:Text/HTML

Yanıtta gelen 2FA kod kısmını alıp girdiğimizde, doğrulamayı aşmış olacağız.

4 - Java Script Dosya Analizi (JS File Analysis)

Hepimizin de bildiği gibi çoğu web uygulaması kullanıcılara daha iyi bir deneyim sunmak için tarayıcıda Java Script dosylarını kullanıyor.
Diğer teknikler de olduğu gibi çok nadir olmakla beraber, 2FA kısmında bazı Java Script dosyaları, 2 faktörlü doğrulama kodunu
bulundurabiliyor.


5 - 2FA Kodlarının Yeniden Kullanılabilir Olması (Reusable 2FA Codes)

Bu olguda, gerekli güvenlik önemlerinin alınmadığı web uygulamalarında, (örneğin 2FA kodlarının tek kullanımlık olacak şekilde generate edilmemesi.)
daha önce kullandığımız 2 faktörlü doğrulama kodları kullanıyoruz. Örnek olarak doğrulamasını bypass etmek istediğiniz kullanıcının platformuna üye oldunuz,
kendi hesabınız üzerinden bir 2 faktörlü doğrulama kodu aldınız. Kodu diğer kullanıcının doğrulamasını aşmak için kullanabiliyorsanız; kodlar güvensiz,
yeniden kullanılabilir demektir.


6 - Brute Force Koruması Olmayan Sunucular (Lack Of Brute Force Protection)

Bazı web sunucularınım 2FA bölümünde Brute Force korumaları (örnek olarak IP ban, referer doğrulaması, set olması gereken token ve cookiler vb.) bulunmayabilir.
Bu saldırgana doğrulama kısmına Brute Force yani kaba kuvvet saldırısı yapma imkanı tanır. Saldırgan kendi alacağı doğrulama kodu ile istediği uzunlukta potansiyel
2 faktörlü doğrulama kodları içeren bir wordlist oluşturup bypass etmeyi deneyebilir.


7 - 2FA Devre Dışı Bırakırken CSRF (CSRF On 2FA Disabling)

CSRF (Cross-site request forgery) web uygulamalarında sık karşılaştığımız bir açıktır ve 2 faktörlü doğrulamayı bypass etmek için
kullanılabilir. Örnek bir senaryoyu aşağıya bırakıyorum:


Kod:
HTTP/1.1 200 OK

Server: Apache

ornek.com/ayarlar.php?id=disable2fa&=true

Content-Type:Text/HTML


Gördüğünüz gibi normal bir kullanıcı 2FA devre dışı bırakırken sunucuya böyle bir istek gidiyor. Farz edelim, saldırgan bu isteği aldı, Burp Suite üzerinden
bir CSRF PoC oluşturdu (İsteği manipüle edip sunucuya gönderen HTML dosyası.) ve kullanıcıya tıklattı. Eğer konu olan web uygulamasının Anti-CSRF tokenleri doğru
yapılandırılmamış ise, kullanıcının 2FA özelliği saldırgan tarafından devre dışı bırakılabilir.


8 - "null" Veya "000000" İle Bypass (Bypassing With "null" Or "000000")

Bazı web uygulamalarında sunucunun gelen yanıtları yanlış işlemesi veya veri tabanından gelen yanıtlarda anormallik olması sebebiyle
2 faktörlü doğrulama "null", "000000" veya benzeri girdiler ile bypass edilebilmektedir.




9wooqb1.png











Eline sağlık
 

AY0BRA

Üye
26 Mar 2022
64
1
Selamlar. Bugün Sizlerle Bazı 2 Faktörlü Doğrulamayı Bypass Etme Tekniklerini
Konuşacağız.


1 - Yanıt Manipülasyonu (Response Manipulation)


Bu teknikte, 2FA bypass doğrulaması esnasında web sunucusundan gelen response yani yanıt değiştirilmeye çalışılır.
Bu sayede sunucu client tarafta doğrulama gerçekleşmiş gibi davranır. Kişileştirme yapacak olursak, sunucu
"manipüle" edilmiş olur. Örnek bir senaryoyu aşağıda paylaşıyorum.


Kod:
HTTP/1.1 200 OK

Server: Apache

Content-Type:Text/HTML

"success":false/CODE]

Örnek olarak verdiğim web server yanıtında success durumunun "false" olduğunu görüyoruz. Basit bir manipülasyon senaryosunda, bunu
şu şekilde bypass edebiliriz:

[CODE]HTTP/1.1 200 OK

Server: Apache

Content-Type:Text/HTML

"success" :true

Gördüğünüz gibi sunucunun verdiği yanıtı "true" olarak değiştirdik ve cevabı manipüle etmiş olduk.

2 - Durum Kodu Manipülasyonu (Status Code Manipulation)

Bu teknikte sunucunun verdiği yanıt kodu yani response (örnek: 403, 200, 404 vb.) kodu manipüle etmeye çalışıyoruz. Günümüzde nerdeyse hiç bir
web sunucusu bu tür doğrulama durumlarında farklı kodlar ile cevap vermese de ben size örnek vereceğim.


Kod:
HTTP/1.1 403 FORBIDDEN

Server: Apache

Content-Type:Text/HTML

Gördüğünüz üzere sunucu bize "403" yanıtını verdi yani erişim izni elde edemedik. Fakat şu şekilde durum kodunu manipüle edebiliriz:

Kod:
HTTP/1.1 200 OK

Server: Apache

Content-Type:Text/HTML

Gördüğünüz gibi, status code bulunan kısmı "403" yerine olumlu bir yanıt olan "200 OK" ile değiştirdik. Bu şekilde doğrulamayı
aşmış olduk.


3 - Sunucu Yanıtında 2FA Kodu Sızıntısı (2FA Code Leakage In Server Response)

Bu senaryoda sunucu bize verdiği yanıtta 2 faktörlü doğrulama kodunu sızdırıyor. Bizde yanıt üzerinden kodu elde edip
doğrulamayı aşmış oluyoruz. Örnek:


Kod:
HTTP/1.1 200 OK

Server: Apache

2facode:ABCD1234

Content-Type:Text/HTML

Yanıtta gelen 2FA kod kısmını alıp girdiğimizde, doğrulamayı aşmış olacağız.

4 - Java Script Dosya Analizi (JS File Analysis)

Hepimizin de bildiği gibi çoğu web uygulaması kullanıcılara daha iyi bir deneyim sunmak için tarayıcıda Java Script dosylarını kullanıyor.
Diğer teknikler de olduğu gibi çok nadir olmakla beraber, 2FA kısmında bazı Java Script dosyaları, 2 faktörlü doğrulama kodunu
bulundurabiliyor.


5 - 2FA Kodlarının Yeniden Kullanılabilir Olması (Reusable 2FA Codes)

Bu olguda, gerekli güvenlik önemlerinin alınmadığı web uygulamalarında, (örneğin 2FA kodlarının tek kullanımlık olacak şekilde generate edilmemesi.)
daha önce kullandığımız 2 faktörlü doğrulama kodları kullanıyoruz. Örnek olarak doğrulamasını bypass etmek istediğiniz kullanıcının platformuna üye oldunuz,
kendi hesabınız üzerinden bir 2 faktörlü doğrulama kodu aldınız. Kodu diğer kullanıcının doğrulamasını aşmak için kullanabiliyorsanız; kodlar güvensiz,
yeniden kullanılabilir demektir.


6 - Brute Force Koruması Olmayan Sunucular (Lack Of Brute Force Protection)

Bazı web sunucularınım 2FA bölümünde Brute Force korumaları (örnek olarak IP ban, referer doğrulaması, set olması gereken token ve cookiler vb.) bulunmayabilir.
Bu saldırgana doğrulama kısmına Brute Force yani kaba kuvvet saldırısı yapma imkanı tanır. Saldırgan kendi alacağı doğrulama kodu ile istediği uzunlukta potansiyel
2 faktörlü doğrulama kodları içeren bir wordlist oluşturup bypass etmeyi deneyebilir.


7 - 2FA Devre Dışı Bırakırken CSRF (CSRF On 2FA Disabling)

CSRF (Cross-site request forgery) web uygulamalarında sık karşılaştığımız bir açıktır ve 2 faktörlü doğrulamayı bypass etmek için
kullanılabilir. Örnek bir senaryoyu aşağıya bırakıyorum:


Kod:
HTTP/1.1 200 OK

Server: Apache

ornek.com/ayarlar.php?id=disable2fa&=true

Content-Type:Text/HTML


Gördüğünüz gibi normal bir kullanıcı 2FA devre dışı bırakırken sunucuya böyle bir istek gidiyor. Farz edelim, saldırgan bu isteği aldı, Burp Suite üzerinden
bir CSRF PoC oluşturdu (İsteği manipüle edip sunucuya gönderen HTML dosyası.) ve kullanıcıya tıklattı. Eğer konu olan web uygulamasının Anti-CSRF tokenleri doğru
yapılandırılmamış ise, kullanıcının 2FA özelliği saldırgan tarafından devre dışı bırakılabilir.


8 - "null" Veya "000000" İle Bypass (Bypassing With "null" Or "000000")

Bazı web uygulamalarında sunucunun gelen yanıtları yanlış işlemesi veya veri tabanından gelen yanıtlarda anormallik olması sebebiyle
2 faktörlü doğrulama "null", "000000" veya benzeri girdiler ile bypass edilebilmektedir.




9wooqb1.png











ELLERİNİZE SAĞLIK HOCAM
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.