Transcript for:
Mencegah Serangan Stored XSS pada Aplikasi

Oke selamat datang semuanya jadi di video ini gua mau ngejelasin dan mendemonstrasikan bagaimana caranya seorang hacker itu bisa mencuri Cookie milik admin menggunakan Serangan yang namanya stored accss atau yang biasa disebut crosside scripting gitu ya Nah buat kalian yang enggak tahu apa itu crosside scripting kalian bisa coba Googling aja teorinya gitu ya tapi simpelnya yang bisa gua kasih tahu ST xss ini biasa dipakai untuk seorang hacker itu mencuri Cookie admin atau Cookie user lain sehingga dia bisa memalsukan loginnya Jadi kalau dia dapat Cookie admin ya dia bisa login sebagai admin gitu ya atau setidaknya dia bisa mengakses halaman yang sebenarnya itu cuman bisa diakses oleh admin gitu ya Nah di sini gua akan demonstrasi makai web buatan gua sendiri yaitu makai larfel ya untuk menjaga Sisi etis gua enggak mau nyoba di website orang lain gitu ya Nah ini study case-nya adalah gua membuat sebuah aplikasi blogging gitu ya dan di dalamnya ada dua user yang di mana si Malvin ini ya user Malvin ini akan berperan sebagai attacker dan gua udah bikinin satu user lagi yaitu user admin dengan nama Beyonce gitu ya [email protected] dan Beyonce ini punya satu halaman khusus ya khusus admin untuk dia mengelola data-data blok gitu ya dan bisa dilihat endpoint-nya di sini adalah admin manage block Nah kita bisa cobain aja untuk akses dari si Malvin ini ya admin/ash manage Blocks dan kalau kita enter maka dia enggak akan bisa masuk gitu ya akan terjadi 403 atau Forbidden gitu nah tapi nantinya kita akan curi Cookie dari si admin ini untuk nantinya dia bisa nge-bypass 403 ini atau dia bisa login sebagai admin gitu ya Oke kita balik lagi ke halaman blocks-nya Nah di sini eh kita juga menggunakan yang namanya xss Hunter Oke jadi xss Hunter Ini adalah sebuah web gratis gitu ya yang di mana web ini ngebantu kita banget nih kalau mau melakukan serangan crossite scripting karena kalau nanti serangan kita berhasil gitu ya ada yang kena dengan payloot xss kita si xss Hunter ini akan ngasih notifikasi ke kita via email atau dari web-nya langsung gitu Jadi bisa dipantau dari web-nya juga oke kita langsung demonstrasi aja di sini si Malvin akan bikin satu blog ya dan ada dua input di sini ada title dan caption Oke untuk payotnya sendiri juga udah disediain sama xss Hunter Jadi tinggal kita ambil aja kalau gua biasanya makai yang paling atas dulu ya Nah di sini gua jadiin title dan untuk caption-nya gua bikin gini aja bla bla bla bla Oh ya By the way gua lupa ngingetin karena ini makai laravel nanti e setelah demonstrasi gua juga akan jelasin nih Bagaimana cara pencegahan untuk serangan ini gitu ya Tapi tetap dalam konteks laravel gitu Oke kita lanjut ini langsung Gua upload aja dan sekarang data blocknya itu udah masuk tapi di sisi user dia enggak ke Trigger gitu ya dia enggak ke fire Nah sekarang kita coba untuk di sisi admin kita bisa masuk lagi ke halaman manage block ini kita klik aja dan kita bisa lihat ada satu data yang Dom atau elemen html-nya itu broken gitu Oke ini artinya serangannya udah berhasil Nah sekarang kita masuk lagi ke halaman xss Hunter karena yang tadi gua bilang ya kalau misalnya ada yang kena dengan serangan xss kita si xss Hunter ini akan eh ngasih tahu Reportnya nah Contohnya kayak begini endpoint-nya di sini di admin manage block dan untuk melihat cookinnya kita bisa expand report di sini oke Nah inilah bagian Cookie Yang udah berhasil kita curi dari si admin gitu ya kita bisa copy aja kita copy dulu semuanya terus kita coba simpan aja di sini nah kayak begini Jadi Ada accsrf token dan laravel session Oke kita akan Coba akses lagi halaman manage blocknya menggunakan burb suite aja deh biar modifikasi cookinnya gampang jadi di sini Gua udah siapin burb suite dan proxynya juga gua udah nyalain Nah kita coba akses ya kita coba akses di sini SL admin/ manage Blocks Nah kita lihat di burp suite request-nya ada di mana ini ada banyak banget nih Nah ada di sini oke kita kirim aja ke repeater dan kita coba send request-nya Nah kita bisa lihat di sini statusnya 403 Forbidden karena kita masih pakai Cookie eh Cookie yang asli gitu Cookie punya user biasa Nah kita akan pakai Cookie milik si admin sekarang ini bisa gua copy aja dan gua pindahin ke bagian access RF token di sini gua paste Kemudian untuk Lara fail session-nya juga sama gua paste di sini nah oke udah Sebenarnya cukup itu aja cookie-nya kita udah pakai Cookie admin sekarang dan kita akan coba send request-nya lagi nah sekarang responnya udah berubah jadi 200 oke Dan kalau kita coba render halamannya di sini nah bisa di lihat ya kita sekarang udah mengakses halaman si admin gitu Dan kalau misalnya Kalian mau pakai bantuan kalau di Chrome itu ada ini ya Ada extension yang namanya mod header Jadi kalau kalian mau ngakses langsung di Chrome gitu ya di browser menggunakan Cookie Yang hasil curian tadi ya bisa pai ekstensi ini Ini tinggal dinyalain aja nih kayak gini nah kita coba testing di burb suite makakai Cookie yang asli dan kita render gitu ya kalau misalnya kayak gini kita nah ini Jadi 403 sedangkan kalau kita pakai Cookie admin yang tadi tadi bisa dilihat ya bahwa statusnya 200 dan kita berhasil mengakses halaman yang sebenarnya cuman boleh diakses oleh si admin oleh si Beyonce tadi gitu ya Oke jadi kurang lebih seperti itu teman-teman dampak dari serangan stor access Nah sekarang masuk ke bagian Kenapa ini bisa terjadi dan bagaimana pencegahannya oke karena ini adalah aplikasi gua sendiri dan untuk kebutuhan demonstrasi Memang udah gua rancang untuk Vulnerable Jadi emang udah sengaja gua bikin celahnya supaya kalian bisa lihat dampaknya gitu nah sebenarnya yang pertama bisa gua saranin untuk pencegahan serangan ini adalah konfigurasi dari ininya dari akses cookie-nya nah ini gua bisa coba masuk lagi ke ini ya masuk lagi ke vps Jadi kalian bisa lihat ini ada vps gua gitu ya untuk nge-hosting eh Lara fil-nya gua bisa zoom in dulu Nah di sini kalau kalian yang biasa makakai lar Fel harusnya udah tahu ya bahwa ada folder config di aplikasi kita gitu config dan di dalamnya ada file session.php Oke kita coba lihat isinya [Musik] fimsession.php nah di bawahnya kita cari yang namanya http accsess only nah di bagian ini nih http access only dan bahkan larafil-nya juga udah ngejelasin nih setting this value to true will prevent javascript from accessing the value of the Cookie and the Cookie will only be accessible through the http Protocol diterjemahin ke bahasa Indonesia artinya Cookie ini enggak akan bisa diakses melalui javascript melainkan hanya bisa melalui http Protocol nah sebenarnya yang dimaksud ini adalah yang laravel session tadi jadi kalau kalian lihat di Hunter tadi di sini ini ada satu Cookie Yang namanya laravel sation nah laravel session ini akan dicegah nantinya supaya dia enggak bisa diakses melalui javascript jadi ya percuma aja gitu walaupun payloot-nya udah dijalanin sama si admin payloot-nya udah kena tuh ke si admin ya tetap dia gak bisa dapat Cookie laravel session Ini ya Nah ini gua set ke false ya sebenarnya untuk kebutuhan demonstrasi video ini gitu nah tapi secara default ya Oh ini read only ya sorry gua harus pakai eh sudo aja sudo FM session kayak begini nah secara default di laravel ini settingannya adalah true Supaya apa yang tadi gua bilang supaya cookie-nya itu cuman bisa diakses melalui http Protocol enggak bisa lagi diakses melalui javascript gitu ya nah jadi gua coba update dulu config ini nah Berarti sekarang kita bisa coba lagi nih kita demonstrasiin ulang gitu ya Dan kita gak perlu inject lagi kita gak perlu dari ulang ngejalanin ini ngeinput bloknya kita cukup refresh saja dari halaman si admin ini Oke kita akses lagi halaman manage block dan kita lihat di halaman hunternya kita refresh Nah sekarang ada total dua report ya yang di atas mungkin di sini nah sekarang kalian bisa lihat nih bahwa Cookie fail session itu udah enggak ada kalau ggak percaya ya bisa gua copy paste aja ya Ini gua copy paste ke sini biar lebih gampang ngelihatnya Nah kalau kalian lihat sekarang Lara sation-nya ggak dapat gitu sehingga yang terjadi adalah kalau kita cuman pai Cookie Yang ini ya kita gak bisa lagi mengakses halaman admin menggunakan Cookie ini doang gitu kalau gak percaya kita bisa langsung demonstrasi aja ya gua jalanin lagi admin/ manage Blocks nah ini 403 dan kita coba ubah cookin-nya dari burb suite kayak gini dan kita kirim dulu ke repeater nah sekarang yang kita ubah cuman access RF token Oke ini titik komanya Nah kayak gini tapi laravel sation-nya kita enggak ganti Kenapa kita enggak ganti ya karena kita enggak dapat kan tadi kita udah enggak dapat nih cookin-nya nah kita coba send nah dia jadi 403 sekarang Nah jadi gitu teman-teman kurang lebih ya Bagaimana seorang hacker itu bisa memanfaatkan serangan ST xss dan bagaimana cara pencegahannya Semoga bisa bermanfaat terima kasih