Universitas Negeri Adams. Cara meretas situs web. Bagian 2

Universitas Negeri Adams. Cara meretas situs web. Bagian 1

Mari kita bicara tentang serangan kita selanjutnya. Saya akan memberi tahu Anda bagaimana server mengidentifikasi Anda. Untuk melakukan ini, protokol HTTP digunakan antara browser dan server tanpa menyimpan keadaan, ketika komunikasi dengan server terjadi oleh pasangan permintaan-respons independen. Oleh karena itu, server lupa Anda segera setelah koneksi dibuat, dan pada sesi berikutnya tidak lagi mengingat siapa Anda.



Namun, dia mengingat Anda saat Anda menggunakan aplikasi web, karena ketika Anda meletakkan barang-barang yang ingin Anda beli di keranjang, Anda dapat terus berbelanja dan kembali lagi untuk melihat isi keranjang Anda. Implementasi "mengingat" terjadi menggunakan cookie identifikasi sesi. Segera setelah Anda masuk ke server, itu menghasilkan cookie, yang merupakan urutan unik dari huruf dan angka, dan mengirimkannya ke browser Anda, yang menyimpan cookie ini secara lokal di komputer Anda. Setelah itu, browser mengembalikan cookie ke server dengan setiap permintaan Anda untuk satu sesi. Dengan menerima cookie ini, server memahami jenis pengguna yang mengaksesnya dengan permintaan ini. Ini adalah cara paling umum untuk mengidentifikasi pengguna yang menggunakan aplikasi web.

Jenis serangan selanjutnya disebut cross-site scripting, XSS. Gagasan di balik serangan ini adalah bahwa penyerang memaksa situs web untuk menampilkan kode berbahaya, biasanya dalam bentuk JavaScript, yang kemudian dieksekusi di browser pengguna. Serangan semacam itu dapat mengejar tujuan apa pun, tetapi paling sering digunakan untuk mendapatkan pengidentifikasi sesi korban. Nilai ID Sesi adalah dapat dianggap sebagai kata sandi, karena mengidentifikasi Anda. Dengan menangkap pengidentifikasi sesi, penyerang dapat menyamarkan diri Anda menggunakan server proxy untuk berkomunikasi dengan server target. Sasaran dari serangan semacam itu adalah keinginan untuk berbicara atas nama Anda, mengotomatiskan beberapa tindakan, misalnya, mengirim spam, atas nama Anda, atau memperkenalkan virus.

Saat mencari kerentanan skrip lintas situs XSS dalam aplikasi web, Anda mencari bidang input tempat Anda dapat menaruh beberapa informasi, mengirimkannya ke server dan melihat hasilnya apa yang akan ditampilkan di jendela browser.



Saya salah memasukkan lokasi gedung, menunjukkan Aula Plachy, alamat aula tim bola basket universitas kami. Server web menerima informasi ini dan memahami bahwa profesor ilmu komputer adalah "kutu buku" yang tidak dapat hidup di lokasi tim olahraga dan memberikan pesan kesalahan: "Aula Plachy salah"!

Kotak pencarian adalah yang paling rentan dalam hal ini, di mana Anda dapat memasukkan beberapa istilah yang agak tidak jelas dan kemudian melihat apa yang Anda dapatkan sebagai balasannya. Paling sering, Anda diberi petunjuk daftar opsi yang mungkin benar yang bisa dimanfaatkan penyerang.

Hal berikutnya yang perlu Anda lakukan adalah memeriksa apakah Anda dapat menyuntikkan kode jahat Anda dan kemudian jalankan. Kami akan mencoba mengatur serangan XSS menggunakan JavaScript.



Kode JavaScript selalu dibedakan dengan membuka dan menutup tag skrip, serta operator ATAU. Pengembang aplikasi tidak sepenuhnya bodoh, sehingga mereka mengatur mekanisme penyaringan yang disebut "desinfeksi." Itu menanamkan dirinya di dalam kode, memeriksa untuk melihat apakah ada karakter berbahaya, dan menghapusnya bila memungkinkan. Tes disinfeksi JavaScript yang paling sederhana terlihat seperti ini:

<script>alert(β€œTesting”)</script> 

Tetapi peretas sedikit lebih pintar, sehingga mereka memiliki ha.ckers.org/xss.html . Saya tidak punya waktu untuk menunjukkan situs ini kepada Anda, tetapi di sana Anda dapat menemukan cara paling canggih untuk memintas kontrol yang coba dimasukkan oleh pengembang aplikasi ke dalam program mereka untuk menghapus karakter berbahaya. Jadi ada beberapa cara yang cukup pintar yang memungkinkan seorang peretas masuk ke dalam aplikasi.

