Untuk meringkas tahap online NeoQUEST-2019 : di bawah pemotong kami akan berbicara tentang tugas, lihat statistik kemajuan mereka dan pujilah pemenang!
Penafian: produk mungkin mengandung jejak kacang dan spoiler bagi mereka yang belum menyelesaikan tugas, tetapi jujur akan (dan ada peluang seperti itu - situs on-line terus bekerja!). Ini tidak disarankan untuk digunakan jika Anda belum menunjukkan ketekunan yang cukup untuk mendapatkan semua kunci sendiri.
Siapa yang terbaik?
Jadi, tahun ini pemenang kami adalah:
Posisi Pertama - AV1ct0r, 952 poin;
Posisi Kedua - OLD_NA_MESTE, 766 poin;
Posisi Ketiga - gurgenhopar, 505 poin.
Anak-anak menghormati dan menghormati! Perlu dicatat bahwa pemenang 1-2 tempat sudah ditentukan sejak hari pertama kompetisi, dan tidak memberikan posisi mereka kepada siapa pun (kecuali bahwa mereka saling bertukar tempat). Tetapi perjuangan untuk tempat ketiga itu panas: kadang-kadang peserta "perunggu" berubah beberapa kali sehari!
Tiga besar sedang menunggu hadiah yang layak, dan semua yang telah menyelesaikan setidaknya satu tugas secara penuh adalah suvenir dari tim NeoQUEST! (ya, omong-omong: jika Anda telah menyelesaikan setidaknya satu tugas, tetapi belum memberi tahu kami bagaimana Anda ingin menerima hadiah - sekarang adalah waktu untuk melakukan ini dengan menulis ke support@neoquest.ru )
Ungkapkan Rahasia
Untuk para peserta, kami menyiapkan 10 tugas, beragam dalam kompleksitas dan topik. Kami akan menceritakan beberapa detail, dan sisanya akan segera dirilis di Habré dalam bentuk artikel terpisah!
Tugas nomor 1 - "Nemean echo"
Dalam tugas ini, para peserta diberikan apa yang disebut server gema, yang dapat Anda sambungkan ke port tertentu dan mengirim data. Sebagai tanggapan, server mengirim sama dengan yang dikirim kepadanya. Bendera terletak di server, dan itu harus diperoleh hanya dengan alamat IP dan porta.
Penugasan No. 2 - “Lembut dan Lembut”
Ceritanya dangkal - informasi yang sangat penting bocor ke jaringan. Peserta diberikan dua file: file biner itu sendiri, yang menghasilkan lalu lintas yang bocor, dan dump pcap dari lalu lintas ini. Bendera dalam dump pcap, tetapi dalam bentuk terenkripsi, dan Anda perlu membuka zip file biner untuk mendekripsi data dan mendapatkan bendera.
Tugas pembekalan nomor 1 dan nomor 2 akan memisahkan Habrastatami!
Tugas nomor 3 - "Komunikasi dengan surga"
Hampir semua peserta berhasil membangun koneksi surgawi, tugas menjadi pemimpin dalam kemampuan lintas negara. Data awal - tautan ke bot telegram.
Langkah pertama adalah menambahkan bot dan membaca deskripsinya. Dikatakan bahwa bot “membeku” di jejaring sosial favoritnya dan tidak di tempat lain. Untuk semua upaya untuk setidaknya berbicara dengan dia, bot menolak dan memintanya untuk menulis kepadanya di Olimpia. Kami pergi ke alamat yang ditunjukkan oleh bot dan sampai ke halaman dengan otorisasi di jaringan sosial "ilahi" (tidak).
Saat berkomunikasi dengan bot, Anda dapat menerima pesan berikut: "Saya tidak mengikuti tautan asing!", Yang mungkin memberi kami gagasan bahwa bot mungkin mengikuti tautan yang sudah dikenalinya.
Ketika Anda mencoba untuk pergi ke suatu tempat selain halaman otorisasi (untuk halaman indeks, misalnya), kami mengarahkan dengan cara yang menarik (pada kenyataannya, ini dilakukan di banyak situs, tetapi mereka biasanya menyaring parameter berikutnya):
login? selanjutnya = indeks
Hal pertama yang terlintas dalam pikiran: "Apakah tidak ada OpenRedirect-a?" Ya, tapi itu hanya berfungsi untuk pengguna resmi di jejaring sosial, yang merupakan dewa cemoohan dan fitnah, Bu , karena terus duduk di dalamnya. Ya, mari kita tingkatkan situs kami, sebagai parameter berikutnya, berikan tautannya dan lihat apakah bot mengklik tautan itu? Kami dengan cepat meningkatkan situs apa pun di hosting gratis. Kami melayani bot:
http://213.170.100.214?next=https://your.freeapp.kek/
Bot tidak mencapai halaman, pengalihan tidak berfungsi. Itu semua adalah masalah filter, pengembang yang malang memeriksa untuk melihat apakah parameter berikutnya berisi http atau https substring, berharap untuk mengarahkan pengguna hanya dalam domain mereka. Naif. Kami mengirim:
http://213.170.100.214?next=//your.freeapp.kek/
III ... bot masuk ke situs kami! Tetapi tidak ada hal lain yang terjadi. Bot masuk, melihat, dan pergi (pada hari pertama tidak demikian, karena bot memiliki bug: kami mengirim cookie dengan sesi setelah pengalihan ke situs web penyerang, yang membuat tugas sedikit lebih mudah, pada hari kedua, celah ditutup pada hari kedua).
Namun, jika Anda membuat salinan halaman otorisasi, bot akan berpikir bahwa itu adalah login dan masuk ke halaman Anda. Kami menyalin sumber daya dari halaman otorisasi jaringan sosial dan membuat halaman phishing. Di server, kami menulis ke log semua login dan kata sandi yang dimasukkan. Kami mengirim tautan ke bot, dan secara tidak sengaja masuk ke halaman palsu.
Kami mengambil nama pengguna dan kata sandi dan masuk ke jejaring sosial, kami mendapatkan kuncinya. Sukses!
Untuk tugas ini, penulisan ditulis oleh salah satu peserta kami, mr_umnik , baca di sini .
Tugas nomor 4 - "Crypto Crypto"
Misi keempat "Crypto Crypto" didedikasikan, cukup aneh, untuk kriptografi! Dan ini bukan tentang RSA CTF tradisional, tetapi tentang sandi Dunia Kuno, ketika seni kriptografi baru dalam masa pertumbuhan.
Jadi, arsip dengan tiga file diberikan. Isi dari file pertama termasuk teks yang dapat dibaca dan baris terenkripsi:
Gunakan kebijaksanaan yang dewi telah berikan kepada Anda.
5fw909zcmxsc7sxn1m6m86wxs2xrhrx78r72333mms8rlkg1u41o4dm82n632n2c2s8r17nwx3673c6hnh8n8x3mn7dwrrdswmxm1nc3wc681dc
Muncul pertanyaan, dewi seperti apa yang sedang kita bicarakan? Mari kita beralih ke legenda. Satu-satunya referensi adalah penyebutan seorang wanita bijak di helm dengan tombak di tangannya, digambarkan pada medali Cerberus. Pakaian seperti itu sesuai dengan dewi kebijaksanaan Athena, yang segera menyarankan penggunaan kata sandi affine konsonan. Kekuatan kasar tua yang baik diizinkan untuk mendekripsi pesan rahasia:
modulus 9b6598564ebfb1fd6576cac681c87000bb51
Ciphertext 2b174f07479751ce84d60f809fa4a14160b482dcc25db6be490d9f1e2efcb29196
Lalu apa yang harus dilakukan selanjutnya? Mungkin file kedua akan memberikan informasi lebih lanjut? Jadi isinya:
Apa kode kuno lain yang akan muncul di benak Anda? Mari kita mulai dengan yang sederhana ...
35ub2b9slmkjonnqtsokomumqnphkinmrqlqoyz4aayvr4tzv4ax8vv19xrcvb9ayv6fayrx58vr4ayv58v3r4uayvtyv4v9v68v9v4avuayvtyz4v9v5vv
Cipher pertama yang muncul di pikiran adalah cipher Caesar . Untungnya, dan itu dapat dengan mudah didekripsi! Kami mendapatkan:
modulus b45327669cb7375d596803165a9497
petunjuk Orang-orang Yunani kuno memberi kita teorema Pythagoras dan orang Cina mempresentasikan teorema Cina tentang Anda tahu apa
Ya! Ini sebuah petunjuk! Selain itu, menyarankan teorema sisa Cina . Teorema ini menyatakan bahwa bilangan bulat tertentu dapat direkonstruksi dari himpunan residu dari pembagian dengan angka-angka dari himpunan bilangan prima yang saling berpasangan.
Jadi, begitu, begitu, kami memiliki 2 modul, serta Ciphertext tertentu. Mungkin Ciphertext ini adalah integer yang dikembalikan sama? Kemudian, untuk menemukan sisa-sisa, cukup dengan hanya membawa Ciphertext ke dalam dua modul yang kita kenal. Kami mendapatkan:
Residu 1: C1 = Ciphertext mod (modulus 1) = 8b53bd874ebfb1fd6576cac681c86ffc36e7
Residu 2: C2 = Ciphertext mod (modulus 2) = 14327669cb7348d59680c6595418
Apa yang harus dilakukan selanjutnya? Mari kita perhatikan file ketiga:
Kami memiliki dua modul yang saling sederhana, satu ciphertext rahasia, petunjuk tentang beberapa teknologi Cina dan ... pencetakan Sparta Kuno.
Bukannya itu cadangan yang diperlukan untuk memecahkan teka-teki, tetapi karena saya mulai mengumpulkan petunjuk, sulit untuk berhenti ... Mungkin sudah waktunya untuk mulai menyelesaikannya?
Segalanya tampak ada di tempatnya ... kecuali cetakan Sparta Kuno. Kenapa dia ada di sini? Mungkin ada sandi semacam itu? Memang, sandi Sparta Kuno juga disebut sandi Szital .
Mari kita coba mendekripsi residu yang dihasilkan. Sebagai hasilnya, kami memilih mereka yang potongannya bertepatan dengan potongan-potongan bendera yang diberikan dalam legenda. Sebagai hasilnya, kami menerima:
M1 = 88b78fb7161c54fcc33eda86bb6c6edf56f7
M2 = 19d64c553b9927657384640168c8
Kemudian bendera terakhir berupa:
NQ2019 88b78fb7161c54fcc33eda86bb6c6edf56f719d64c553b9927657384640168c8
Tugas nomor 5 - "huruf Apple"
Menurut legenda, kami memiliki data berikut: gambar dari webcam yang bertuliskan "Robert B. GmbH". Dan juga - file dengan beberapa konten aneh. Untuk mendapatkan kunci, Anda harus mengisi bidang formulir berikut:
Selain itu, pahlawan legenda mengisyaratkan bahwa gambar itu adalah petunjuk ke nomor telepon, dan file tersebut entah bagaimana harus membawa kita ke id kamera.
Kami akan berurusan dengan gambar pertama. Pencarian di Internet tidak menghasilkan apa-apa. Tetapi tulisan "Robert B. GmbH" setelah permintaan pertama di Google memberi tahu kita bahwa pembuat kamera ini adalah perusahaan Jerman Bosch, pendiri di antaranya adalah Robert Bosch. Dan kemudian saatnya untuk mengingat bahwa dalam formulir web di dekat bidang "Telepon" ditandai "(.gr)". Ya, aksinya berlangsung di Yunani, itu masuk akal. Oleh karena itu, setelah beberapa pertimbangan, kami beralih ke situs Bosch Yunani . Dan nomor telepon yang tertera di sana ( +30 210 5701360 ) adalah yang kami butuhkan!
Kami meneruskan ke file kedua. Ini memiliki jenis entri:
... c6d1eb6f29d739176bdbe79c3d3b504c9d64fecb ... olympic_shot.png
Kami harus menebak bahwa kami memiliki tautan magnet dalam formatnya yang paling sederhana, di mana ada hash yang digunakan dalam jaringan BitTorrent yang paling umum! Tetap mengembalikan format tautan magnet dengan benar.
magnet :? xt = urn: btih: c6d1eb6f29d739176bdbe79c3d3b504c9d64fecb & dn = olympic_shot.png
Kami menambahkan tautan ini ke klien torrent, mengunduh gambar:
Pada pandangan pertama, tidak ada yang istimewa di dalamnya, tetapi jika Anda melihat lebih dekat, Anda dapat melihat bahwa seorang guru di sekolah Yunani kuno tidak mengarahkan jarinya pada kekosongan, tetapi pada tautan yang cukup valid ke grup VKontakte.
Di grup kami menemukan pos dengan bagian tugas selanjutnya. Penting untuk mengunduh file yang ditulis dalam C dari dokumen dan menemukan sintaks dan kesalahan semantik di dalamnya. Dalam file itu sendiri, Anda dapat mengamati interpretasi aneh dari mitos Yunani kuno.
Kode sumber c#include "AncientGreece.h" void eat (int who, int *whom) { *whom = 0; } int BirthOfAthena() { int Zeus = 10000; int Metis = 1000; int Athena = Zeus + Metis; eat(Zeus, &Metis); Athena = 0; bool headache = TRUE; int kick = -1000; do { kick++; if (kick = Athena) { Athena = 1000; headache = FALSE; } } while (headache); return Athena; } int ApplesOfTheHesperides() { int labour = 0; int Heracles = 100; int heaven = 100000; int Atlas = 1000; int golden_apples = 8222; bool trick = TRUE; while(!Heracles_is_here) { Atlas = Atlas + heaven; if (labour == 10) break; labour++; } Heracles_is_here = TRUE; Atlas = Atlas - heaven; Heracles = Heracles + heaven; Atlas = Atlas + golden_apples; trick = TRUE; Atlas = Atlas - golden_apples; Heracles = Heracles - heaven; Atlas = Atlas + heaven; return Heracles + golden_apples } void BirthOfZeus() { int Cronus = 1000; int newborn_gods[] = {1000, 1000, 1000, 1000, 1000, 1000}; int i = 0; for (i = 0; i < 6; i++) { eat(Cronus, &newborn_gods[i]); } int Zeus = newborn_gods[6] + 10000; bool battle = TRUE; bool peace = FALSE; int Thetis = newborn_gods[0] + 1000; int Hera = newborn_gods[2] + 1000; int Hades = newborn_gods[3] + 1000; int Demeter = newborn_gods[1] + 1000; int Poseidon = newborn_gods[4] + 1000; Cronus = 0; battle = FALSE; peace = TRUE; } void main() { BirthOfZeus(); BirthOfAthena(); ApplesOfTheHesperides(); }
Kami menemukan fungsi utama () dan memahami bahwa perlu untuk mempertimbangkan fungsi-fungsi dalam urutan panggilan mereka di main (). Angka-angka dalam tugas ini memiliki arti sendiri: orang yang belum lahir / mati / dewa ditunjuk oleh angka 0, orang dengan angka 100, semua dewa dan titans - 1000 dan Zeus the Thunderer adalah 10.000.
Pergi ke fungsi BirthOfZeus (). Adalah logis untuk berasumsi bahwa fungsi ini berbicara tentang kelahiran Zeus, serta tentang perjuangannya untuk mendapatkan kekuasaan. Jadi, setelah membaca mitos kelahiran Zeus, kita melihat kodenya, dan kita melihat bahwa siklus dari 0 hingga 6 dalam kasus ini adalah kesalahan semantik - Kronos memakan bukan lima anaknya, tetapi hanya lima. Masih memahami bagaimana membuat kunci dari ini: kunci dikompilasi oleh nomor baris dengan kesalahan. Bagian pertama dari kunci - nomor baris - adalah 60. Kami pindah.
Kesalahan berikutnya menunggu kita di baris nomor 64 - semuanya sederhana, melampaui batas array.
Kesalahan berikutnya pada baris 67. Faktanya adalah bahwa Thetis, yaitu dewi Thetis, bukanlah putri Kronos dan saudara perempuan Zeus. Sebaliknya, harus ada dewi Hestia.
Dalam fungsi BirthOfAthena (), kesalahan menunggu kami untuk sangat berhati-hati: dalam kondisi pada baris 20, satu tanda sama dengan ditulis, dan menurut standar bahasa C, dua tanda sama diperlukan untuk perbandingan.
Fungsi yang paling rumit adalah ApplesOfTheHesperides (). Cabang dari tugas langsung secara harfiah muncul segera. Mengapa int golden_apples = 8222? Belum jelas.
Pos VKontakte juga memiliki beberapa kiat untuk tugas ini:
1) Di mana mencari jawabannya? Dalam pembukaan, yang terjadi pada tanggal 1 Maret.
Dengan melihat secara singkat peristiwa-peristiwa pertama Maret (atau Anda dapat segera menemukan apa yang Anda butuhkan dengan mengingat pos dan penyebutan alkimia) adalah penemuan Tabel Periodik D. I. Mendeleev. Bagus, teruskan!
2) Apa yang harus digunakan saat menyusun bagian kunci? (catat lokasi puzzle dalam teks)
• Apa yang menyatukan tiga kata berikut: Mnemosyne, Ocean, Huygens?
• Siapa yang memberi orang api?
Google dan temukan jawabannya: TITAN OF PROMETHES. Seperti yang dinyatakan dalam tugas, ini akan membantu dalam menyusun kunci. Masih harus memahami mengapa tepatnya 8222. Tidak sia-sia kami mencari informasi tentang tabel periodik: jelas bahwa jawabannya harus dicari di sana. Mengingat kimia, kami menemukan nomor seri emas = 79.
Tapi bagaimana dengan apel? Mungkin, kimia juga akan berguna di sini. Kami mengetahui bahwa apel mengandung paling banyak kalium. Nomor seri adalah 19. Kami mendekati rahasia besar: mengapa 8222, dan bukan 7919? Tentu saja, kode Caesar tua yang baik. Kami menggeser setiap elemen 3 ke kanan, kami mendapatkan nilai kami 8222.
Ada sedikit kiri: untuk mengenkripsi TITAN dari PROMETEI sesuai dengan tabel periodik. Kedua elemen ini ada dalam tabel, kita mendapatkan: 2564. Hebatnya, kita melanjutkan ke penemuan lebih lanjut dari kesalahan dalam kode.
Dalam fungsi yang sama, variabel yang tidak diinisialisasi diharapkan di baris 38, kesalahan semantik di baris 41 (itu adalah prestasi Hercules 12!) Dan tidak adanya titik koma di baris 52. Fuh, kami berhasil. Kode yang dihasilkan = 606467202564384152. Ini adalah id dari kamera kami. Aneh, tetapi di Yunani kuno itu tidak terjadi.
Kami memasukkan dua nilai ini ke dalam formulir, kami membuktikan kepada seluruh dunia bahwa kami bukan robot, dan kami mendapatkan kunci berharga!
Tugas nomor 6 - "Goes, the bull, sways"
Tugas nomor 6 tahun ini sangat sulit, tetapi menarik. Kami akan menganalisisnya secara rinci di Habrastatya yang terpisah, tetapi untuk saat ini, katakan secara singkat: Anda harus bermain dengan Minotaur menggunakan aplikasi di mana ada sesuatu yang hilang.
Tugas nomor 7 - "Anda lebih tajam? Tidak, cepat! "
Dalam tugas ini (yang juga akan menjadi tulisan terpisah!), Para peserta diminta untuk berurusan dengan aplikasi yang mengenkripsi data yang dimasukkan menggunakan nilai parameter accelerometer perangkat yang diambil sambil menekan tombol pada keyboard. Untuk menyelesaikan tugas, perlu memasukkan berbagai data ke dalam aplikasi, dan dengan hati-hati menganalisis bias yang dihasilkan.
Tugas nomor 8 - "The Divine Interpreter"
Peserta reguler kami mungkin telah mempelajari tugas ini - tugas ini tetap ada sejak tahun lalu. Kemudian tidak ada yang melewati bagian kedua, dan kami memutuskan untuk memberinya kesempatan kedua. Menurut bagian pertama dari penugasan, ada Tulisan kami di Habré, di mana ia terutama bercerita tentang pencarian kerentanan. Tahun ini fokus penugasan tidak difokuskan pada pencarian, tetapi pada eksploitasi kerentanan - dan untuk ini kami, sekali lagi, akan memilih Habrastaty yang terpisah.
Intinya adalah bahwa program juru bahasa perintah sedang berjalan di port jaringan server. Biner program terlampir pada tugas. Server menjalankan Windows Server 2016, dan di antaranya, mekanisme perlindungan CFG disertakan di sana. Semua yang diketahui tentang kuncinya adalah bahwa ia terdiri dari 70 karakter dan terletak pada file key.txt di sebelah executable di server.
Tugas №9 - “Permainan di dalam kotak”
Dalam penugasan ini, kami memiliki dua server. Anda dapat mengirim arsip RAR ke server No. 1, yang dibongkar di sana, dan dapat membantu menyembunyikan kunci di server No. 2.
Tugas nomor 10 - "Jangan pukul, Odysseus"
Tugas ini adalah salah satu yang paling sulit - hanya satu peserta yang menguasainya. Data awal - arsip dengan infrastruktur jaringan, semua file yang diperlukan yang dienkripsi. Dan jika dienkripsi, maka hanya ada satu cara - untuk mendekripsi!
Tugas pembekalan nomor 9 dan nomor 10 juga akan memisahkan Habrastatami!
Ilmuwan Inggris telah mapan
Statistik kecil tahun ini:
- Jumlah peserta terdaftar adalah 1014 orang.
- Jumlah tugas yang diselesaikan - 10/10
- Jumlah peserta yang menyelesaikan setidaknya satu tugas secara penuh adalah 33.
Jumlah kunci yang valid untuk setiap tugas
Jumlah kunci yang valid untuk setiap hari kompetisi
Untuk seluruh periode fase online NeoQUEST-2019, 94 kunci diterima.
Apa selanjutnya
Dan kemudian - "Konfrontasi" pada tanggal 26 Juni di St. Petersburg, yang akan menjadi tuan rumah final kompetisi kita! Kami menunggu semua peretas terbaik untuk memastikan bahwa Anda benar-benar yang terbaik! Dan tentang mereka yang tidak datang, kita akan berpikir seperti ini ...
Ikuti berita di situs web acara musim panas!