Keselamatan

Melakukan Serangan Pemalsuan Permintaan Merentas Tapak

Melakukan Serangan Pemalsuan Permintaan Merentas Tapak
Serangan CSRF adalah serangan yang membuat pengguna yang disahkan melakukan tindakan yang tidak diingini dalam aplikasi web yang disahkan. Ini dilakukan melalui laman web luaran yang dikunjungi pengguna dan yang mencetuskan tindakan ini.

Dalam artikel ini, anda akan memperoleh informasi yang diperlukan dari aplikasi untuk mengetahui apa yang harus dilakukan oleh situs penyerang untuk mengirim permintaan yang valid ke pelayan yang rentan. Kemudian, anda akan membuat halaman yang mensimulasikan permintaan yang sah dan menipu pengguna untuk mengunjungi halaman tersebut semasa disahkan. Anda juga akan membuat beberapa lelaran pada bukti asas konsep untuk menjadikannya lebih mirip serangan dunia nyata, di mana mangsa tidak menyedarinya. Perhatikan bahawa fail kod untuk artikel ini boleh didapati di github pengarang.

Bersiap sedia

Anda memerlukan akaun pengguna yang sah di BodgeIt untuk artikel ini. Artikel ini menggunakan [dilindungi e-mel] sebagai mangsa:

Bagaimana hendak melakukannya…

Pertama, anda perlu menganalisis permintaan yang anda mahu memaksa mangsa untuk membuat. Untuk melakukan ini, anda memerlukan Burp Suite atau proksi lain yang dikonfigurasi dalam penyemak imbas:

  1. Log masuk ke BodgeIt sebagai mana-mana pengguna dan klik pada nama pengguna untuk pergi ke profil.
  2. Buat pertukaran kata laluan. Lihat seperti apa permintaan dalam proksi:

    Jadi, ia adalah POS meminta untuk http: // 192.168.56.11 / bodgeit / kata laluan.jsp, dan hanya mempunyai kata laluan dan pengesahannya di badan.

  3. Cuba buat halaman HTML yang sangat sederhana yang meniru permintaan ini. Buat fail (beri nama csrf-tukar-kata laluan.html) dengan kandungan berikut:







  4. Sekarang, muatkan fail ini di penyemak imbas yang sama dengan sesi log masuk anda:
  5. Klik hantar dan anda akan diarahkan ke halaman profil pengguna. Ini akan memberitahu anda bahawa kata laluan berjaya dikemas kini.
  6. Walaupun ini membuktikan intinya, situs luaran (atau halaman HTML lokal seperti dalam hal ini) dapat melaksanakan permintaan perubahan kata sandi pada aplikasi. Masih tidak mungkin pengguna akan mengklik pada Hantar Anda boleh mengautomasikannya dan menyembunyikan medan input sehingga kandungan jahat disembunyikan. Sekarang, buat halaman baru berdasarkan yang sebelumnya; panggilnya csrf-change-password-scripted.html:


    Halaman yang tidak berbahaya


    Anda boleh mempercayai halaman ini.
    Tidak ada perkara buruk yang akan berlaku kepada anda atau akaun BodgeIt anda.





    Kali ini, formulir memiliki parameter ID dan ada skrip di halaman yang akan mengirimkan isinya ketika halaman dimuat sepenuhnya.

  7.  Sekiranya anda memuatkan halaman ini di penyemak imbas yang sama di mana anda memulakan sesi BodgeIt, ia akan secara automatik mengirim permintaan dan halaman profil pengguna akan muncul setelah itu. Dalam tangkapan skrin berikut, penyemak imbas Penyahpepijattetapkan titik putus sebelum permintaan dibuat:
  8. Percubaan terakhir ini kelihatan lebih baik dari perspektif penyerang. Anda hanya memerlukan mangsa memuat halaman dan permintaan akan dihantar secara automatik, tetapi kemudian mangsa akan melihatnya kata laluan anda telah ditukarmesej, dan itu pasti akan meningkatkan amaran.
  9. Anda boleh memperbaiki halaman penyerang dengan menjadikannya memuatkan respons dalam bingkai yang tidak kelihatan di dalam halaman yang sama. Terdapat banyak cara untuk melakukan ini; yang cepat dan kotor adalah menetapkan ukuran 0 untuk bingkai. Fail anda akan kelihatan seperti ini:


    Halaman yang tidak berbahaya


    Anda boleh mempercayai halaman ini.
    Tidak ada perkara buruk yang akan berlaku kepada anda atau akaun BodgeIt anda.
    target = "target_frame">





    Perhatikan bagaimana sifat sasaran borang adalah iframe yang ditentukan tepat di bawahnya dan bingkai tersebut mempunyai ketinggian dan lebar 0%.

  10. Muatkan halaman baru di penyemak imbas tempat sesi dimulakan. Tangkapan skrin ini menunjukkan bagaimana halaman kelihatan ketika diperiksa dengan penyemak imbas Alat Pembangun: Perhatikan bahawa objek iframe hanya garis hitam di halaman dan, di Inspektor, anda dapat melihat bahawa ia mengandungi halaman profil pengguna BodgeIt.
  11. Sekiranya anda menganalisis komunikasi rangkaian yang dilakukan oleh halaman CSRF anda, anda dapat melihat bahawa ia benar-benar membuat permintaan untuk menukar kata laluan BodgeIt:

Bagaimana ia berfungsi…

Apabila anda mengirim permintaan dari penyemak imbas dan sudah mempunyai kuki milik domain sasaran yang tersimpan, penyemak imbas akan melampirkan kuki ke permintaan sebelum dikirimkan. Inilah yang menjadikan kuki begitu mudah digunakan sebagai pengecam sesi, tetapi ciri bagaimana HTTP berfungsi juga menjadikannya rentan terhadap serangan seperti yang anda lihat dalam artikel ini.

Apabila anda memuatkan halaman di penyemak imbas yang sama, di mana anda mempunyai sesi aktif dalam aplikasi, penyemak imbas akan melampirkan kuki sesi ke permintaan tersebut secara automatik. Ini berlaku walaupun tab atau tetingkap yang berbeza, dan halaman ini membuat permintaan ke domain tempat sesi dimulakan.

Sekiranya pelayan tidak mengesahkan bahawa permintaan yang diterimanya benar-benar berasal dari dalam aplikasi, ia membenarkan laman web jahat membuat panggilan atas nama pengguna aktif yang sah yang mengunjungi laman web jahat ini semasa disahkan ke domain sasaran.

Dalam ujian penembusan aplikasi web, kod pertama yang anda gunakan, satu dengan dua medan teks dan Hantar butang, mungkin cukup untuk menunjukkan adanya kekurangan keselamatan. Walau bagaimanapun, ujian penembusan aplikasi mungkin merupakan sebahagian daripada pertunangan lain, seperti kejuruteraan sosial atau latihan pasukan merah. Dalam kes ini, beberapa usaha tambahan akan diperlukan untuk mengelakkan pengguna mangsa mengesyaki bahawa ada sesuatu yang berlaku.

Dalam artikel ini, Anda menggunakan JavaScript untuk mengotomatisasi pengiriman permintaan dengan menetapkan acara onload pada halaman dan menjalankan metode pengiriman formulir dalam fungsi pengendali acara. Anda juga menggunakan iframe tersembunyi untuk memuat respons perubahan kata laluan, jadi, mangsa tidak pernah melihat mesej bahawa kata laluannya telah berubah.

Sekiranya artikel ini menarik, anda boleh meneroka Buku Masakan Ujian Penetrasi Web Kali Linux - Edisi Kedua untuk mengetahui kelemahan web yang paling biasa dan menghalangnya daripada menjadi ancaman kepada keselamatan laman web anda. Buku Masakan Ujian Penetrasi Web Kali Linux - Edisi Kedua memberikan anda kemahiran yang anda perlukan untuk merangkumi setiap tahap ujian penembusan - dari mengumpulkan maklumat mengenai sistem dan aplikasi hingga mengenal pasti kelemahan melalui ujian manual.

Alat Berguna untuk Pemain Linux
Sekiranya anda suka bermain permainan di Linux, kemungkinan anda telah menggunakan aplikasi dan utiliti seperti Wine, Lutris dan OBS Studio untuk meni...
HD Remastered Games untuk Linux yang Tidak Pernah Melancarkan Linux Sebelumnya
Banyak pembangun dan penerbit permainan hadir dengan penghapus HD permainan lama untuk memperpanjang usia francais, harap peminat meminta keserasian d...
Cara Menggunakan AutoKey untuk Mengautomasikan Permainan Linux
AutoKey adalah utiliti automasi desktop untuk Linux dan X11, yang diprogramkan dalam Python 3, GTK dan Qt. Dengan menggunakan skrip dan fungsi MACRO, ...