Jadi, mari kita bicara tentang bagaimana serangan XSS akan berlangsung. Kami memiliki server web untuk "Halaman Fakultas", tempat kami akan memasukkan kode berbahaya. Kami memiliki Hawa, yang akan meretas, tetapi kami melewatkan sesuatu di slide ini - kami lupa tentang korban. Apa yang baik tentang serangan XSS adalah bahwa Anda tidak perlu mempekerjakan siapa pun untuk melakukan ini. Maksudku, kali ini aku tidak akan menjadi korban, karena Eva punya kata sandi dan dia bisa melakukan apa pun yang dia mau dengan akunku. Karena itu, Eve meninggalkan pertandingan besar dan tidak lagi mengejar anak-anak kecil itu. Mari kita bawa korban kita ke panggung (hadirin tertawa, karena foto salah satu profesor fakultas muncul di slide).

Sekarang korban telah mengambil tempatnya, mari kita lihat bagaimana serangan berkembang. Misalkan Eve berhasil meng-host kode JavaScript berbahaya di server tempat korban kami akan masuk menggunakan akunnya.

Ini penting, karena begitu korban masuk ke server, ia akan menerima pengidentifikasi sesi bahwa Eva akan mencoba mencegat, ini adalah bagian yang sangat penting dari serangan itu. Jadi, korban meminta halaman web yang berisi kode JavaScript berbahaya, kode ini akan dijalankan di browser korban dan mengirim Eva pengidentifikasi sesi.



Setelah menerima pengidentifikasi sesi, Eve dapat menggunakan server proxy-nya dan melakukan apa pun yang diinginkannya, menyamar sebagai korban. Satu-satunya mosaik yang hilang adalah JavaScript jahat itu sendiri, yang harus dimasukkan oleh peretas ke halaman dan yang harus menangkap ID sesi korban kami dan meneruskannya ke penyerang.

Ini sangat sederhana. Kami memiliki kode JavaScript yang dimulai dan diakhiri dengan pembukaan dan penutupan tag:

 <script> 

Baris kode pertama membuat gambar dengan cara yang sama seperti dalam JavaScript, gambar dibuat secara dinamis untuk halaman mana pun. Anda tahu bahwa inti dari gambar apa pun adalah file yang berisi gambar tersebut, jadi kami harus memberi tahu browser ke mana harus pergi untuk mendapatkan gambar ini. Ini ditunjukkan di baris kedua, di mana tautan ke situs peretas berada, namun peramban berpikir bahwa ini persis tempat di mana gambar yang diinginkan berada. Dia akan pergi ke situs web Eve dan meminta dokumen.cookie, karena dia percaya bahwa ini adalah file gambar yang dia butuhkan.

Tapi ini bukan file gambar sama sekali, tetapi pengidentifikasi sesi yang kami coba tangkap menggunakan JavaScript. Seperti yang Anda lihat, mendapatkan ID Sesi sangat sederhana. Baris ketiga, yang tidak digunakan dalam kode untuk melakukan serangan XSS, berisi alarm yang memicu jendela pop-up di browser dengan pesan serangan. Ini dilakukan khusus untuk contoh kita, karena serangan XSS nyata terjadi sepenuhnya tanpa disadari oleh korban.



Jadi, mari kita undang Eve dan lihat bagaimana dia akan menyerang skrip lintas situs.

Eve Hacker: Terima kasih Dr. Loveland! Hal pertama yang harus saya lakukan adalah menutup beberapa hal yang tidak kita butuhkan. Kami tidak lagi membutuhkan proksi Burp Suit, jadi saya menutupnya. Kedua, saya perlu mengkonfigurasi ulang browser web dan mengubahnya untuk menggunakan pengaturan sistem proxy default.

Sekarang mari kita pergi ke halaman login situs web Dr. Loveland, karena jika Anda ingat, saya memiliki kata sandi dan saya dapat memasuki situs kapan saja, bukan dia. Seperti yang saya sebutkan, Dr. Loveland sangat malas, dia menggunakan sertifikat SSL yang sudah kadaluwarsa, jadi saya harus mengkonfirmasi pengecualian keamanan untuk masuk ke halaman login. Karena saya tahu kata sandinya, saya dapat mengedit halaman webnya. Seperti yang sudah kita ketahui, pada halaman untuk mengedit informasi pribadi ada kerentanan di baris Building Location, "Building Location", dan di sinilah saya akan memasukkan JavaScript berbahaya saya.



