"Pemantauan sosial." Skor 1: 0 menguntungkan kita

pengantar


Aplikasi keluar → melihat horor yang tenang → mulai menulis ulasan negatif → diurutkan berdasarkan rak → aplikasi telah dihapus (dikirim untuk revisi).

Halo semuanya, dalam artikel ini, ketika semuanya telah berlalu, saya ingin memberi tahu Anda tentang dua tahap kunci di atas.

Aplikasi macam apa yang bisa dibaca di sini .
Dan tentang alasan dan mengirimkan revisi di sini .

Di bawah potongan, kami akan melihat dengan Anda apa yang kami lihat di awal analisis aplikasi dan membahas semua poin menarik dari kode. Kami akan menikmati aplikasi yang bocor dan tidak akan menerima "lihat berapa lama kami melakukannya".

Latar Belakang


Semuanya berawal bagi saya di saluran Telegram " IT and COPM ". Saya tidak segera melihat pos dengan tautan ke aplikasi di Play Market dan apk di bawah ini. Hanya setelah sekitar 30 menit, dari jumlah posting di saluran ini, saya memutuskan untuk membaca. Pada saat itu, mereka sudah mendekompilasi aplikasi dan secara aktif mengawasi ke mana data dikirim. Mereka mengeluarkan beberapa titik akhir, host, token, mulai memposting screenshot potongan kode. Setelah menerapkan apk, mereka meminta seseorang untuk menerbitkan kode yang didekompilasi di GitHub - setelah satu setengah jam diposting . Lalu saya terhubung ...

Bagian utama


Dukungan


Pada awalnya, saya ingin mengatakan bahwa di dalam aplikasi ada tanda untuk bekerja dengan API layanan pengenalan wajah Identix.one . Orang-orang ini bekerja sehingga pada awalnya mereka perlu memuat basis data pengguna dengan foto dan data, dan baru kemudian mereka dapat mengirim foto untuk pengakuan.

Token ada di aplikasi, bekerja dengan API layanan ini melalui klien, dan bukan backend Anda. Dengan demikian, setiap pengguna, setelah merobek token, dapat mulai mengunggah foto-foto warga Federasi Rusia dan menerima informasi tentang mereka. Kedengarannya luar biasa.

Setelah melihat tarif layanan ini, saya menyadari bahwa ini umumnya untuk kamera CCTV. Untuk setiap kamera Anda harus membayar jumlah yang baik dan terkejut berapa banyak pengembang aplikasi harus membayarnya.

Masuk ke bagian dokumentasi API sepertinya menarik bagi saya untuk mendapatkan basis pengguna yang dimuat dan hal-hal lain. Jadi saya memutuskan untuk memenuhi permintaan dan memeriksa token. Untungnya atau sayangnya, token itu dinonaktifkan, yang segera saya informasikan kepada pemilik saluran IT dan COPM melalui Twitter .

Saya mulai belajar dengan punggung, karena saya berencana menemukan sesuatu yang menarik di sana ( sql inj , misalnya). Kami sudah memiliki host dan tautan untuk masuk ke panel admin. Di area admin dan pergi. Melihat pertanyaan segera menjadi jelas bahwa ini adalah semacam Kerangka Suasana. Ketika saya melihat pantat liar dalam permintaan, bagaimana menandai tombol mana yang ditekan, bendera mana dalam formulir yang ditetapkan, saya merasa tertekan. Saya tidak ingin mempelajari hal ini dan melakukan yang terbaik yang saya lakukan - saya mengarahkan "Atmosphere Framework CVE" ke Google. Dengan cepat melihat berita utama, saya melihat tidak ada yang menarik selain XSS dan melangkah lebih jauh. Dan kemudian saya pergi ke titik akhir lain yang kita tahu.

Titik akhir ini adalah pena untuk memulai dan mengakhiri pekerjaan Anda. Yang akan mencirikan rentang waktu yang dihabiskan di tempat kerja. Sudah ada kode. Saya membuka proyek, menggosok ke tempat yang tepat dan mulai mempelajari parameter. Diantaranya adalah deviceEUI , idxid , lintang dan bujur. Jika dengan dua yang terakhir segera jelas, maka dengan yang pertama - tidak. Setelah menghabiskan N menit untuk penyelesaian permintaan yang berhasil, saya menolak Access .

