Sabtu, 27 April 2019

Memburu Bug CRLF Injection: Apa itu CRLF Injection?


CRLF Injection

Artikel ini dibuat karena cerita lucu saya setelah mendapatkan 1 Point di BugCrowd (Won't Fix), karena coba-coba mereport celah CRLF Injection pada salah satu subdomain soundcloud.com.

Mungkin celah CRLF Injection ini sangat tidak penting karena suatu hal yang lumrah, seperti memasukan karakter pada umumnya namun sedikit berbeda.

Penjelasan tentang CRLF

CRLF memiliki kepanjangan dari Carriage Return (\r) dan Line Feed (\n) yaitu sebuah karakter yang digunakan untuk menuliskan sebuah garis baru/newline. CRLF Injection adalah sebuah serangan injeksi yang dapat memasukan garis baru pada sebuah konten di-website.

Ini cerita saya tentang coba-coba untuk berburu point BugCrowd menggunakan celah CRLF Injection.
Saya mencoba untuk Search pada subdomain soundcloud.com, menggunakan query:
hello%22world
%22 adalah HTML Encoding dari " (kutip dua), namun tidak terefleksikan menjadi kutip dua karena adanya filter. Kutip dua sendiri sering digunakan untuk mengecek website tersebut rentan XSS atau tidak. Untuk mengetahui karakter HTML Url Encoding lainnya kalian dapat kunjungi link berikut ini: http://krypted.com/utilities/html-encoding-reference/.

Ok, lalu saya mencoba menggunakan query:
hello%0D%0Aworld

  • HTML URL Encoding:
    • %0D = \r
    • %0A = \n

Dari tampilan website hanya menampilkan "hello world", kemudian web tersebut saya view-source ternyata tampilan querynya yaitu:
hello
world
Newline yang saya injeksi ternyata masuk.

Setelah itu saya iseng saja report ke BugCrowd dengan impact manipulasi konten. Saya berani report karena saya berfikir staff BugCrowd tidak seganas staff HackerOne, meskipun saya tau tidak akan mendapatkan reward apa-apa nantinya. Eh ternyata dapet 1 point (Won't Fix), lumayan deh.

Update

Bagaimana untuk testingnya?

Contoh kasus terkait CRLF Injection, kalian bisa gunakan halaman default 404 Not Found pada Apache (Versi: <= 2.4.x).

Normal


Setelah dimasukan karakter CRLF

Memasukan karakter %0a (CRLF)

Memasukan lebih dari 1 CRLF
Memasukan lebih dari 1 CRLF

Gak penting banget sih?

Sebenarnya tujuan saya menulis ini karena ada satu celah yang cukup berbahaya yang setidaknya menggunakan teknik CRLF Injection yaitu HTTP Splitting Response (Server-Side Injection), tapi mungkin akan saya tulis pada artikel selanjutnya terkait vulnerability tersebut.

Semoga bermanfaat.
Share:

3 komentar:

  1. ada contoh/ss nya gk gan?agr lebih jls

    BalasHapus
  2. Gan, contoh webnya kalau bisa jangan localhost, contoh target aja langsung supaya lebih baik untuk yang ingin mencari celah keamanan website yang seperti ini.

    BalasHapus