Saya menyederhanakan serangan ini, jadi pada kenyataannya saya tidak akan mengirim kode ke server, tetapi sebaliknya saya akan memanggil jendela sembul dengan pesan bahwa seseorang mencoba menyerang saya. Sekarang saya telah mengatur panggung untuk serangan itu, saya akan kembali ke halaman otorisasi dan logout. Sekarang Anda hanya perlu menunggu sampai muncul korban yang ingin menggunakan aplikasi ini.



(Eve mengenakan topi baseball, menyamar sebagai profesor fakultas Stephen Eldridge)

Saya baru saja kembali dari pertemuan yang menarik di mana selama jam-jam kami membahas mobil mana yang harus diprioritaskan di tempat parkir - sebuah Subaru atau Jeep, dan kemudian terpikir oleh kami bahwa perbedaannya bisa menjadi sunroof di dalam mobil. Jadi sekarang saya harus masuk dan memeriksa detail kontak saya, karena saya tidak ingin ketinggalan pertemuan "di luar kelas" berikutnya karena data saya tidak tersedia. Jadi, saya masuk ke aplikasi web saya di bawah saldrich login dan kata sandi saya.



Jadi, semuanya terlihat seperti biasa, saya tidak melihat sesuatu yang buruk di halaman saya sebagai seorang profesor matematika, semua informasi kontak dalam urutan.

Ya Tuhan, arloji saya menunjukkan bahwa hanya ada 2 menit tersisa sampai pertemuan berikutnya! Sekarang saya akan bertemu dengan Dr. Loveland, jadi saya harus pergi ke halamannya dan melihat apakah saya dapat menggali beberapa kotoran pada dirinya untuk menyebutkan dia di pertemuan itu. Jadi, saya mengklik tautan Susan Loveland, saya membuka halamannya dan ... Dr. Eldridge, halaman Anda diretas!



(Profesor Eldridge melepas topi bisbolnya, berubah menjadi Hawa)

Sekarang saya memiliki ID Sesi Anda, saya dapat menggunakan server proxy saya dan menyamar seperti Anda, Dr. Eldridge, melakukan apa pun yang saya inginkan atas nama Anda. Saya memberikan lantai kepada Anda, Dr. Loveland!

Susan Loveland: terima kasih, Eve! Saya ingin menyebutkan bahwa aplikasi halaman fakultas kami dikembangkan berdasarkan salah satu kerangka kerja web terbaru - Python Django Web Framework, yang memiliki sistem desinfeksi data input yang luar biasa yang menghilangkan karakter berbahaya dari kode JavaScript. Oleh karena itu, agar Hawa dapat melakukan serangannya, saya mengecualikan memeriksa nilai bidang Lokasi Bangunan untuk keberadaan karakter tersebut.



Seberapa berhasil serangan skrip lintas situs? Sekitar 80-90% situs web memiliki mekanisme manajemen kerentanan sisi klien. Kegagalan untuk melawan serangan XSS adalah kerentanan paling umum dari aplikasi Web 2.0 yang lebih banyak berinteraksi dengan pengguna akhir.

Anda mungkin pernah mendengar tentang salah satu "cacing" paling terkenal dari skrip lintas situs Samy, yang penulisnya Samy Kamkar muncul pada tahun 2005 tentang cara memotong penyaringan input dari jejaring sosial MySpase. Dia menempatkan JavaScript di halamannya, seperti yang dilakukan Eve dengan halaman saya. Script ini melakukan 2 hal: menambahkan Samy sebagai teman ke korban dan menyalin dirinya ke halaman profil korban. Pada awalnya, serangan ini berlangsung sangat lambat, karena hanya beberapa orang pergi ke halaman Samy dan berteman, tetapi secara bertahap virus menyebar semakin dan infeksi mulai tumbuh seperti longsoran salju. Contoh ini menggambarkan dalam hal kemampuan serangan XSS, karena lebih dari satu juta teman meminta dalam beberapa jam "menghancurkan" situs MySpase. Dengan demikian, konsekuensi dari serangan ini bisa sangat serius.

Jenis serangan terakhir yang ingin saya bicarakan hari ini adalah serangan kontrol akses, atau serangan akses. Dengan serangan seperti itu, peretas ingin mendapatkan informasi yang tidak dapat diaksesnya. Ada beberapa kerentanan yang ditargetkan oleh vektor serangan akses.
Seringkali, pengembang aplikasi lupa bahwa mereka meninggalkan file di direktori root dokumen di server web, dan jika Anda dapat menemukan keberadaannya, Anda akan dapat melihat file-file ini, yang sering berisi informasi rahasia.
Cara lain untuk menemukan kerentanan adalah dengan melihat URL dengan sangat hati-hati. Misalnya, jika Anda melihat alamat aplikasi semacam ini.com/ViewDoc.php?docid=1280149120 , maka Anda dapat dengan mudah mencari angka di akhir tautan untuk mendapatkan dokumen yang tidak diperuntukkan bagi mata Anda.

