Bagaimana Saya Meretas Qiwi Tanpa Memprogram Pengetahuan

Entri


Halo lagi.

Kali ini artikel tersebut tidak akan menimbulkan pertanyaan β€œserius”.

Ini akan menjadi cerita tentang bagaimana, tanpa mengetahui pemrogramannya, tetapi karena cukup cerdas dan penuh perhatian, Anda dapat menemukan kerentanan serius yang, misalnya, akan memungkinkan Anda untuk menghapus semua uang dari akun hanya dengan nama pengguna dan kata sandi (baca, lewati otentikasi dua faktor atau konfirmasi yang sama melalui SMS).

Saat ini, Qiwi telah berhasil menambalnya, jadi saya akan mencoba untuk memperkuat penjelasan dengan screenshot modern, kadang-kadang menjelaskan bagaimana tampilannya 2,5 tahun yang lalu.

Sekarang to the point


Katakanlah Anda memiliki nama pengguna: kata sandi untuk dompet Qiwi orang lain.
Katakanlah ada 100 ribu rubel.
Dan Anda sooooo ingin menguasai mereka.
Tetapi Anda tidak bisa hanya menghapus uang - Anda perlu konfirmasi melalui SMS.
Tapi kami pintar, ini tidak akan menghentikan kami.

Langkah 1. Masuk ke akun Anda dan buat kartu virtual di sana.
Kami melihat gambar seperti itu



Sepertinya kami hanya memiliki sedikit informasi. Hanya 4 digit terakhir kartu dan durasi kartu.

Tetapi sebelum ada 6 (!) Digit terakhir kartu . Artinya, 10 digit lainnya tidak diketahui.
Dan kita membutuhkan semua nomor di kartu. Di mana mendapatkan lebih banyak? Sangat sederhana.
Semua kartu memiliki BIN - 6 digit kartu pertama dari bank tertentu dengan jenis yang sama harus sama.

Langkah 2. Kami naik ke browser dan google "Qiwi BIN"

Kami segera mengetahui bahwa nampan adalah 489049.
Dan sekarang kita sudah memiliki 12 digit! Hanya 4 yang tersisa!

Tapi inilah kesulitannya.
4 digit ini tidak berkedip di mana pun dan, tampaknya, tidak ada tempat untuk mendapatkannya.
Tetapi, tentu saja, jika Anda berusaha keras, Anda dapat menemukan :)

Langkah 3. Cari 4 digit terakhir yang hilang

Untuk melakukan ini, kita perlu memiliki akun di Qiwi dengan 1000r dan tahu apa itu Algoritma Bulan .
Mari kita mulai.
Jika Anda membuka operasi apa pun di Qiwi, maka itu menunjukkan tanggal pembayaran dan nomor tanda terima.
Mungkin beberapa sudah menebak mengapa kita perlu 1rb di akun.
Ya, kami akan menggantinya dengan nomor alih-alih 4 digit yang tidak diketahui yang tetap tidak diketahui dan mengirimkannya ke nomor kartu dalam rubel!
Dan di salah satu operasi kami akan menerima 1p masuk ke akun di mana 100rb rubel yang berharga berada.
Tetap hanya membandingkan waktu pengiriman uang.
Sebelumnya, dimungkinkan untuk mencocokkan nomor operasi, tetapi sekarang mereka menyembunyikannya. Dan mereka melakukannya dengan benar.
Dan sekarang yang paling penuh perhatian akan mengatakan bahwa sebenarnya 4 digit adalah operasi 10k, bukan 1k. Jadi, Anda perlu 10rb rubel dan banyak waktu untuk menemukan 4 digit yang tepat.
Dan ini tidak sepenuhnya benar. Saya persembahkan untuk Anda Algoritma Bulan!

Algoritma Luhn adalah algoritma untuk menghitung digit periksa dari nomor kartu plastik sesuai dengan ISO / IEC 7812. Ini bukan alat kriptografi, tetapi terutama dimaksudkan untuk mendeteksi kesalahan yang disebabkan oleh korupsi data yang tidak disengaja (misalnya, ketika secara manual memasukkan nomor kartu, saat menerima data nomor jaminan sosial melalui telepon). Ini hanya memungkinkan dengan tingkat keandalan tertentu untuk menilai tidak adanya kesalahan dalam blok angka, tetapi tidak memungkinkan menemukan dan memperbaiki ketidakakuratan yang ditemukan.


Jika ini sangat menarik - google, dan saya akan memberi tahu Anda secara singkat tentang algoritme dan bagaimana itu akan membantu kami.
Algoritma ini memungkinkan Anda untuk mengkonfirmasi apakah nomor kartu itu valid. Artinya, setelah menjalankan opsi 10k kami melalui algoritma ini, Anda hanya dapat meninggalkan jumlah kartu yang berpotensi ada. Tebak ada berapa banyak?
Benar, tepat 1k.

Tentu saja, semua ini tampaknya sangat mudah dilakukan secara manual, tetapi apa yang mencegah skrip sederhana menghasilkan opsi 1k yang sangat ini?

Berikut adalah beberapa contoh implementasi Wikipedia:

Contoh Algoritma Bulan di JS
function luhnAlgorithm(digits) { let sum = 0; for (let i = 0; i < digits.length; i++) { let cardNum = parseInt(digits[i]); if ((digits.length - i) % 2 === 0) { cardNum = cardNum * 2; if (cardNum > 9) { cardNum = cardNum - 9; } } sum += cardNum; } return sum % 10 === 0;} 


Contoh Algoritma Bulan dalam PHP
 function luhnAlgorithm($digit) { $number = strrev(preg_replace('/[^\d]/', '', $digit)); $sum = 0; for ($i = 0, $j = strlen($number); $i < $j; $i++) { if (($i % 2) == 0) { $val = $number[$i]; } else { $val = $number[$i] * 2; if ($val > 9) { $val -= 9; } } $sum += $val; } return (($sum % 10) === 0); } 


Sekarang kita perlu memilah-milah opsi 1k ini menggunakan metode yang saya jelaskan di atas.
Dan voila - kami mendapat 4 digit terakhir.
Sekarang kita memiliki kode lengkap kartu dan validitasnya.
Tentu saja, kami tidak memiliki kode CVV (kode yang ditulis terbalik), tetapi di beberapa tempat tidak diperlukan.
Misalnya Amazon!
Ya, kami pergi ke Amazon dan memesan apa pun dengan bantuan data yang baru dibuat.
Misalnya, kode Steam untuk uang atau semacamnya. Secara umum, ada sesuatu yang elektronik untuk cepat dijual di Internet. Kami akan kehilangan sedikit uang, tetapi kemungkinan besar tidak lebih dari 20%.
Itu saja! Dapatkan untung + 79rb!

Jangan lupa bahwa ini tidak lagi berfungsi!


Tetapi jika Anda menemukan sesuatu yang serupa - beri tahu Qiwi, mereka (mudah-mudahan) akan memperbaikinya.
Saya meletakkannya untuk menunjukkan bahwa Anda dapat menemukan hal-hal keren dan lubang keamanan tanpa dapat memprogram. Dan untuk pengembangan umum.

Semoga beruntung untuk semua orang :)

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


All Articles