Penulis: BIBI
Kapan pun kita memikirkan peretas, peretas sering kali seperti ini: orang kesepian yang diam-diam memasuki server orang lain untuk menghancurkan atau mencuri informasi rahasia orang lain. Mungkin dia mengubah beranda kita, atau bahkan mencuri nomor kartu kredit dan kata sandi pelanggan. Selain itu, peretas dapat menyerang pelanggan yang mengunjungi situs web kami. Di saat yang sama, server kami juga menjadi komplotannya. Microsoft menyebut serangan ini sebagai serangan "skrip lintas situs". Sebagian besar serangan ini terjadi ketika situs web secara dinamis menghasilkan halaman web, namun target peretas bukanlah situs web Anda, melainkan pelanggan yang menjelajahi situs web tersebut.
Deskripsi serangan skrip lintas situs
Dalam majalah bernama <<ADVISORY CA--2000-02>>, CERT memperingatkan semua orang: Jika server tidak secara efektif memverifikasi masukan pelanggan, peretas akan memasukkan beberapa kode HTML berbahaya, ketika HTML ini input kode digunakan dalam program SCRIPT, mereka dapat menggunakannya untuk menyebabkan kerusakan, seperti memasukkan beberapa gambar atau suara yang menjijikkan, dll., dan pada saat yang sama, itu juga dapat mengganggu penelusuran halaman web yang benar oleh pelanggan.
Kita tahu bahwa beberapa teman telah dibujuk ke beberapa situs web gratis yang mencurigakan, dan yang mereka dapatkan hanyalah 10 hingga 20 jendela kecil. Jendela ini sering kali disertai dengan tombol tidak valid yang dihasilkan oleh JAVA atau JAVASCRIPT. Ini disebut perangkap tikus. Menutup jendela ini sia-sia. Setiap kali kita menutup jendela, 10 jendela lagi akan muncul. Situasi ini sering terjadi ketika administrator tidak tersedia. Insiden tikus adalah contoh umum peretas yang menggunakan metode SCRIPT lintas situs untuk menyerang pelanggan.
Tag dan skrip berbahaya bukan sekadar lelucon, bahkan dapat mencuri data dan merusak sistem. Seorang hacker yang cerdas atau bahkan tidak terlalu pintar dapat menggunakan SCRIPT untuk mengganggu atau mengubah input data ke server. Kode SCRIPT juga dapat digunakan untuk menyerang sistem pelanggan dan merusak hard drive Anda sepenuhnya. Dan perlu anda ketahui bahwa saat anda menggunakan server tersebut, SCRIPT sang hacker juga sedang berjalan di tempat yang aman di server anda! Jika pelanggan mempercayai server Anda, mereka juga akan mempercayai kode SCRIPT yang berbahaya. Bahkan kode ini berasal dari server hacker dalam bentuk <SCRIPT> atau <OBJECT>.
Bahkan menggunakan firewall (SSL) tidak dapat mencegah serangan SCRIPT lintas situs. Itu karena jika perangkat yang menghasilkan kode SCRIPT berbahaya juga menggunakan SSL, SSL server kami tidak akan dapat mengidentifikasi kode tersebut. Apakah kita akan menyerahkan begitu saja situs web yang dulu sangat dipercaya oleh pelanggan kita kepada peretas? Dan adanya perusakan seperti ini akan sangat merusak reputasi website Anda.
1. Contoh serangan SCRIPT lintas situs:
Menurut informasi CERT, input dinamis umumnya memiliki bentuk berikut: parameter URL, elemen tabel, COOKISE, dan permintaan data. Mari kita analisa website ini hanya dengan dua halaman, nama websitenya adalah: MYNICESITE.COM. Halaman pertama menggunakan formulir atau COOKIE untuk mendapatkan nama pengguna:
<%@ Language=VBScript %>
<% If Request.Cookies("userName") <> "" Then
Dim strRedirectUrl
strRedirectUrl = "page2.asp?userName="
Strredirecturl = Strredirecturl & Response.cookies ("nama pengguna")
respons.redirect (strredirecturl)
else %>
< html
> < head > <judul
>
mynicesite.com halaman beranda </judul >/head >
tubuh < > < h2 > my </judul </head>
< >> > < .com</H2>
<FORM method="post" action="page2.asp">
Masukkan nama pengguna MyNiceSite.com Anda:
<INPUT type="text" name="userName">
<INPUT type="submit" name= "kirim" value="kirim">
</FORM>
</BODY>
</HTML>
<% End If %>
Halaman kedua mengembalikan nama pengguna untuk menyambut:
<%@ Language=VBScript %>
<% Dim strUserName
If Request.QueryString("userName")<> "" Kemudian
strUserName = Request.QueryString("userName")
Lain
Response.Cookies("userName") = Request.Form("userName")
strUserName = Request.Form("userName" )
Selesai Jika %>
<HTML>
<HEAD></HEAD>
<BODY>
<H3 align="center">Halo: <%= strUserName %> </H3>
</BODY>
</HTML>
Ketika Anda biasanya Kapan mengetik teks, semuanya berfungsi dengan baik. Jika Anda memasukkan kode Script: <SCRIPT>alert('Hello.';</script>, label peringatan JavaScript akan muncul:
pada kunjungan berikutnya, label peringatan ini juga akan muncul; ini karena kode Script adalah Itu sudah ada di cookie saat Anda pertama kali mengunjunginya. Ini adalah contoh sederhana dari serangan lintas situs.
Jika menurut Anda ini adalah kasus khusus, Anda sebaiknya mencari di tempat lain di Internet dan mencobanya sendiri
situs web pemerintah besar, situs pendidikan, dan situs komersial, dan beberapa di antaranya memiliki situasi di atas.Saya
bahkan menemukan bahwa situs web tempat saya sering menggunakan kartu kredit tidak memfilter masukan, sungguh menakutkan untuk dipikirkan
Di antara para peretas, seorang peretas sering kali seperti ini: orang kesepian yang diam-diam memasuki server orang lain untuk menghancurkan atau mencuri informasi rahasia orang lain. Mungkin dia akan mengubah beranda kami, atau bahkan mencuri nomor kartu kredit dan kata sandi pelanggan. peretas juga menyerang pelanggan yang mengunjungi situs web kami. Microsoft menyebut serangan ini sebagai serangan "skrip lintas situs" . yang menelusuri situs web.
Deskripsi serangan skrip lintas situs
ada dalam buku berjudul <<ADVISORY CA. --2000-02>>Di majalah tersebut, CERT memperingatkan semua orang: Jika server tidak secara efektif memverifikasi masukan pelanggan, peretas akan memasukkan beberapa kode HTML berbahaya. Ketika masukan kode HTML ini digunakan dalam program SCRIPT, mereka dapat menggunakannya untuk menyebabkan kerusakan, seperti menyisipkan beberapa gambar atau suara yang menjijikkan, dll., dan pada saat yang sama, juga dapat mengganggu pelanggan. ' penelusuran web yang benar.
Kita tahu bahwa beberapa teman telah dibujuk ke beberapa situs web gratis yang mencurigakan, dan yang mereka dapatkan hanya 10. Hingga 20 jendela kecil, jendela ini sering kali disertai dengan tombol tidak valid yang dihasilkan oleh JAVA atau JAVASCRIPT Ini disebut perangkap tikus.Menutup jendela ini sia-sia.Setiap kali kita menutup jendela, akan ada 10 jendela lagi.Situasi ini sering terjadi ketika administrator tidak hadir metode SCRIPT lintas situs untuk menyerang pelanggan.
Tag berbahaya dan SCRIPT bukan hanya lelucon sederhana, mereka bahkan dapat mencuri data dan menghancurkan sistem. Peretas yang cerdas atau bahkan tidak pintar dapat menggunakan SCRIPT untuk mengganggu atau mengubah input data server . Menggunakan kode SCRIPT juga dapat menyerang sistem klien, dan perlu Anda ketahui bahwa saat Anda menggunakan server, SCRIPT peretas juga berjalan di tempat yang aman di server Anda! percayai kode SCRIPT berbahaya tersebut, meskipun kode tersebut dimulai dengan <SCRIPT> atau <OBJECT>.
Bahkan menggunakan firewall (SSL) tidak mencegah serangan SCRIPT lintas situs. Itu karena jika perangkat yang menghasilkan kode SCRIPT berbahaya juga menggunakan SSL, SSL server kami tidak akan dapat mengidentifikasi kode tersebut. Apakah kita akan menyerahkan begitu saja situs web yang dulu sangat dipercaya oleh pelanggan kita kepada peretas? Dan adanya perusakan seperti ini akan sangat merusak reputasi website Anda.
1. Contoh serangan SCRIPT lintas situs:
Menurut informasi CERT, input dinamis umumnya memiliki bentuk berikut: parameter URL, elemen tabel, COOKISE, dan permintaan data. Mari kita analisa website ini hanya dengan dua halaman, nama websitenya adalah: MYNICESITE.COM. Halaman pertama menggunakan formulir atau COOKIE untuk mendapatkan nama pengguna:
<%@ Language=VBScript %>
<% If Request.Cookies("userName") <> "" Then
Dim strRedirectUrl
strRedirectUrl = "page2.asp?userName="
Strredirecturl = Strredirecturl & Response.cookies ("nama pengguna")
respons.redirect (strredirecturl)
else %>
< html
> < head > <judul
>
mynicesite.com halaman beranda </judul >/head >
tubuh < > < h2 > my </judul </head>
< >> > < .com</H2>
<FORM method="post" action="page2.asp">
Masukkan nama pengguna MyNiceSite.com Anda:
<INPUT type="text" name="userName">
<INPUT type="submit" name= "kirim" value="kirim">
</FORM>
</BODY>
</HTML>
<% End If %>
Halaman kedua mengembalikan nama pengguna untuk menyambut:
<%@ Language=VBScript %>
<% Dim strUserName
If Request.QueryString("userName")<> "" Kemudian
strUserName = Request.QueryString("userName")
Lain
Response.Cookies("userName") = Request.Form("userName")
strUserName = Request.Form("userName" )
Selesai Jika %>
<HTML>
<HEAD></HEAD>
<BODY>
<H3 align="center">Halo: <%= strUserName %> </H3>
</BODY>
</HTML>
Ketika Anda biasanya Kapan mengetik teks, semuanya berfungsi dengan baik. Jika Anda memasukkan kode Script: <SCRIPT>alert('Hello.';</script>, label peringatan JavaScript akan muncul:
pada kunjungan berikutnya, label peringatan ini juga akan muncul; ini karena kode Script adalah Itu sudah ada di cookie saat Anda pertama kali mengunjunginya. Ini adalah contoh sederhana dari serangan lintas situs.
Jika menurut Anda ini adalah kasus khusus, Anda sebaiknya mencari di tempat lain di Internet dan mencobanya sendiri
situs web pemerintah besar, situs web pendidikan, dan situs web komersial, dan beberapa di antaranya memiliki situasi diatas
. Saya bahkan menemukan bahwa situs web tempat saya sering menggunakan kartu kredit tidak menyaring masukan, sungguh menakutkan untuk memikirkannya
: Mencegah Serangan Skrip Lintas Situs.
1. Bagaimana mencegah server diserang oleh skrip lintas situs
Untungnya, teknologi untuk mencegah serangan skrip lintas situs menjadi semakin sempurna. Saat ini, beberapa metode dapat diterapkan untuk mencegah serangan skrip lintas situs:
1. Menyandikan karakter halaman yang dibuat secara dinamis.
Hal pertama yang perlu Anda lakukan adalah menyandikan karakter halaman yang dibuat secara dinamis peretas akan sangat rentan. Anda dapat mengubah pengaturan karakter agar dapat dengan mudah melewati pertahanan Anda. Jika website kita adalah website berbahasa Inggris, maka kita hanya perlu mengatur pengkodean karakter ke karakter Latin ISO-8859-1 Situasi spesifiknya adalah sebagai berikut:
<META http-equiv="Content-Type" content="text/html ;charset= ISO-8859-1">
2. Filter dan batasi semua data masukan.
Ini adalah metode kedua untuk mencegah serangan skrip lintas situs. Saat login, jangan izinkan karakter khusus tersebut dimasukkan. Oleh karena itu, kita dapat menambahkan program JAVASCRIPT ke metode ONSUBMIT untuk menyelesaikan fungsi ini. Dalam contoh ini kami membatasi input hingga 15 karakter. Ini mencegah masukan skrip yang lebih panjang.
Dalam buku <<Artikel Basis Pengetahuan QA252985>>Microsoft menyediakan program Javascript singkat untuk menyelesaikan pemfilteran data masukan. Kami juga memperkenalkan kode ini untuk contoh kami sesuai dengan situasi spesifik, seperti:
function checkForm() {
document.forms
[0].userName.value = _
RemoveBad(document.forms[0].userName.value);
;
}
// Fungsi KODE MICROSOFT
HapusBad(strTemp) {
strTemp = strTemp.replace(/</>/"/'/%/;/(/)/&/+/- /g ,"");
return strTemp;
}
Dengan menggunakan metode ini, Anda dapat memfilter karakter berikut yang terdapat dalam input:
% < > [ ] { } ; & + - " '( )
3. Gunakan pengkodean HTML dan URL
meskipun menggunakan The di atas Metode pemfilteran dan pembatasan masukan yang disebutkan di atas adalah metode pertahanan yang sangat penting, namun masih tidak berdaya melawan serangan berbasis email saya. Karena saya langsung memasukkan parameter URL ke dalam email. Menanggapi situasi ini kita harus mengambil tindakan pengamanan yang lebih kuat. Jika kita menggunakan ASP maka penyelesaiannya akan relatif lebih mudah. Hanya HTML dan URL yang menyandikan halaman web yang dihasilkan secara dinamis. Untuk situasi dalam contoh kami, kami membuat perubahan berikut pada URL pengalihan di halaman masukan pertama:
strRedirectUrl = strRedirectUrl & _
server.URLEncode(Response.Cookies("userName"))
Di halaman eksekusi, kami menambahkan:
strUserName = server .HTMLEncode(Request.QueryString("userName"))
dan
strUserName =server.HTMLEncode(Request.Form("userName"))
Microsoft menganjurkan agar semua input dan output halaman dinamis harus dikodekan. Hal ini juga berlaku saat menyimpan dan mengambil data dari database. Dengan cara ini Anda dapat menghindari sebagian besar serangan skrip lintas situs.
Untuk melakukan ini, tambahkan Page1.asp:
<%@ Bahasa=VBScript %>
<% Jika Permintaan.Cookies("Namapengguna") <> "" Lalu
'redirect jika mendeteksi cookie
Dim strRedirectUrl
strRedirectUrl = "page2.asp?userName="
strRedirectUrl = strRedirectUrl & _
server.URLEncode(Request.Cookies("userName"))
Response.Redirect(strRedirectUrl)
Lain %>
<HTML>
<HEAD>
<META http-equiv="Content-Type"content="text/html; charset=ISO-8859-1">
<TITLE>Halaman Beranda MyNiceSite.com</TITLE>
</ HEAD>
<script LANGUAGE="javascript">
<!--
function checkForm() {
document.forms[0].userName.value =
RemoveBad
(document.forms[0].userName.value)
;
//****************************************************** ******
//Programmer: BUKAN KODE ASLI - BERASAL DARI MICROSOFT
//Sumber Kode:
Artikel Basis Pengetahuan Microsoft Q25z985
//Deskripsi: Menghapus karakter buruk.
***** ********************************************
function HapusBad(strTemp) {
strTemp =strTemp.replace(/</>/"/'/%/;/(/)/&/+/-/g, "");
kembali strTemp;
}
//-->
</SCRIPT>
<BODY>
<BR>
<H2>MyNiceSite.com</H2>
<BR>
<FORM method="post"action="page2.asp" onsubmit="return checkForm ();">
Masukkan nama pengguna MyNiceSite.com Anda:
<INPUT type="text"name="userName" width="10" maxwidth="10">
<INPUT type="submit"name="submit" value=" submit">
</FORM>
</BODY>
</HTML>
<% end if %>
Tambahkan yang berikut ke Page2.asp:
<%@ Language=VBScript %>
<% Redupkan strUserName
If Request.QueryString("userName")<>"" Kemudian
strUserName =server.HTMLEncode(Request.QueryString("userName"))
Else
Response.Cookies("userName") =Request.Form("userName")
strUserName = server.HTMLEncode(Request.Form("userName"))
Berakhir Jika %>
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/ html;charset=ISO-8859-1">
</HEAD>
<BODY>
<H3 align="center">Halo: <%= strUserName %></H3>
</BODY>
</HTML>
Sekarang karena ini Serangan itu berhasil dicegah. Setelah tag dan skrip berbahaya tersebut dikodekan, mereka ditampilkan dalam bentuk teks, seperti yang ditunjukkan di bawah ini:
Kita juga dapat menambahkan komponen IIS untuk memfilter semua karakter khusus dari input dinamis. Bagi website yang sudah dikembangkan, sangat mudah menggunakan cara ini untuk mencegah serangan skrip lintas situs. Kontrol kami dapat mencegat target REQUEST dari halaman ASP, dan dapat mendeteksi konten tabel, cookie, string permintaan, dan program:
Kita juga dapat menambahkan data statistik ke komponen ini dengan menulis file log. Setiap kali klien memasukkan karakter ilegal, komponen ini mencatat alamat IP dan waktunya. Untuk detailnya, lihat artikel Doug Dean <<Gulung Aplikasi IIS Anda Sendiri di ASPToday>>.
Kita hanya perlu mengambil beberapa langkah sederhana untuk mencegah serangan skrip lintas situs secara efektif. Selain ketiga metode yang disebutkan di atas, Microsoft dan CERT juga sangat menyarankan penggunaan metode yang mereka sebut “sanity check”. Misalnya, jika ada jendela masukan yang hanya memperbolehkan masukan angka, kami akan membatasinya hanya memperbolehkan masukan angka 0-9. Metode yang digunakan oleh Microsoft dan CERT untuk membatasi karakter masukan jauh lebih baik daripada memfilter karakter khusus saja. Dengan mengambil langkah-langkah ini, Anda dapat melindungi pelanggan yang mengunjungi situs web Anda saat mereka berada di sana.
2. Bagaimana cara melindungi browser Anda dari serangan hacker:
Bagaimana cara menghindari serangan saat Anda roaming di Internet? Microsoft dan CERT menyarankan agar tidak bermain-main secara online. Menanggapi situasi tersebut, penulis kolom di PC Magazine bernama John Dvorack memberikan jawaban menarik. Dia yakin ini adalah tindakan yang direncanakan oleh Microsoft: untuk menakut-nakuti peselancar internet agar menjelajah di situs aman seperti America Online dan MSN.com.
Dalam contoh kita, meskipun Anda tidak menjelajahi Internet, Anda tidak dapat menghindari serangan peretas online. Ironisnya, sebagian besar bahaya datang dari situs yang paling kita percayai. Jika Anda ingin situs web Anda bebas masalah, Anda tidak boleh mengunduh konten dinamis atau cookie apa pun. Untuk detailnya, silakan merujuk ke informasi relevan browser Anda.
Microsoft juga memperingatkan Anda untuk mengatur Skrip Aktif browser Anda ke keadaan yang sangat terbatas dan email Anda ke mode penerimaan yang sangat terbatas. Berhati-hatilah saat mengeklik tautan di email. Untuk informasi lebih lanjut silakan merujuk ke buku berjudul <<Artikel Basis Pengetahuan Microsoft Q253117>>. Untuk berjaga-jaga, Anda sebaiknya memiliki lebih banyak pengalaman online dan berhati-hati setiap saat.
Kesimpulan
Jika Anda adalah mantan programmer UNIX, Anda mungkin tidak tahu apa arti skrip lintas situs. Anda tahu bahwa nama pengguna dan kata sandi untuk administrator banyak situs untuk login masing-masing adalah root dan root. Demikian pula, nama dan kata sandi dari banyak administrator database masing-masing adalah sa dan kata sandi. Anda juga tahu Webzine (seperti Phrack dan Alt2600). Metode yang mereka berikan dapat memberi tahu Anda kelemahan server tertentu selangkah demi selangkah. Pada perangkat keras semacam ini, Anda juga tahu bahwa banyak server database situs web dan server web tidak melindungi dirinya sendiri. Begitu bertemu dengan peretas, mesin akan lumpuh.
Meskipun mudah untuk mengambil langkah-langkah untuk melindungi sistem kami dari peretas, sistem kami selalu rentan terhadap peretas. Ada banyak alasan untuk meyakini bahwa beberapa kerentanan keamanan baru akan muncul pada tahun depan.
Sebuah makalah yang diselesaikan di bawah bimbingan Mr. John Howard dari CERT Company menyebutkan: "Menurut penelitian saat ini,setiap
situs web dengan nama domain di Internet diserang oleh peretas rata-rata setidaknya setahun sekali."
serangan tidak tertahankan. Serangan skrip lintas situs adalah metode lain yang dapat digunakan peretas. Namun kita dapat mencegah terjadinya bentuk serangan ini selama kita melakukan beberapa proses sederhana yang disebutkan di atas.