Banyak aplikasi yang dirancang untuk berbagai tingkat pengguna dan mereka memiliki mekanisme akses built-in yang sering didasarkan pada permintaan dengan parameter app.com/login/home.jsp?admin=false , sehingga Anda dapat mencoba memasuki situs menggunakan penggantian alamat di baris ke admin = true.

Bahkan, kerentanan kontrol akses yang paling umum adalah implementasi yang salah dari fungsi otorisasi. Sekarang Hawa akan menunjukkan ini.

Eve Hacker: Terima kasih, Dr. Loveland. Untuk melakukan serangan terakhir, Anda hanya perlu melihat dengan sangat hati-hati URL aplikasi web kami. Sekarang saya akan memperluas jendela aplikasi sehingga baris dengan alamat pada halaman Dr. Loveland sepenuhnya sesuai pada layar. Saya harus menyingkirkan JavaScript yang mengganggu ini yang saya instal.

Kita melihat bahwa alamat halaman Dr. Loveland adalah localhost / SampleSite / Faculty / index-1.html , dan jika kita beralih ke halaman Dr. Eldridge, maka alamatnya adalah localhost / SampleSite / Faculty / index-2.html .

Tidakkah Anda berpikir bahwa templat yang sama digunakan di sini? Namun, saya tidak tertarik dengan baris alamat ini, karena mereka tidak memiliki kemampuan untuk memasukkan informasi. Jadi saya ingin membuka formulir masuk Dr. Loveland. Jika saya masuk dengan namanya, saya dapat mengedit informasi pribadinya. Tapi mari kita lihat URL halaman, di bagian akhir ada IndexForm-1, dan Anda bisa menebak bahwa mungkin ada peluang untuk sampai ke formulir data Dr. Eldridge.



Jadi, pertanyaannya adalah apakah kita bisa mendapatkan formulirnya tanpa masuk atas namanya. Ayo kita coba. Saya mengubah unit menjadi dua sehingga alamat tersebut mengambil bentuk localhost / SampleSite / Faculty / indexForm-2.html , tekan Enter, dan halaman dengan informasi pribadi Dr. Eldridge muncul.



Di depan kami adalah bug yang siswa Dr. Loveland lupa untuk perbaiki - aplikasi memiliki kerentanan yang memungkinkannya untuk menembus halaman orang lain tanpa memasukkan login korban.
Dr. Eldridge adalah orang yang sangat baik, saya tidak ingin mengganggunya, saya tidak menentangnya, tetapi demi tawa saya akan meninggalkan sesuatu di halamannya. Biarkan saya mengubah nama dan nama keluarganya, dan pada saat yang sama memperbaiki posisi dari "Profesor" menjadi "Guru SMP."



Sekarang saya akan mengirim informasi pribadi yang sudah diperbaiki ke server, dan jika sekarang saya memasuki halaman Eldridge, maka di atasnya Anda dapat melihat koreksi yang dilakukan oleh saya.



Jadi, Dr. Loveland, jika Anda memiliki masalah dengan Dr. Eldridge ketika dia memutuskan untuk menahan Anda setelah ceramah, katakan saja kepada saya dan saya akan menghapus semua informasinya!
Susan Loveland: Terima kasih atas dukungannya, Eve! Saya ingin berbicara tentang kerentanan kontrol akses sesaat lagi. Bagi orang-orang yang, seperti saya, suka mempelajari kode, saya akan menjelaskan apa yang terjadi selama serangan ini.



Slide ini menunjukkan cara mengisi formulir dengan informasi pribadi. Baris terakhir adalah apa yang membuat Hawa tertarik. Kelas ini melindungi form_index dari fungsi cepat @ login-diperlukan dan @authUser dan memeriksa bahwa siapa pun yang ingin mengubah nilai-nilai di bidang formulir harus masuk ke sistem untuk ini. Namun, para pengembang lupa tentang hal ini dan tidak menambahkan wajib menyebutkan fungsi cepat ini dalam konteks mengisi formulir.
Kode yang ditampilkan memeriksa apakah formulir yang diminta cocok dengan orang yang masuk ke sistem, tetapi karena tidak digunakan dengan benar, Eve dapat mendeteksi kerentanan ini dalam aplikasi.

