Cara menganalisis tautan untuk mengetahui tautan yang sebenarnya

13

Terkadang saat mengunduh sesuatu, saya menemukan tautannya bukan yang langsung ke file.

Misalnya, ini adalah tautan untuk mengunduh file PDF:

http://ishare.down.sina.com.cn/15181391.PDF?ssig=2jEFaNQs7K&Expires=1312905600&KID=sina,ishare&IP=1312761745,68.50.222.

Saya bertanya-tanya bagaimana cara mencari / meretas tautan yang sebenarnya (yaitu http: //*.PDF) ke file?

Apa nama untuk teknik ini dan yang serupa dengan tidak menampilkan tautan langsung? Beberapa referensi, seperti Wikipedia, ...?

Tim
sumber
1
Memperbaiki tautan Anda. Klik edituntuk melihat sumber penurunan harga untuk cara saya melakukannya.
Joel Coehoorn

Jawaban:

3

Ya, terkadang .

Ada dua hal yang biasa terjadi. Tautan Anda tidak berfungsi lagi, jadi saya tidak yakin dengan skenario yang sebenarnya dalam kasus ini, jadi saya akan meringkas pada tautan lain.

Pengalihan HTTP

Ini adalah apa yang Anda lihat Bit.lydan layanan lainnya. Yang kemudian dilakukan adalah memberikan respons pengalihan HTTP. Saat Anda mengunjungi http://bit.ly/oH3410, ia mengalihkan ke URL yang sebenarnya. Terkadang satu URL dialihkan ke yang lain. Anda dapat melihat ini terjadi jika Anda mencolokkan URL ke http://web-sniffer.net/ atau dengan menggunakan [curl][1] -I http://bit.ly/oH3410Anda akan melihat mengembalikan 301 menunjuk ke Lokasi baru.

Jadi untuk berurusan dengan Pengalihan HTTP Anda hanya perlu mengulang permintaan HTTP HEAD sampai Anda berhenti mendapatkan respons di 300-an (semoga mendapatkan 200). Perlu diingat bahwa mungkin mereka akan mengarahkan ulang dalam satu lingkaran, yang tidak akan pernah berakhir. Anda dapat melakukan ini dengan CURL atau alat HTTP apa pun.

Halaman Pengunduh

Inilah yang digunakan sebagian besar situs unduhan. Anda mengklik tautan unduhan dan membawa Anda ke halaman dengan banyak iklan dan mengatakan "Unduhan Anda akan segera dimulai" sesuatu yang serupa. [ Contoh ]. Dengan ini, Anda dapat mencoba mem-parsing tautan langsung yang sebenarnya dari URL, tetapi itu akan menjadi spesifik situs, dan sebagian besar situs tidak akan memasukkannya untuk mencegah Anda mengelak dari itu. Ini dilakukan baik melalui meta http-equiv="refresh"tag di header, atau JavaScript (paling umum). JS biasanya memiliki header fallback.

Ada solusinya. Jika Anda melihat sumber pada halaman unduhan, biasanya Anda akan melihat <meta http-equiv="refresh">tag (biasanya dalam <noscript>tag) dengan atribut URLyang mengarah ke unduhan aktual. Jadi gunakan CURL (atau alat HTTP lainnya) untuk mengunduh halaman, menguraikannya, dan ambil nilainya. Suatu situs dapat mengecualikan ini jika mereka ingin benar-benar jahat, sehingga mengharuskan Anda memiliki JavaScript untuk mengunduh file.

Mungkin juga ada blok JavaScript yang terhubung ke unduhan. Mungkin dikaburkan, atau ditautkan dari URL lain. Jarak tempuh Anda mungkin berbeda saat mencoba menguraikannya. Mungkin juga ada "tautan langsung" di halaman. Anda dapat mencoba beberapa teknik untuk menemukan itu, tetapi sekali lagi itu dapat dikaburkan melalui JavaScript atau bahkan hilang bersama-sama.

Jim McKeeth
sumber
11

Itu mungkin tidak mungkin. Situs-situs tersebut dapat memberi Anda seratus pengalihan sebelum Anda sampai ke file.

Selain itu, javascript dapat digunakan untuk memberikan tautan berdasarkan URL yang diberikan ke server.

soando
sumber
Terima kasih! Apa nama untuk teknik ini dan yang serupa dengan tidak menampilkan tautan langsung? Beberapa referensi, seperti wikipedia, ...?
Tim
1
Hanya pengalihan. tidak tahu teknik lainnya. Lihat di sini
soand
Ketika tautan ke file dan seperti bertentangan dengan halaman biasa, biasanya disebut anti-lintah .
Synetech
7

Situs ini dapat dibuat skrip, dan ketika mendapat perintah tertentu (URL dapat melewati perintah), maka mungkin akan mengembalikan file PDF (atau file lain), tanpa mengarahkan ulang. Ada hal sisi server dan tergantung pada bagaimana situs dikodekan. Tanpa benar-benar meminta tautan itu dari server, kecil kemungkinan Anda bisa mengetahui cara mendapatkan file tersebut. Dan terkadang bahkan jika Anda tahu URL langsung, Anda mungkin tidak memiliki izin untuk mengakses tautan langsung. Beberapa situs diberi kode sehingga tautan langsung tidak akan berfungsi.

Ben Richards
sumber
1
Ini benar. Tambahan kecil: ketika klien mengakses tautan yang tidak jelas seperti itu dan server ingin memberi tahu klien bahwa ini sebenarnya adalah file pdf dan itu harus disimpan sebagai file pdf - server memberitahukannya kepada klien melalui Content-Type HTTP tajuk.
vtest
3

Ini adalah URL "benar" seperti untuk situs web yang terlindungi dengan baik, Anda harus menyerahkan URL lengkap untuk server untuk mengotentikasi permintaan Anda. Anda mungkin diarahkan ke URL lain setelahnya, tetapi biasanya akan menjadi satu kali. Dengan kata lain, situs-situs pengunduhan file ini tidak akan pernah memberi Anda tautan langsung yang bisa lintah.

Dalam URL khusus ini, parameter, yang dilindungi oleh tanda tangan digital, secara jelas mencantumkan waktu dan batasan IP dari pengunduh. Untuk situs web dengan tingkat kompetensi ini, tidak mungkin ada tautan langsung yang bocor.

billc.cn
sumber
3

Tautan pengalihan ini juga sering dikaitkan dengan status sesi. Mereka akan melakukan pengecekan pribadi, berdasarkan login sesi Anda, sebelum memberi Anda tautan - tidak ada akses ke sumber daya = tidak ada akses tautan ke sumber daya. Ini dapat digunakan untuk menyediakan akses ke file / sumber daya yang berada di luar root web, dan dialirkan kembali ke pemohon oleh aplikasi, daripada tersedia melalui URL langsung. Tetapi hanya jika privs Anda mengizinkannya.

Contoh keduanya ada di sini. Ini akan mengarahkan Anda kembali ke URL lain, berdasarkan string 'mkoenig' yang menambahkan parm URL tambahan. Arahan ulang dilakukan dalam pengkodean sisi-server, yang tidak dapat Anda lihat (atau paling tidak tidak seharusnya). Jika Anda kemudian pergi ke 'file Web', file yang terdaftar hanya file yang guru buat publik. Dia mungkin memiliki file lain di luar sana yang tidak bisa Anda dapatkan, dan yang tidak akan terdaftar. Itu juga ditangani pada pengkodean sisi server, sehubungan dengan apa yang akan / tidak akan kembali.

Tanpa meretas server atau memiliki akses ke kode sumber sisi server, saya tidak percaya Anda bisa mendapatkan tautan yang sebenarnya, dan bahkan jika Anda bisa, itu mungkin tidak membantu kecuali sesi privat Anda memberi tahu server untuk memberi Anda akses ke sana .

Greg

gthomson
sumber
2

Seperti di atas, itu tidak mungkin. Saya sarankan Anda menjalankan VM atau mengambil salinan Sandboxie untuk memuat browser Anda untuk tautan seperti itu.

Edit

Tidak tahu sistem operasi yang Anda gunakan, saya akan memberikan jawaban umum di sini.

VM adalah kependekan dari mesin virtual. Ini pada dasarnya perangkat lunak yang dibuat komputer yang berjalan di dalam komputer Anda. Mesin virtual akan memiliki sistem operasi dan browser sendiri. Meskipun masih menggunakan internet dan harddive komputer Anda, ini adalah mesin yang terpisah dari sudut pandang OS. Sehingga membuatnya nyaman seperti selembar kertas gores. Apa pun yang terjadi di dalam VM tidak memengaruhi mesin Anda yang sebenarnya.

Virtualbox adalah perangkat lunak yang saya sarankan Anda dapatkan untuk VM, kecuali jika Anda menggunakan Windows, maka saya akan merekomendasikan Virtual PC.

Sandboxie seperti VM, tetapi hanya mengisolasi aplikasi tertentu. Anda dapat memerintahkannya untuk menjalankan salinan browser Anda dan semua file atau tindakan yang dilakukan browser diarahkan ke folder sementara pada dasarnya. Jadi jika ia mencoba mengunduh virus, ia akan dialihkan ke folder sementara yang dikarantina dari sisa mesin Anda. Ini tidak sekuat VM, tetapi menggunakan lebih sedikit CPU / Memori dan lebih cepat dan lebih nyaman.

Saya akan mencoba Sandboxie pertama. Ini kurva belajar yang lebih kecil.

surfasb
sumber
1
Terima kasih! Apa yang Anda maksud dengan "jalankan VM atau ambil salinan Sandboxie untuk memuat browser Anda untuk tautan seperti itu"? Beberapa referensi menjelaskan bagaimana melakukan kedua hal tersebut?
Tim
Maaf, saya akan memperluas jawaban saya.
surfasb
Terima kasih! OS saya adalah Ubuntu. Tapi saya tidak mengerti bagaimana menggunakan VM dapat mengidentifikasi tautan langsung?
Tim
1
Itu tidak benar-benar mengidentifikasi tautan untuk Anda. Tapi itu menciptakan lingkungan yang aman yang akan membantu Anda mengidentifikasi tautan. Anda tidak dapat mengidentifikasi arahan tanpa kompilasi halaman.
surfasb
1
Saya tidak berpikir pertanyaannya mengenai keamanan. Dia hanya mencari cara untuk mendapatkan tautan file langsung.
magnattic
2

Tidak pernah mungkin untuk mengetahui tautan yang sebenarnya.

Server menangani permintaan file, menggunakan beberapa WWW Rewrite (untuk server apache, misalnya), jadi misalnya, Anda dapat membuka halaman www.example.com/13-this-site-has-nice-page-name.html, tetapi pada kenyataannya Anda dapat mengakses beberapa file php, dengan parameter, seperti:www.example.com/site_handler.php?UID=13

bahkan jika Anda mengakses file pdf, mungkin ada pengalihan di sisi server itu sendiri.

Untuk unduhan file dengan penangan, ini mungkin sedikit lebih rumit, karena Anda dapat pergi ke halaman yang hanya penangan unduhan, misalnya: www.example.com?file_downloader.php?param1=7683&param2=jld8ijn, etc... Dalam hal ini, skrip yang Anda akses dapat dikirim dengan satu tajuk (seperti file pdf), tetapi pada kenyataannya semua ini adalah file php

sebagai kesimpulan: Anda tidak akan pernah tahu bagaimana server & skrip dikonfigurasikan, sehingga Anda tidak akan pernah tahu alamat asli yang sebenarnya, bahkan jika sepertinya Anda tahu.

Itai Sagi
sumber
1

Saat Anda mengirim permintaan ke server web (klik tautan), server dapat mengirim sejumlah respons berbeda. Contoh umum adalah 404 (halaman tidak ditemukan), 403 (dilarang), atau 500 (kesalahan server). Mungkin kode respons yang paling umum adalah 200 (Oke), tetapi Anda tidak akan pernah melihatnya karena umumnya disertai dengan halaman yang ingin Anda lihat.

Ada beberapa kode lain yang sedang dimainkan di sini: 301 dan 302. Kode 301 dan 302 adalah kode pengalihan, dan mereka memberi tahu peramban Anda bahwa respons yang Anda inginkan telah pindah ke lokasi lain. Perbedaan utama di antara mereka adalah bagaimana browser melakukan cache. Kode 301 berarti "pindah secara permanen", dan saat berikutnya Anda mencoba mengunjungi tautan asli, peramban mungkin ingat bahwa laman telah pindah dan langsung menuju ke lokasi baru. 302 berarti "Ditemukan di tempat lain" dan akan memberikan tautan yang hanya boleh digunakan browser Anda sementara.

Seharusnya dimungkinkan untuk menulis sebuah program yang akan memeriksa tautan, dan selama Anda terus mendapatkan 30x tanggapan, ikuti tanggapannya, sampai akhirnya mendapatkan angka 200. Pada titik ini, alih-alih mengunduh konten, program harus memperlihatkan tautan tersebut kepada Anda.

Sayangnya, ini juga lebih rumit dari itu. Halaman Html juga dapat mengarahkan ke lokasi baru menggunakan tag meta di bagian kepala halaman yang terlihat seperti ini: <meta http-equiv="refresh" content="0;url=NEW PAGE URL" />. Jadi program seperti itu sudah harus sepenuhnya mem-parsing html untuk memastikan kita mencapai redirect terakhir.

Selain itu, halaman dapat mengarahkan Anda lebih lanjut menggunakan javascript, dan javascript mungkin dikaburkan. Jadi sekarang program hipotesis kami juga harus mengerti javascript. Pada titik ini kami memiliki browser web yang berfungsi penuh. Kami kehilangan detail kecil untuk menampilkan halaman di layar, tetapi program kami memiliki hampir semua yang Anda perlukan untuk browser web lengkap, termasuk semua masalah keamanan yang menyertainya. Anda tidak lagi lebih baik daripada jika Anda baru saja mengklik tautan itu secara normal.

Joel Coehoorn
sumber
1

Dengan asumsi Windows: Instal Fiddler Web Debugging Proxy , aktifkan. Lalu navigasikan ke URL awal Anda dan tonton semua pengalihan di panel kiri Fiddler. Di panel kanan ganti tab untuk menampilkan "Minta tajuk" dan "Tajuk respons". Saya telah berhasil menggunakannya untuk tujuan itu.

Di sisi lain, URL "final" saja mungkin tidak berfungsi dengan cara yang sama jika Anda menjelajahinya secara langsung karena permintaan tersebut mungkin tidak memiliki perujuk yang tepat atau melewatkan beberapa batasan lainnya.

Tetapi Anda bahkan dapat mengirim permintaan khusus dengan header khusus di Fiddler. Lihat tab "Pembuat Permintaan" untuk itu.

oleschri
sumber
0

Ini sebagian besar tergantung pada situs.

Untuk melakukan ini, Anda harus mempelajari setiap situs secara individual dan memiliki mekanisme (atau kode) terpisah untuk setiap situs untuk mengembalikan URI langsung.

Anda juga dapat mempelajari beberapa add-on browser open-source yang menyediakan fungsionalitas serupa.

bhagya
sumber
0

Untuk memeriksa di mana tautan mengarahkan Anda ke Anda dapat menggunakan http://longurl.org/ . Ini sangat berguna untuk URL singkat. Tidak ada gunanya untuk unduhan skrip dll.

Omar Kohl
sumber
0

Jika Anda menggunakan Firefox, Anda dapat menggunakan addon bernama RequestPolicyyang, antara lain, akan berhenti sebentar dan meminta izin kepada Anda setiap kali Anda diarahkan ke domain lain. Ini tidak akan berfungsi jika Anda ingin menemukan pengalihan yang tidak pergi ke domain yang berbeda, tapi saya yakin ada Addon Firefox yang berbeda untuk yang saya tidak tahu tentang =)

https://www.requestpolicy.com/

Perhatikan bahwa ini akan memecah banyak situs yang menggunakan CDN (Jaringan Distribusi Konten) karena secara default akan memblokir semua gambar lintas-domain, skrip, css, dan arahan ulang. Jadi ini bukan pilihan terbaik jika Anda ingin selalu tahu ke mana arah redirect, kecuali Anda siap untuk harus melalui beberapa langkah tambahan setiap kali Anda mengunjungi situs web baru.

William Lawn Stewart
sumber
0

Saya tidak begitu yakin, tetapi jika Anda menggunakan CUrl, bisakah Anda tidak hanya mendapatkan konten URL (get_file_contents (url) di PHP) dan kemudian memeriksa jenis MIME?

Sterex
sumber