Kemudian, untuk memahami objek studi, saya memutuskan untuk mengunduh aplikasi sendiri. Saya mengunduhnya, tetapi saya tidak bisa login lagi ... Saat itu mereka telah membuat cadangan (tapi saya belum tahu tentang itu).

Setelah membuka kode proyek bukan pada GitHub , tetapi sepenuhnya dalam ide, saya mulai mencari titik akhir baru. Ditemukan! Nama sesuai: / api / covid / Perangkat ...

Saya sudah mulai meneliti pena ini. Untuk waktu yang lama saya tidak mengerti bagaimana otorisasi berjalan, di mana header dengan token atau yang lainnya. Dan kemudian saya sadar ... Dia sudah pergi! Setelah memastikan hal ini, setelah menganalisis pemrosesan dan pembuatan permintaan, saya membuat kesimpulan pada bagian backend dan mengirimkannya kembali ke Twitter .

Kesimpulan pada bagian backend : pendaftaran dilakukan dengan mengirimkan informasi tentang perangkat Anda (telepon). Ini termasuk alamat, nomor telepon, nama, dll. Segera setelah pendaftaran, mereka memerlukan foto dari Anda dan mengunggahnya ke profil Anda. Bahkan, untuk menunjukkan foto siapa ini, parameter tambahan ditunjukkan dalam permintaan - IMEI . Itu terletak di bidang DeviceId model Perangkatyang kami kirim pada langkah pertama pendaftaran. Tidak ada validasi bahwa IMEI milik Anda. Layak mengirim orang lain - dan Anda berhasil menyelesaikan permintaan, diduga dari perangkat lain. Patut dicatat bahwa di antara titik akhir ada / api / covid / Perangkat / kata sandi , namun pemrosesan responsnya adalah sebagai berikut:



Setelah mendaftarkan perangkat, API mengembalikan authCode , tetapi, sayangnya, kode ini disimpan di bidang objek dan terletak di sana, mengumpulkan debu. Tidak terlibat dalam pembentukan permintaan lainnya.

Dengan demikian, tanpa memiliki otentikasi, setiap pengguna mengetahui IMEIseseorang (atau mengambil / menyortirnya) dapat mengirim lokasi geografis palsu, mengunggah foto, mengirim status tentang awal hari kerja, dan sebagainya.

Saya akan senang bermain dengan implementasi yang menyenangkan, tetapi, sayangnya, semuanya dimatikan.

Sejak saat itu, saya mulai sepenuhnya berlari ke kode dan menggambarkan apa yang saya lihat di saluran Telegram saya . Ternyata omong kosong tanpa hubungan antara paragraf, tapi setelah posting ini saya menemukan kekuatan (sudah 2-3 malam) untuk menulis ulang dan membuatnya dapat dibaca.

Penguraian aplikasi


Segera perlu dicatat bahwa aplikasi pada saat ini tidak lagi berfungsi. Karena itu, saya tidak tahu itu bisa visual. Dia mempelajari semuanya secara membabi buta dan dengan kode, yang jauh dari semuanya! Kita semua tahu apa itu dekompilasi, tetapi apa yang terjadi sudah cukup untuk menarik kesimpulan tertentu.

Aplikasi menyimpan informasi tentang perangkat Anda, nama, nomor telepon, alamat. Ada bidang yang tidak jelas, seperti komentar . Dan ada yang menarik - seorang dokter.

Untuk mengidentifikasi wajah, layanan identix digunakan (parameter yang sama dari bagian belakang). Anda dapat mengembalikan usia, jenis kelamin, dan informasi lainnya dari foto yang diunggah. Ada pengidentifikasi unik dari seseorang yang digunakan di dalam aplikasi.

Dua jenis perangkat yang digunakan untuk navigasi: bluetooth, wifi. Keduanya memiliki nama dan RSSI (kualitas sinyal, berbicara tentang jarak ke titik).

Geolokasi Anda dapatkan berkat Google dan modul GPS .

Di antara berbagai jenis informasi yang tersimpan ada satu lokasi. Anehnya, ia memiliki sejumlah besar bidang. Termasuk tingkat baterai, jumlah langkah (meskipun model terpisah untuk ini) dan banyak lagi.

Dalam pengaturan, Anda dapat mengatur interval telemetri. Koleksi dan pengiriman. Tidak yakin tentang kemampuan untuk mengubah parameter ini.

Ada tiga jenis pengidentifikasi unik:

  • Perangkat IMEI.
  • ID perangkat (tidak dipelajari).
  • Alamat MAC WiFi.