Saya perhatikan bahwa 78% dari semua situs memiliki kerentanan akses. April lalu, beberapa peretas menemukan kerentanan di kampus universitas Berkeley - ini adalah file tersembunyi yang ditinggalkan pengembang di server dokumen server web. Peretas dapat melihat file-file ini dan mendapatkan nomor jaminan sosial dan informasi medis rahasia untuk lebih dari 160 ribu orang. Jadi, Anda dapat melihat seberapa serius konsekuensi dari serangan kontrol akses.

Saya ingin menyebutkan beberapa fakta menarik dalam konteks topik pembicaraan kita hari ini. Baru-baru ini, perhatian pemerintah terhadap keamanan siber meningkat tajam. Jadi, pada 2008 saja, Departemen Pertahanan mencatat lebih dari 360 juta upaya peretasan. Sekitar $ 75,8 miliar direncanakan untuk dihabiskan untuk meningkatkan sistem keamanan siber di bidang teknologi informasi pada tahun 2010, yang 7,2% lebih banyak daripada yang dihabiskan untuk tujuan-tujuan ini pada tahun 2009. Menurut CNN Money Magazine, pada tahun 2009 di Amerika Serikat, spesialis keamanan Internet berada di puncak profesi yang paling dicari. Pendapatan tahunan rata-rata konsultan di bidang keamanan komputer berjumlah 99,7 ribu dolar, maksimum - 152 ribu dolar. Menurut perkiraan, kebutuhan untuk spesialis tersebut dari 2006 hingga 2016 akan meningkat sebesar 27%.

Saya ingin mengatakan bahwa Fakultas Ilmu Komputer baru-baru ini memiliki kesempatan untuk mendapatkan gelar associate di Internet Computing & Network Security, jadi ini adalah titik awal yang bagus untuk memulai karir di bidang ini.

(mengenakan topi hitam)

Eve Hacker: Saya ingin mengganggu Anda sebentar, Dr. Loveland! Untuk guru masa depan yang hadir dalam audiensi ini, saya perhatikan bahwa jika Anda menguasai keahlian ini dan suatu hari menemukan diri Anda dalam situasi di mana Anda tidak menerima kenaikan gaji yang dijanjikan, maka Anda selalu dapat beralih ke mafia dan melakukan peretasan kontrak untuk mereka. Ini akan menjadi kenaikan gaji guru ilmu komputer yang luar biasa.

(melepas topinya)

Susan Loveland: Saya ingin berterima kasih kepada orang-orang yang telah memberikan kontribusi serius pada penciptaan presentasi hari ini, para pengembang "Halaman Fakultas". Saya pikir berkat kerja keras mereka, saya akan dapat meninggalkan audiensi ini tanpa borgol dan pengawalan polisi kampus. Satu-satunya anggota "selamat" dari grup ini adalah Ryan Goldsworthy, yang memainkan peran penting dalam pengembangan halaman-halaman ini. Saya ingin mengucapkan terima kasih kepada Dr. Stephen Eldridge atas selera humornya dan untuk mengirimkan halaman pribadi untuk menunjukkan serangan, untuk berterima kasih kepada kepala departemen yang telah dengan murah hati berkontribusi pada proyek Halaman Fakultas saya, dan juga untuk berterima kasih kepada Layanan Komputasi Komputer kampus karena telah melindungi kami dari hal tersebut. orang-orang seperti Hawa.

Terima kasih atas perhatian anda


Terima kasih telah tinggal bersama kami. Apakah Anda suka artikel kami? Ingin melihat materi yang lebih menarik? Dukung kami dengan melakukan pemesanan atau merekomendasikannya kepada teman-teman Anda, diskon 30% untuk pengguna Habr pada analog unik dari server entry-level yang kami temukan untuk Anda: Seluruh kebenaran tentang VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps dari $ 20 atau bagaimana membagi server? (opsi tersedia dengan RAID1 dan RAID10, hingga 24 core dan hingga 40GB DDR4).

VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps hingga musim semi gratis ketika membayar selama setengah tahun, Anda dapat memesan di sini .

Dell R730xd 2 kali lebih murah? Hanya kami yang memiliki 2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV dari $ 249 di Belanda dan Amerika Serikat! Baca tentang Cara Membangun Infrastruktur Bldg. kelas menggunakan server Dell R730xd E5-2650 v4 seharga 9.000 euro untuk satu sen?

Source: https://habr.com/ru/post/id438332/


All Articles