Pada tahap ini, ada banyak sekali aktivitas voting yang diadakan di WeChat Moments. Saya yakin banyak siswa yang merasa terganggu dengan hal ini, karena orang-orang (kerabat, teman, atau apa pun) akan selalu muncul dari waktu ke waktu untuk meminta Anda memilih mereka.
Artikel ini tidak bermaksud untuk mengeksplorasi masalah ini dari sudut pandang moral atau emosional. Yang menarik bagi saya adalah bahwa sebagian besar kegiatan pemungutan suara saat ini sebenarnya memiliki celah yang jelas, dan "manipulasi suara" dapat dicapai melalui cara-cara teknis yang sederhana.
Ini sebuah contoh.
Sebuah pusat tata rambut online (selanjutnya disebut S Mall) mengadakan acara pemungutan suara online di platform WeChat. Pengguna WeChat dapat mengakses halaman pemungutan suara melalui tautan acara dan memilih karya penata rambut favorit mereka; setiap akun WeChat hanya dapat memilih Pemeran 1 suara untuk satu karya.
Halaman aktivitas pemungutan suara ditunjukkan di bawah ini:
Di permukaan, S Mall telah menerapkan langkah-langkah anti-kecurangan dalam aktivitas pemungutan suara karena setiap pengguna WeChat dibatasi hanya satu suara per hari. Jika pengguna mengakses layanan pemungutan suara ini secara normal melalui WeChat untuk memilih, hal itu memang akan memberikan efek yang diinginkan.
Namun, jika Anda melihat alamat asli halaman pemungutan suara, yaitu, tahan halaman tersebut dan seret ke bawah, Anda akan menemukan bahwa "Halaman web ini disediakan oleh XXX" ditampilkan di bagian atas layar bahwa "XXX" di sini bukanlah "mp.weixin.qq.com", melainkan nama domain S Mall. Dengan kata lain, program kegiatan voting ini berjalan di server S Mall.
Berdasarkan analisis di atas, dapat disimpulkan bahwa diagram topologi jaringan operasi pemungutan suara pengguna adalah sebagai berikut:
Saat pengguna WeChat mengakses halaman pemungutan suara, server WeChat hanya meneruskan permintaan, dan penghitungan suara serta verifikasi spesifik dilakukan di server S Mall.
Lantas, bagaimana cara S Mall membedakan pengguna yang memilih?
Ini melibatkan konsep platform publik WeChat OpenID
. Penjelasan resmi OpenID
adalah: setelah mengenkripsi ID WeChat, OpenID setiap pengguna untuk setiap akun resmi bersifat unik.
Sangat mudah untuk memverifikasi ini. Anda hanya perlu menggunakan beberapa akun WeChat untuk memilih, menangkap paket jaringan selama proses pemungutan suara, dan memeriksa parameter di POST untuk mengonfirmasi.
Berdasarkan hal ini, platform publik WeChat akan menyertakan OpenID
pengguna dalam parameter POST saat meneruskan permintaan pemungutan suara; setelah S Mall menerima permintaan pemungutan suara POST, S Mall dapat mencegah pemungutan suara tunggal dengan menanyakan apakah OpenID
saat ini telah memberikan suara pada hari itu. Pengguna memilih berulang kali.
Namun, ada celah besar di sini!
S Mall hanya dapat menentukan apakah OpenID
tersebut terduplikasi, namun tidak dapat memverifikasi keabsahan OpenID
karena tidak dapat memanggil server WeChat untuk memverifikasi OpenID
.
Setelah memperjelas celah ini, sangat mudah untuk mencapai penyikatan tiket.
OpenID
yang berbeda secara acak dan buat permintaan POST berulang.Jika Anda ingin menerapkan penyikatan tiket secara batch atau operasi penyikatan tiket otomatis, Anda dapat menerapkan permintaan penyikatan tiket melalui skrip Python; Anda bahkan dapat menggunakan LoadRunner.
Jalankan VoteRobot.py
, log keluarannya adalah sebagai berikut:
======== Start to vote zpid(38), Total votes: 3
1 tickets has been voted, the next ticket will be voted after 35 seconds.
2 tickets has been voted, the next ticket will be voted after 31 seconds.
3 tickets has been voted, the next ticket will be voted after 10 seconds.
======== Voting Ended!
Perlu dicatat bahwa biasanya yang terbaik adalah memiliki interval waktu acak saat mengotomatiskan penyikatan tiket, dan yang terbaik adalah mensimulasikan perangkat yang berbeda secara dinamis, yaitu memodifikasi User-Agent
. Jika tidak, server dapat dengan mudah mengidentifikasi perilaku curang.
Melihat hal ini, beberapa siswa mungkin diam-diam merasa senang. Bisakah cara ini digunakan untuk "menggesek suara" pada pemungutan suara selanjutnya?
Sayangnya, tentu saja tidak.
Faktanya, celah dalam kasus dalam pasal ini sangat rendah. Namun, masih banyak aktivitas pemungutan suara yang menggunakan model ini.
Mudah juga untuk mengetahui apakah kampanye pemungutan suara bisa ditipu dengan cara ini. Dengan menggunakan metode dalam artikel ini, jika URL acara tersebut bukan WeChat resmi, dan tidak ada verifikasi tambahan di seluruh proses pemungutan suara, maka kemungkinan terjadinya kecurangan sangat tinggi, lalu tangkap paket tersebut untuk melihat proses interaksi komunikasi, dan gunakan Setelah memodifikasi parameter alat permintaan jaringan dan meminta ulang, Anda dapat memverifikasi apakah kecurangan benar-benar mungkin dilakukan.
Selain itu, sebagian orang mungkin ingin bertanya, apakah tidak mungkin mencegah “manipulasi suara” dalam kegiatan pemungutan suara online?
Jawabannya memang sulit untuk menghilangkannya sepenuhnya. Pernahkah Anda mendengar tentang calo 12306? Pernahkah Anda mendengar tentang Apple Store yang memberi peringkat aplikasi secara profesional? Pernahkah Anda mendengar tentang “troll Internet” dan “Pesta 50 Cent”?
Namun, penyelenggara acara dapat menggunakan beberapa cara untuk meningkatkan ambang batas kecurangan. Misalnya, banyak aktivitas saat ini yang menggunakan metode berikut:
Apa pun metode yang digunakan, metode "sikat suara" dalam artikel ini sama sekali tidak efektif.