Gerçek bağlantıyı bulmak için bir bağlantı nasıl analiz edilir


13

Bazen bir şey indirirken, bağlantıların dosyalara doğrudan gidenler olmadığını görüyorum.

Örneğin, bu bir PDF dosyasını indirmek için bir bağlantıdır:

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

Nasıl anlamaya / dosyaya gerçek bağlantı (Ie http: //*.PDF) kesmek merak ediyordum?

Doğrudan bağlantı göstermeme gibi ve benzer tekniklerin isimleri nelerdir? Wikipedia gibi bazı referanslar, ...?


1
Bağlantınız düzeltildi. editNasıl yaptığımla ilgili işaretleme kaynağını görmek için tıklayın .
Joel Coehoorn

Yanıtlar:


3

Evet, bazen .

Yaygın olarak gerçekleşen iki şey vardır. Bağlantınız artık çalışmıyor, bu nedenle bu senaryoda gerçek senaryodan emin değilim, bu yüzden başka bir bağlantıda özetleyeceğim.

HTTP Yönlendirme

Gördüğünüz şey Bit.lyve diğer hizmetler. Daha sonra bir HTTP yönlendirme yanıtı sağlamaktır. Http://bit.ly/oH3410 adresini ziyaret ettiğinizde, gerçek URL'ye yönlendirilir. Bazen bir URL diğerine yönlendirir. URL'yi http://web-sniffer.net/ adresine[curl][1] -I http://bit.ly/oH3410 eklerseniz veya bunu kullanarak yeni bir Konumu işaret eden 301 döndürdüğünü görürseniz bunun olduğunu görebilirsiniz.

HTTP Yeniden Yönlendirme ile başa çıkmak için, 300'lerde yanıt almayı bırakana kadar bir HTTP HEAD isteği döngüye almanız yeterlidir (umarım bir 200 alırsınız). Asla bitmeyecek bir döngüde yönlendirme yapabileceklerini unutmayın. Bunu CURL veya herhangi bir HTTP aracıyla yapabilirsiniz.

İndirme Sayfası

Çoğu indirme sitesi bunu kullanır. İndirme bağlantısını tıklarsanız, sizi bir sürü reklam içeren bir sayfaya götürür ve benzer şekilde "İndirme işleminiz kısa bir süre içinde başlayacak" der. [ Örnek ]. Bunlarla, gerçek doğrudan bağlantıyı URL'den ayrıştırmayı deneyebilirsiniz, ancak bu siteye özgü olacaktır ve çoğu site onu atlatmanızı önlemek için dahil etmeyecektir. Bu, meta http-equiv="refresh"başlıktaki bir etiket veya JavaScript (en yaygın) aracılığıyla yapılır . JS genellikle bir başlık düşme vardır.

Yine de bir çözüm var. İndirme sayfasındaki kaynağa bakarsanız, genellikle gerçek indirmeyi gösteren bir özelliğe sahip bir <meta http-equiv="refresh">etiket (genellikle bir <noscript>etiket içinde) görürsünüz URL. Bu yüzden sayfayı indirmek, ayrıştırmak ve bu değeri almak için CURL (veya başka bir HTTP aracı) kullanın. Bir site gerçekten kötü olmak istiyorsa bunu hariç tutabilir, bu nedenle dosyaları indirmek için JavaScript'e sahip olmanız gerekir.

Muhtemelen indirmeye de bağlanan bir JavaScript bloğu vardır. Gizlenebilir veya başka bir URL'den bağlanabilir. Kilometreniz bunu ayrıştırmaya çalışabilir. Sayfada bir "doğrudan bağlantı" da olabilir. Bunu bulmak için birkaç teknik deneyebilirsiniz, ancak yine JavaScript ile gizlenebilir veya hatta hep birlikte eksik olabilir.


11

Bu mümkün olmayabilir. Siteler, dosyaya erişmeden önce sizi yüz yönlendirmelerle besleyebilir.

Ayrıca, javascript sunucuya verilen URL'ye dayalı bağlantılar vermek için kullanılabilir.


Teşekkürler! Doğrudan bağlantı göstermeme gibi ve benzer tekniklerin isimleri nelerdir? Wikipedia, ... gibi bazı referanslar?
Tim

1
Sadece yeniden yönlendirme. başka teknik bilmiyorum. Buraya bakın
soandos

Bağlantılar dosyalara ve normal sayfaların tersine olduğunda, buna genellikle sülük karşıtı denir .
Synetech

7

Site komut dosyası oluşturulabilir ve belirli bir komut aldığında (URL bir komut iletebilir), daha sonra yeniden yönlendirmeden bir PDF dosyasını (veya başka bir dosyayı) döndürebilir. Burada sunucu tarafı bir şey var ve sitenin nasıl kodlandığına bağlı. Aslında bu bağlantıyı sunucudan istemeden, dosyayı nasıl alacağınızı anlamanız olası değildir. Bazen de doğrudan URL'yi bilseniz bile, doğrudan bağlantıya erişim izniniz olmayabilir. Bazı siteler doğrudan bağlantıların çalışmaması için kodlanmıştır.


1
Doğru. Küçük ekleme: Bir istemci böyle belirsiz bir bağlantıya eriştiğinde ve sunucu istemciye bunun aslında bir pdf dosyası olduğunu ve pdf dosyası olarak kaydedilmesi gerektiğini söylemek isterse - sunucu bunu Content-Type HTTP aracılığıyla istemciye söyler başlığı.
vtest

3

Bu, iyi korunan web siteleri için hemen hemen "gerçek" URL'dir, sunucunuzun isteğinizi doğrulaması için tam URL'yi göndermeniz gerekir. Daha sonra başka bir URL'ye yönlendirilebilirsiniz, ancak normalde bir defalık bir URL olur. Başka bir deyişle, bu dosya indirme web siteleri size asla sülük yapabilen doğrudan bir bağlantı vermez.

Bu özel URL'de, dijital bir imza ile korunan parametreler, indiricinin zamanını ve IP kısıtlamalarını açıkça listeler. Bu düzeyde yetkinliğe sahip bir web sitesi için, doğrudan bağlantıların sızdırılması olası değildir.


3

Bu yönlendirme bağlantıları genellikle oturum durumuyla ilişkilidir. Size bağlantı vermeden önce oturum girişinize göre bazı özel denetimler yaparlar - kaynağa erişim yok = kaynağa bağlantı erişimi yok. Web kökünün dışındaki dosyalara / kaynaklara erişim sağlamak için kullanılabilir ve doğrudan URL yoluyla kullanılabilir olmak yerine istekte bulunana geri gönderilir. Ama sadece özelliğiniz buna izin veriyorsa.

Her ikisinin bir örneği burada. Ek URL parm'leri ekleyen 'mkoenig' dizesini temel alarak sizi başka bir URL'ye yönlendirecektir. Yeniden yönlendirme, göremeyeceğiniz (veya en azından görmemeniz) gereken sunucu tarafı kodlamasında yapılır. Daha sonra 'Web dosyaları'na giderseniz, listelenen dosyalar yalnızca öğretmenin herkese açık hale getirdiği dosyalardır. Dışarı çıkamayacağınız ve listelenmeyecek başka dosyaları olabilir. Bu, sunucu tarafı kodlamasında, ne döndüreceği / döndürmeyeceği konusunda da ele alınır.

Sunucuyu hacklemeden veya sunucu tarafı kaynak koduna erişmeden, gerçek bağlantıyı alabileceğinize inanmıyorum ve eğer yapabiliyorsanız bile, oturum özelliğiniz sunucuya size erişim vermesini söylemedikçe yardımcı olmayabilir. .

Greg


2

Yukarıdaki gibi, bu imkansız. Böyle bir bağlantı için bir VM çalıştırmanızı veya tarayıcınızı içerecek bir Sandboxie kopyasını almanızı öneririm.

Düzenle

Hangi işletim sistemini kullandığınızı bilmeden burada genel bir cevap vereceğim.

VM, sanal bir makinenin kısaltmasıdır. Temelde bilgisayarınızın içinde çalışan yazılımla oluşturulmuş bir bilgisayardır. Sanal bir makinenin kendi işletim sistemi ve tarayıcısı olacaktır. Makinenizin İnternet ve sabit diskini kullanmaya devam ederken, işletim sisteminin bakış açısından ayrı bir makinedir. Böylece çizik bir kağıt parçası gibi kullanışlı hale getirir. VM içinde gerçekleşen hiçbir şey gerçek makinenizi etkilemez.

Virtualbox , Windows kullanmıyorsanız VM için almanızı tavsiye ettiğim yazılımdır, o zaman Virtual PC'yi tavsiye ederim.

Sandboxie bir çeşit VM gibidir, ancak sadece belirli uygulamaları yalıtır. Tarayıcınızın bir kopyasını çalıştırmasını söyleyebilir ve tarayıcının yaptığı tüm dosya veya eylemler geçici bir klasöre yeniden yönlendirilir. Bu yüzden bir virüs indirmeye çalışırsa, makinenizin geri kalanından karantinaya alınan geçici bir klasöre yönlendirilir. Bir VM kadar sağlam değildir, ancak daha az CPU / Bellek kullanır ve daha hızlı ve daha rahattır.

Önce Sandboxie'yi denerdim. Daha küçük bir öğrenme eğrisi.


1
Teşekkürler! Ne demek "bir VM ateş veya böyle bir bağlantı için tarayıcınızı içermek için Sandboxie bir kopyasını kapmak" ne demek? Bu iki şeyin nasıl yapılacağını açıklayan bazı referanslar?
Tim

Üzgünüm, cevabımı genişleteceğim.
surfasb

Teşekkürler! İşletim sistemim Ubuntu. Ancak VM'nin doğrudan bağlantıları nasıl tanımlayabildiğini anlamıyorum?
Tim

1
Sizin için bağlantıyı gerçekten tanımlamaz. Ancak, bağlantıyı tanımlamanıza yardımcı olacak güvenli bir ortam oluşturur. Sayfayı derlemeden yönlendirmeleri belirleyemezsiniz.
surfasb

1
Sorusunun güvenlikle ilgili olduğunu sanmıyorum. Sadece doğrudan dosya bağlantısını almanın bir yolunu arıyor.
magnattik

2

Bu var asla gerçek bağlantıyı anlamaya mümkün.

Sunucu dosya isteklerini, bazı WWW Rewrite (örneğin apache sunucuları için) kullanarak işler, böylece bir sayfaya gidebilirsiniz www.example.com/13-this-site-has-nice-page-name.html, ancak gerçekte aşağıdaki gibi bir parametreyle bazı php dosyasına erişiyor olabilirsiniz:www.example.com/site_handler.php?UID=13

pdf dosyasına erişseniz bile, sunucu tarafında bir yönlendirme olabilir.

İşleyicileri olan dosya yüklemeleri için, yalnızca bir indirme işleyicisi olan bir sayfaya gidebileceğinizden, biraz daha zorlayıcı olabilir, örneğin: www.example.com?file_downloader.php?param1=7683&param2=jld8ijn, etc... Bu durumda, eriştiğiniz komut dosyası bir başlıkla gönderilebilir (örneğin pdf dosyası), ancak gerçekte bir php dosyasıdır.

Sonuç olarak: sunucunun ve komut dosyalarının nasıl yapılandırıldığını asla bilemezsiniz, böylece bildiğiniz gibi görünse bile gerçek, gerçek adresi asla bilemezsiniz.


1

Bir web sunucusuna istek gönderdiğinizde (bir bağlantıyı tıklatın), sunucu bir dizi farklı yanıt gönderebilir. Yaygın örnekler 404 (sayfa bulunamadı), 403 (yasak) veya 500 (sunucu hatası). Muhtemelen en yaygın yanıt kodu 200'dür (Tamam), ancak bunu asla görmeyeceksiniz çünkü genellikle görmeyi umduğunuz sayfa ile birlikte gelir.

Burada birkaç başka kod daha var: 301 ve 302. 301 ve 302 kodları yönlendirme kodlarıdır ve tarayıcınıza istediğiniz yanıtın başka bir yere taşındığını söylerler. Aralarındaki ana fark, tarayıcının bir şeyleri önbelleğe almasıdır. 301 kodu "kalıcı olarak taşındı" anlamına gelir ve orijinal bağlantıyı bir sonraki ziyaret etmeye çalıştığınızda tarayıcı sayfanın taşındığını ve doğrudan yeni konuma gittiğini hatırlayabilir. 302, "Başka bir yerde bulundu" anlamına gelir ve tarayıcınızın yalnızca geçici olarak kullanması gereken bir bağlantı sağlar.

Bir bağlantıyı kontrol edecek bir program yazmak mümkün olmalı ve 30x yanıt almaya devam ettiğiniz müddetçe, sonunda 200 olana kadar yanıtı izleyin. Bu noktada, içeriği indirmek yerine size bağlantıyı göstermelidir.

Ne yazık ki, bundan daha karmaşık. Html sayfası da sayfanın başlık bölümünde bir meta etiket kullanarak yeni bir konuma yönlendirmek anlamına böyle görünüyor şey: <meta http-equiv="refresh" content="0;url=NEW PAGE URL" />. Yani böyle bir program zaten son yönlendirmeye ulaşmak için html tamamen ayrıştırmak zorunda kalacaktı.

Ayrıca, bir sayfa javascript kullanarak sizi daha fazla yönlendirebilir ve javascript gizlenebilir. Şimdi varsayımsal programımızın javascript'i de anlaması gerekiyor. Bu noktada tamamen işlevsel bir web tarayıcımız var. Ekranda bir sayfa oluşturmanın küçük detayını kaçırıyoruz, ancak programımız, eşlik eden tüm güvenlik sorunları da dahil olmak üzere eksiksiz bir web tarayıcısı için ihtiyacınız olan hemen hemen her şeye sahiptir. Artık bağlantıyı normalde tıklamanızdan daha iyisi yok.


1

Windows'un Varsayılması : Fiddler Web Hata Ayıklama Proxy'sini yükleyin , etkinleştirin. Ardından başlangıç ​​URL'nize gidin ve Fiddler'in sol bölmesindeki tüm yönlendirmeleri izleyin. Sağ bölmede "İstek üstbilgileri" ve "Yanıt üstbilgileri" ni göstermek için sekmeleri değiştirin. Bunu tam olarak bu amaç için kullandım.

Diğer yandan, doğrudan doğruya göz atarsanız, yalnızca "nihai" URL aynı şekilde çalışmayabilir, çünkü istek doğru yönlendiriciye sahip olmayabilir veya başka bazı kısıtlamaları kaçırmayabilir.

Ancak Fiddler'de özel başlıklarla özel istekler bile gönderebilirsiniz. Bunun için "İstek Oluşturucu" sekmesine bakın.


0

Bu büyük ölçüde sahaya bağlıdır.

Bunu yapmak için, her siteyi ayrı ayrı incelemeniz ve her sitenin doğrudan URI'yi döndürmesi için ayrı bir mekanizmaya (veya koda) sahip olmanız gerekir.

Benzer işlevsellik sağlayan bazı açık kaynaklı tarayıcı eklentilerini de inceleyebilirsiniz.


0

Bir bağlantının sizi nereye yönlendirdiğini kontrol etmek için http://longurl.org/ adresini kullanabilirsiniz . Özellikle kısaltılmış URL'ler için kullanışlıdır. Komut dosyası indirmeleri vb. İçin hiçbir faydası yoktur.


0

Firefox kullanıyorsanız, RequestPolicybaşka şeylerin yanı sıra duraklatıp sizden farklı bir alana yönlendirdiğinizde sizden izin isteyecek adlı bir eklenti kullanabilirsiniz . Farklı bir alana gitmeyen bir yönlendirme bulmak istiyorsanız işe yaramaz, ancak bilmediğim farklı bir Firefox Addon olduğundan eminim =)

https://www.requestpolicy.com/

Varsayılan olarak tüm etki alanları arası görüntüleri, komut dosyalarını, css ve yönlendirmeleri engellediğinden CDN (İçerik Dağıtım Ağı) kullanan birçok siteyi kıracağını unutmayın . Yeni bir web sitesini her ziyaret edişinizde birkaç ekstra adım atmaya hazır olmadıkça, yönlendirmenin nereye gittiğini her zaman bilmek istiyorsanız, bu onun ebst tercihi değildir.


0

Gerçekten emin değilim, ancak CUrl kullanıyorsanız, sadece URL içeriğini (PHP'de get_file_contents (url)) alıp MIME türünü kontrol edemez misiniz?


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.