🇹🇷 Türkçe
Uyarı
Bu makale yalnızca eğitim amaçlıdır. Sahibi olmadığınız veya test etmek için açık izniniz olmayan herhangi bir sistemde bu saldırıyı denememelisiniz.DoS saldırısının ne olduğuyla başlayalım?
Hizmet Engelleme (DoS) saldırısı, hedef sistem, servis veya ağı aşırı trafik veya kaynak tüketen istekler ile bunaltma yöntemidir.
Amaç, hedefin kapasitesini tüketerek gerçek kullanıcıların servise erişememesini sağlamaktır. DoS saldırıları genellikle sistemde yavaşlamaya veya tamamen erişilemez hale gelmeye neden olmak için istek limitlerini, protokol zayıflıklarını veya uygulama seviyesindeki darboğazları kullanır.Bu makalede sistemi kilitlemek için istek limiti zafiyetini kullanacağız.Test senaryomuz nedir?
Giriş ekranı olan özel bir backend üzerinde DoS saldırısı gerçekleştireceğiz. Sadece DoS saldırısının nasıl yapıldığını göstermek istediğimiz için backend ile Swagger üzerinden iletişim kuracağız.Hangi API endpoint’ine sahibiz bakalım?
Giriş endpoint’inin nickname ve password kabul ettiğini biliyoruz.
Diyelim ki bu servisi kilitlemek ve hiçbir kullanıcının giriş yapamamasını istiyorum.
Saldırıyı Gerçekleştirme
1. Burp Suite’i açmamız ve intercept’i aktif etmemiz gerekiyor.
2. Tarayıcımızı proxy ile Burp Suite’e bağlamamız gerekiyor.
3. İsteği gönderelim ve yakalayalım.

4. Şimdi bu isteği repeater’a göndermemiz gerekiyor.
5. İsteği bir sekme grubuna ekleyin.
6. İsteği çoğaltın. Toplam 20 tane bizim işimizi görür.
7. Gönderim türünü değiştirin.
8. Saldırıyı başlatın.
9. Login endpoint’ini hâlâ kullanabiliyor muyuz bakalım.
10. İşe yaradı, artık diğer kullanıcılar bir süre endpoint’i kullanamıyor ve ben aynı isteği tekrar tekrar göndererek istediğim süre boyunca herkesi engelleyebilirim.Bu saldırının neden çalıştığına bakalım
Backend koduna bakarsak istek sınırlayıcısı olduğunu görebiliriz. Ancak sorun şu ki istek sınırlayıcıda IP gibi herhangi bir filtre yok. Bu nedenle tek bir kullanıcı diğer kullanıcılar için de sistemi kilitleyebiliyor.
Peki… Bu kadar kolay mı?
Elbette hayır.
Kaliteli tüm sistemlerde hataya dayanıklı istek sınırlama kuralları vardır. Çok fazla istek göndermek engellenmenize veya sadece sizi etkileyen bir hizmet engelleme yanıtı almanıza yol açar. Yani reddedilme yalnızca ağınıza uygulanır ve başkalarını etkilemez.English
Disclaimer
This article is for educational purposes only. You should not attempt this attack on any system you do not own or have explicit permission to test.Lets start with what is DoS attack?
A Denial of Service (DoS) attack is a method of overwhelming a target system, service, or network with excessive traffic or resource-consuming requests.
The goal is to exhaust the target’s capacity so that legitimate users cannot access the service. DoS attacks typically exploit rate limits, protocol weaknesses, or application-level bottlenecks to force the system into slowdown or complete unavailability.In this article we will use rate limit vulnerability to lock the system.What is our test case?
We will execute DoS attack on a custom backend that has login. Since we are trying to only showcase how to execute DoS attack we will interact the backend by Swagger.Lets see what we got as api endpoint?
We know that login endpoint accepts nickname and password.
Lets say I want to lock this service so no user can be able to login.
Executing The Attack
1. We need to open our Burp Suite and activate intercept.
2. We need to connect our browser to Burp Suite by proxy.
3. Lets send and catch the request.

4. Now we need to send this request to repeater.
5. Add request to a tab group
6. Duplicate the request. Total of 20 will do for us.
7. Change send type
8. Start the attack
9. Lets see if we can still use login endpoint.
10. It worked, now other users can't use the endpoint for some time and I can just send the same request again and again locking everyone out as long as I want.Lets look at why this attack worked
If we look at the backend code we can see that it has a rate limiter.
But the problem is rate limiter doesn't have any filters like IP.
Because of this one user can lock the system for other users too.
So… Is it that easy?
Of course not.
Since all quality systems have error-proof rate limiting sending a lot of request will only get you banned or affect you meaning that you will get denial of service answer but the denial will be only for your network and won't affect the others.