Jadi, apa yang saya tulis di atas tentang transfer dan pemilihan IMEI adalah penyederhanaan , untuk pemahaman. Ini sebenarnya adalah satu dari tiga pengidentifikasi. ID

Anda tergantung pada versi SDK yang Anda miliki . Sederhananya, apakah mungkin untuk mendapatkan satu atau jenis pengenal unik lainnya. Pengembang aplikasi sendiri bingung di dalamnya dan tidak dapat bertemu dalam satu nama. Satu-satunya tempat saya meletakkan kode di artikel.



if (Build.VERSION.SDK_INT >= 29) {
    return getMac(context);
}
return getImei(context);

Dan di dalam getImei, ini sebuah if:

if (Build.VERSION.SDK_INT >= 26) {
    str = telephonyManager.getImei();
} else {
    str = telephonyManager.getDeviceId();
}

Aplikasi ini juga bisa mendapatkan nomor kartu SIM, tetapi hanya dalam kasus rumit. Ada kesempatan - itu akan terjadi. Kode

QR dibuat dengan ID teks , yang dapat terdiri dari tiga jenis. Topik ini, serta layanan pengenalan wajah, telah diperdebatkan oleh siapa pun. Saya tidak fokus .

Fitur yang menarik dari aplikasi ini adalah pemberitahuan push untuk Anda di perangkat. Pengembang dapat mengirim perintah dari jarak jauh dan akan dieksekusi oleh Anda. Salah satu tim bernama OPEN_CAMERA . Lain - SERVER_ADDRESS_KEY - di sini, kemungkinan besar, dengan analogi dengan Telegram . Ketika diblokir, ia mengirimkan IP baru ke semua penggunaalamat dan kami terus menggunakan messenger. Selain itu, mereka dapat mengatur jarak jauh untuk mengirim dan mengumpulkan telemetri. Di sini tentang kemungkinan pemberitahuan push .

Anda tentu saja masih dapat berbicara tentang avatar, bagaimana itu dapat diputar, bagaimana mereka menyimpannya secara lokal, bagaimana mereka menormalkannya. Anda dapat berbicara tentang keinginan untuk melakukan pembaruan aplikasi secara otomatis, tetapi Anda tidak punya waktu, tentang kemampuan untuk pergi ke dialer dengan nomor, mempertahankan daftar kontak (buku alamat yang paling primitif adalah nama dan nomor), tentang fakta bahwa mereka berinteraksi dengan jumlah titik file aktif di sekitar tapi semuanya bosan.

Kesimpulan


Anda tahu, saya tidak akan mengatakan betapa buruknya mereka, saya tidak akan mengatakan betapa baiknya mereka. Semua orang akan membuat kesimpulan untuk dirinya sendiri. Kelemahan kritis, kerentanan, dan hal-hal mata-mata yang telah saya uraikan kepada Anda. Saya hanya dapat mengatakan bahwa, meskipun ada tenggat waktu, dalam hal apa pun pengembangan aplikasi yang jelas tidak boleh diizinkan.

Saya tidak bisa tidak memperhatikan kohesi masyarakat. Semua orang mulai membagikan temuan mereka, menjadi aktif, dan siapa yang tidak bisa melakukan ini - masukkan 1 di ulasan. 4207 unit saya catat sebanyak mungkin dan tidak ada (menurut saya) peringkat lain.

Pesan khayalan yang sama dengan konsep dan kesimpulan asli pada dukungan ada di saluran Telegram saya , dan itu adalah di antara tautan di profil.

Hal terakhir yang ingin saya tunjukkan kepada Anda adalah bahwa ini adalah fungsi "ilegal" mendapatkan alamat MAC dari kode mereka dan sama pada stackoverflow (terima kasih ntoskrnl):

Dan seperti biasa, terima kasih sudah membaca sampai di sini!

PS Siapa pun dapat membuat kesalahan dan saya tidak terkecuali. Mungkin ada sesuatu yang salah, mungkin tidak terlalu memahami implementasinya. Sekarang mereka akan datang dan mengatakan bahwa selama pendaftaran IP diingat dan tidak mungkin untuk melakukan permintaan kepada orang lain, ya ?! Dan saya akan menjawab bahwa itu omong kosong dan kemudian pemiliknya sendiri akan kehilangan akses ketika menghubungkan kembali ke jaringan seluler ... Secara umum, Anda mengerti, komentarnya terbuka!

All Articles