[KoCak] Client Side DoS

web

Yo wasap, akhirnya gw bisa nulis blog lagi setelah sekian lama ga ada ide mau nulis apa.

Dan pada tulisan gw ini, gw bakal bawa kalian di sesi KoCak alias Konsep aCak. Sesi KoCak ini berisi konsep-konsep, teori, dan juga ide asal-asalan gw yang dituangkan pada tulisan di blog ini. Sehingga mungkin akan ada pengertian yang salah, ngawur dan edan.

Dan sesuai judulnya, teori yang gw tulis ini adalah sebuah bug / vulnerability Client Side DoS (Sebenernya gw juga ga yakin ini namanya apa, cuma yang kepikiran ini wkwk, jadi maafin kalo salah).

Nah, pada intinya Client Side DoS ini membuat user / victim tidak dapat mengakses sebuah resource pada website target.
Lalu bagaimana skenario attack yang dapat dilakukan? Kita dapat menggabungkan beberapa konsep berikut, sehingga tersusun sebuah complete puzzle yang bisa digunakan sebagai attack skenario.

WAF (Web Application Firewall) #

WAF Dikutip dari indonesiancloud.com WAF adalah sebuah firewall yang memonitor, filter, dan memblok data yang berasal dari client ke sebuah website atau aplikasi web.
Yup benar! Memblok data. Jika kalian tau, ada beberapa vendor WAF menyediakan fitur untuk memblokir IP address dalam kurun waktu tertentu jika IP address tersebut terindikasi melakukan attack kepada server.

Rate Limiting #

Rate Limit Dikutip dari cloudflare.com Rate Limiting adalah startegi untuk membatasi network traffic. Rate limiting ini membatasi seberapa seringnya user mengulangi action dalam kurun waktu tertentu. Gunanya adalah untuk menghentikan malicious activity seperti bot, DoS, DDoS, Bruteforce dan Web Scrapping.
Seperti pada sebelumnya, beberapa vendor Rate limiting ini menyediakan fitur / rules untuk memblokir IP address dalam kurun waktu tertentu, jika IP address tersebut terindikasi melakukan request yang berulang secara cepat atau dapat dikatakan Bruteforce attack.

Nah dari dua konsep diatas kita dapat menyimpulkan, user dapat diblokir jika terindikasi melakukan sebuah attack. Inilah yang dapat kita manfaatkan untuk melakukan Client Side DoS attack tersebut, sehingga IP user diblokir dan user tidak bisa membuka website target.

Lalu pertanyaan selanjutnya, bagaimana caranya attacker memaksa user untuk melakukan attack?

CSRF Attack (Cross-Site Request Forgery) #

CSRF Dikutip dari binus.ac.id Cross-Site Request Forgery, dikenal juga dengan one click attack atau session riding disingkat dengan CSRF atau XSRF, merupakan bentuk eksploitasi website yang dieksekusi atas wewenang korban, tanpa dikehendakinya.
MANTAB! Sekarang kita dapat memaksa user untuk melakukan attack ke website target menggunakan CSRF Attack ini.

Attack Scenario #

Attack Scenario

  1. Attacker membuat sebuah Page CSRF sesuai attack yang ingin dilakukan, apakah WAF atau Rate Limiting (Sesuaikan dengan target)
  2. Attacker mengirimkan Page CSRF tersebut ke victim.
  3. Disaat victim membuka Page tersebut, Javascript tersebut di eksekusi dan mulai mengirimkan malicious request ke target.com
  4. Saat user membuka target.com, akses akan ditolak karena IP address user telah di block.

Lab #

Lab ini hanya ilustrasi belaka ya teman-teman, WAF dan Rate limitingnya di implementnya pake PHP XD. Labnya dapat di download pada repository github ini. Dan untuk CSRF Page HTML nya ada pada folder csrf, file csrf_waf.html dan csrf_ratelimit.html.

WAF yang diimplement pada Lab diatas dapat mendeteksi beberapa malicious string pada input. Jika terdeteksi adanya malicious string, WAF akan memblokir IP user sehingga user tidak dapat mengakses website itu lagi.
Sedangkan Rate Limiting yang diimplement adalah membatasi request sebanyak 30 kali dalam kurun waktu 2 menit. Jika Rate Limit tersebut ter-trigger, IP user akan di block, sehingga user tidak dapat mengakses website itu lagi.

PoC CSRF WAF PoC WAF

PoC CSRF Rate Limit PoC Ratelimit

Mengapa itu bisa terjadi? Sebenarnya saat user / victim membuka website yang diberikan attacker, user juga mengirimkan malicious request kepada website target pada background. Sehingga IP Address dari user terindikasi melakukan attack yang membuat IP user diblokir dan user tidak dapat mengakses website itu lagi.

Fetch WAF

Malicious Request yang men-trigger WAF

Fetch Ratelimit

Request berulang yang men-trigger Ratelimit

Mungkin segitu aja tulisan gw untuk kali ini dan ternyata perlu effort yang lebih untuk nulis sesi KoCak ini :’).
Semoga kalian terinsiprasi dari tulisan pada blog gw ini, mohon maaf kalo ada konsep, kata dan penulisan yang salah. See u on the next blog

Thank you!!