WEB 2.0 Sezgisel Paletli Gerçek Savaş Alibaba Bulut Domuz Adam

21 Haziran'da kamuoyunun gözünde bir ceza kararı çıktı. Birkaç sanık sunucu içeriğini taramak için tarayıcıları kullandı. İlk derece kararı, Ceza Kanunu'nun "Bilgisayar Bilgi Sistemi Verilerini Yasadışı Olarak Elde Etme" 285. Maddesini ihlal ettiklerini belirledi ve mahkum edildi Sabit süreli hapis ve para cezası XXX. (buraya Tıkla)

Aşağıdaki izleyiciler patladı:

Netizen A: Emeklemeyi öğreneli uzun zaman olmadı, terk mi edilecek?

Netizen B: Ne yapmalı, koşmalı mı?

Netizen C: Crawler olarak titriyorum.jpg

Netizen Ding: Sürüngen mühendisinin pozisyonu havalı mı?

Bununla birlikte, daha aklı başında insanlar da var: Örneğin, çalışanlar sisteme aşinalıklarını kullandılar veya belki de kendi başlarına bıraktıkları arka kapı, belirli bir UA tarama içeriği oluşturdu ve eski sahibi tarafından dava edildi.

Başka bir örnek: Panik yapmayın. V2'yi gören biri onun tarayıcı olmadığını, dahili bir sunucudan veri çaldığını söyledi.

Kısacası, tarayıcı teknolojisinin yıldız sözlüğü yeniden halkın gözüne girdi ... Alibaba Cloud'un ev sahipliği yaptığı Peygamber Konferansı'nda Lei Feng'in ev konuk kanalının da emekleme ile ilgili bir konu duymuş olması şanslı.

Konuşmacı, uzun süredir otomatik güvenlik testi yapan, çeşitli geliştirme teknolojilerine aşina olan ve sızma testi ve veri madenciliği konusunda iyi olan Alibaba Cloud Kıdemli Güvenlik Uzmanı Pigman.

Pigman, geçmiş deneyimlere ve bilinen sahnelere dayalı olarak dinamik bir tarayıcının nasıl oluşturulacağını ve uygulanacağını tanıttı. Tarayıcı tarafından sağlanan Başsız hata ayıklama modu sayesinde, bir web sayfasının tüm dinamik nesnelerini gezer, giriş formunun parametre değerlerini otomatik olarak doldurur ve nesne üzerindeki bağlı olayları tetikleyerek güvenlik testi işlemi sırasında saldırı yüzeyi madenciliğini etkin bir şekilde çözer.

Aşağıda, Leifeng.com tarafından derlenen Pigman konuşmasının içeriği yer almaktadır.

Tarayıcı teknolojisinden bahsetmeden önce, bir soru düşünelim: Neden bir tarayıcı tarayıcıya ihtiyacımız var?

Çok sayıda araştırma ve analize göre, çoğu yerli şirket, güvenlik testleri yaparken hala insan eti sürecinde kalıyor. Otomatikleştirilmiş testin derecesi nispeten düşüktür ve şirketler, günlük güvenlik testi sürecinde tekrarlayan görevlere çok fazla işçilik maliyeti yatırmıştır.

Ne de olsa insanlar etten ve kandan, bazen yorgun, bazen duygusal. Belki bir şirketin test uzmanları, kötü bir ruh hali içindeyken testler yapar ve nihai güvenlik testi sonucu, ruh haline bağlıdır. Ancak saldırı yüzeyi ve test hazırlıkları tam olarak hazırlandığında garanti edilebilir. Aynı zamanda, Web 2.0 çerçevesi çok aktiftir, birçok hataya neden olur ve tarayıcıları tüm web sayfasının bağlantı yapısını tanıyamaz.

Şu anda, tüm güvenlik testinin verimliliğini artırmamıza yardımcı olacak bir tarayıcıya ihtiyacımız var.

Her şeyden önce, endüstri meslektaşları ve güvenlik mühendisleri tarayıcıları nasıl uygular? Size bir örnek vereyim: WeChat grubundaki bir arkadaş, seebug'ı taramak için aşağıdaki kodu kullandığını ve sonucu alamadığını söyledi. Bunun nedeni, seebug web sitesinin kod gizleme teknolojisini kullanması ve sık sık güncellenmesidir, bu da sonunda daha önce tamamen statik olan tarayıcının tamamen başarısız olmasına yol açar.

Statik tarayıcıların kusurları nasıl çözülür?

Sadece biraz yeni bir teknoloji tanıtın.Örneğin, GS motorlu bir tarayıcı bu sorunu çözebilir.PIP ile bir kurulum paketi kurabilir ve seebug'ın bağlantı bilgilerini tamamen taramak için soldaki kodu kullanabilirsiniz.

Bu proje, Google'ın arayüzsüz tarayıcısı miras alınarak geliştirilmiştir. Hiçbir arayüz, sağlıklı bir tarayıcı olarak inşa edilmedi ve şu anda dört tür var: Dezavantajları, birçok üçüncü taraf kitaplığı kullanırken çok kararsız olmalarıdır. Daha sonra phantomjs ortaya çıktı, ancak phantomjs'nin düzeltilemeyen birçok sorunu vardı. Yazar daha sonra bunun artık sürdürülemeyeceğini ve yalnızca Google'ın arayüzsüz tarayıcısını seçebileceğini duyurdu.

Tarama için neden Google'ın phantomj'lerini kullanmalısınız? Üç ana nokta vardır. İlki, büyük Google üreticileri tarafından desteklenmektedir ve Google Chrome, yüksek bir kararlılık oranıyla dünyanın en büyük payına sahiptir. Birkaç saatte bir güncellenir. Ek olarak, Google'ın W3C standartları organizasyonu için desteği, dünyadaki tüm tarayıcılar arasında en yüksek olanıdır ve uyumluluk da daha iyidir.

Bugünün konusuna dönersek, sezgisel tarayıcı nedir?

Kısacası, sezgisel tarayıcılar, tüm geçmiş deneyimlere ve görülmüş bilinen sahnelere dayanır.Bu sahneleri analiz ederek ve bilinen deneyimi kullanarak, kural tarayıcıları oluşturur ve uygularlar.

Ardından, genel sezgisel tarayıcı en iyi uygulama sürecine bir göz atalım. Öncelikle, paletli bir fabrika montaj hattı sistemi olarak kabul edilebilir Montaj hattı sistemi, her üretim hattının görev planlamasından sorumlu bir ekip liderine sahip olmalıdır.Burada ROP, ekip lideridir. Süreç netleştikten sonra, her adım kendi işlevini yerine getirmek için kendi görevlerini yerine getirir.

Tarayıcı liderinin yönetici işlevi, görev planlamasından ve olay yönetiminden sorumludur. Tarayıcı tarayıcısını yapmanın ilk adımında, önce URL'yi görevi aşağıdakine ileten görev zamanlayıcı kaptanına iletin ve ardından yükleme durumuna girmek için sayfayı açın. Sayfa yüklendikten sonra, mevcut sayfanın tamamlanıp tamamlanmadığını belirlemek gerekir.Örneğin, bazen bazı web sunucuları zayıf ağ performansına sahip olur veya GS hatasıyla karşılaşır, web sitesi zaman aşımına uğrar ve bazı kaynaklar tam olarak görüntülenmez. Şu anda, web sayfasının tamamı simge ek açıklamasının üç durumu ile belirlenebilir Yapının yüklenip yüklenmediği ve tüm sayfanın açılıp açılmadığı.

Tamamlandıktan sonra, herhangi bir işlem yapmadan tüm tarayıcı sayfasını kilitleyin, başka bir yeni web sayfasını açmasına izin verin veya diğer web sayfalarına atlayın.

Tüm web sayfası yüklendikten sonra, tüm web sayfası atlamasını kilitledikten sonra işlev ele geçirme aşamasına girebilirsiniz. Ardından, tüm olay değişikliklerini ve olay tetikleme bilgilerini izlemek için bir dinleyici enjekte etmeye başlayın. Dosya yükleme, işlev kaçırma ve izleme işlemlerinin tümü tamamlandığında, giriş kutusuna bağlı herhangi bir olay derlenebilir ve belirli bir girdi parametresi değerinin rutin değerlendirmesi için bazı bilgiler derlenebilir.

Sayfada bir form olduğunu bulduğumuzda, giriş türünü ve formun adını analiz ederek bazı parametreleri doldurabiliriz. Yukarıdaki tüm işlemler bittikten sonra, mevcut sayfadaki tüm bilgilerin sonuç sorusunu alacaksınız. Bu sırada, haşarat giderme yoluyla filtreledikten sonra, tüm süreci tekrarlamak için olay yöneticisine dönün.

Genel süreci belirledikten sonra, hemen şimdi ilk adıma, sayfa yükleme ve giriş uygulamasına dönün.

Bir sayfa yüklendiğinde, ele geçirme kodumuzu ne zaman enjekte etmeliyiz? Seçilecek durumlar vardır. İlki sayfa yüklemesinden sonradır; ikincisi, sayfanın yüklenmesinin tamamlanmasını beklemektir, yani mevcut ağ durumunun tamamı boşta olduğunda, tüm tarayıcı yürütme akışı devam eder veya tüm web sayfasının DOM ağacının yüklenip yüklenmediğini belirlemektir.

İstek bağlantı kısmına bakıldığında, aşağıdaki üç konu hem Web2.0 tarayıcı topluluğunun hem de Web1.0'ın dikkat çektiği sorunlardır. Bir web sayfasını taradığınızda, bazı kodlar sayfanızı atlar ve hatta kurallar yüklenmeden önce yeniden yönlendirilebilir.

Herkes bu soruna farklı çözümler sundu ve bazıları orijinal kodu yeniden derlemeyi önerdi. Aslında, tarayıcıyı başka bir katmanda kontrol edebilen eklenti mekanizması olan başka bir çözüm daha var. Aşağıdaki şekilde gösterildiği gibi, her tarayıcı eklentisi için bir nesne sağlanır. Tüm tarayıcı bir isteği başlatmadan önce, olay bir an tetiklenmeden, web sayfası açılmadan önce buraya bir işlev ekleyebilirsiniz.

Örneğin, yukarıdaki 123 gerçekleşmek üzereyken, geçerli tüm sayfa Web isteklerini geri çevirmek için bir izleme olayı ekleyebilirsiniz.Bir sayfa tarandığında, artık sayfayı atlamak için herhangi bir işlev yoktur. Bu, tüm sayfanın bütünlüğünü belirleyebilir. Sanırım video reklamları engelleyen eklentiler de bu işlevi gerçekleştirmek için bu işlevi kullanıyor.

Bizi rahatsız eden bir diğer sorun da sürekli açılır pencereler ve hatta bazı aşırı gelişmeler, web sayfasına bazı parametreler ve adres yenileme işlevleri ekliyor. Oluşturduğumuz tarayıcının, tarayıcının tuhaflığına kapılmadan tüm sayfayı sorunsuz bir şekilde tarayabilmesini sağlamak istiyorsak, web sayfası engellemesine neden olabilecek bilinen işlevleri doğrudan ele geçirmemiz gerekir.

Sayfa yüklendiğinde, bir pencere açıldığı sürece tüm pop-up olaylarını dinleyebilir ve ardından hepsini değiştirebilirsiniz. Zaman aşımı işlevi ile ilgili olarak, yerel bir işlev geliştiririz. Bu işlevi çağırırken, zaman kalıcı olarak 0'a ayarlanır. Sonraki çalıştırma da bu yöntemle yapılır. Zamanı kontrol eden herhangi bir işlev çağrılır ve yaşam döngüsü 0 olarak ayarlanır, böylece Geliştirilen bazı kodlar nedeniyle tüm web sayfası çerçevelenecektir.

Ayrıca AJAX istek bilgilerinin nasıl elde edileceği konusunda çok endişeli olan bir tarayıcı topluluğu da vardır.

Pasif tarayıcının proxy'sine benzer olan engelleme işlevini kullanan iki yöntem vardır.Ağ istek bilgileri bu yöntemle yakalanabildiği ve kaydedilebildiği sürece, tarayıcı bu API'nin tüm kaynaklarını sağlar.

İkinci basit ve kaba yöntem, yerel işlevi kendi işlevinizle doğrudan ele geçirmek ve istek bilgilerini kaydetmektir.Burada, tarayıcının gerektirdiği tüm işlevleri taramak için bu yöntemleri ele geçirmeniz yeterlidir.

Fonksiyon kaçırma süreci tamamlandığında, tüm düğüm bilgilerini analiz etmeye başlayın ve tüm web sayfası altındaki bilgileri oluşturun.Uygulamanın iki özel yolu vardır. Örneğin, DOM'daki tüm düğüm bilgileri arasında geçiş yapabilirsiniz. Ek olarak, yeni düğüm bilgileri oluşturmak için belgedeki düğümleri özel kurallarla filtrelemek için DOM tarafından sağlanan güçlü araçları kullanabiliriz. Düğüm bilgilerini yakalamak istediğimiz ilgili kuralları önceden tanımlayabiliriz.Örneğin, web sayfasındaki herhangi bir bağlantı bilgisi veya bir resmin adresi değiştiği sürece, SRC DOM'nin herhangi bir düğümünde olduğu sürece ilgili tüm bilgileri izleyebiliriz, Bu yöntemle yakalanabilir.

Tüm bilgiler DOM aracılığıyla elde edildikten sonra, tüm olay bilgilerinin tekrar tetiklenmesi gerekmez. Genellikle belirli senaryolar için eşleştirme yürütmeyi öneririz. Örneğin, bazı haber sitelerine göz atarken, yenilemek ve daha fazla haber almak için ekranı kaydırmanız gerekir Arkasındaki teknoloji, sayfa çevirmeyi izleme yöntemidir. Örneğin, bazı kalıcı kutuları kullanırken, bir web sayfasındaki bir düğmeyi tıklamanız gerekir. Bu, bağlı bir olaydır. Tıklandığında, bilgi girmek için bir kalıcı kutu açılır. Örneğin, topluluk tabanlı Zhihu ve Xueqiu web sitelerinin, mesajların gerçek zamanlı dağıtımını sağlamak için arkasında tarihsel görevleri vardır.

Tüm düğüm bilgilerini ve bağlama bilgilerini aldıktan sonra, bu olay bilgilerini tetiklemeyi seçebilirsiniz. Aşağıdaki kodda gösterildiği gibi iki tür tetikleyici olay bilgisi vardır. Üzerinde bir olay vardır.Olayın adı tıklama'dır. Doğrudan kod aracılığıyla bir olay bildirebilirsiniz. Bu iki kod satırı yürütüldüğünde, tarayıcı bir tıklama açılır penceresi açacaktır. Diğer basit ve kaba yöntem ise olayın arkasındaki değeri bulmaktır Olay bağlamanın arkasındaki değer, doğrudan EVAL çağrılarak çalıştırılabilen bir koddur.

Elbette herhangi bir olayı simüle edebiliriz. Tarayıcımızın amacı güvenlik testi yapmaktır. Güvenlik testi sürecinde, bulunan saldırı yüzeylerinin sayısı genel güvenlik testi etkisini belirler. Formlar, web senaryolarında çok önemlidir. Örneğin, oturum açma sayfam ve arama sayfam, tüm geliştirme süreci boyunca formlarla ilgilidir. Formda gezinmenin birçok yolu vardır, ancak daha uygun başka bir yöntem daha vardır; bu, bir döngü aracılığıyla tüm geçerli form oturum açma kutusunda ne olduğunu bulmak için yerel nesneyi doğrudan kullanmaktır.

Form oluşturulduktan sonra parametre türü, formdaki giriş kutusunun karakter uzunluğunu otomatik olarak alır ve her parametre için uygun bir değer üretir.Aynı zamanda, form için bir değer tasarlamak için düğümün yöntemini çağırabilir veya bu yöntemi kullanarak düğmenin tıklanmasına yardımcı olabilirsiniz Seçenekler. Bir formumuz olduğunda otomatik olarak doldurulabilir. Örneğin, bir tarayıcı bir sayfanın bir giriş arayüzü olduğunu tespit ederse, giriş kutusunun adının bu içerikleri içerip içermediğine karar verebilir ve eğer öyleyse, doğrudan buradan bir ad seçip doldurmak için aşağıda tanımlanan kuralları kullanacaktır. Bir formun kendisiyle ilgili olduğunu bulduğumuzda, İngilizce adı bizimkiyle aynı kurallarda alabilir ve ardından @ bekleyebilir ve ardından bir posta kutusu almak ve otomatik olarak doldurmak için DOM listesini rastgele seçebiliriz .

Tüm sürecin tanıtılmasından sonra, esas olarak bir web sayfasını tarayan ve web sayfasındaki tüm bilgi resimlerini, dinamik alımları ve öğeleri tarayan bir tarayıcı DEMO'suna bakalım.

Demo indirme adresi: https://github.com/ring04h/papers/blob/master/xianzhi_crawler_demo.mov

Son olarak, dört bakış açısı özetlenmiştir.

URL'lerde izole sayılar bulduğumuzda, durumların% 90'ı dinamik parametrelerdir.

Bir sayfa sonucunu tararken, benzer uzunluk tutarlılığına sahip çok sayıda bağlantının geçişte olduğu ve oluşturma yönteminin diğer yöntemlerle oluşturulduğu bulundu. Aynı uzunlukta kaç tane bağlantının olduğuna karar verebiliriz Bu sayı 5 veya 10'dan büyükse, bunun dinamik bir parametre olmasına dikkat etmeliyiz.

Pseudo-statik durumların% 70-80'inde yatay çubuklar ve ters çubuklarla analiz edilen sözde statik problemi çözüyoruz. Örneğin, ilk bağlantı ters eğik çizgiler içeren sözde statiktir ve aşağıdaki çizgilerle sözde statiktir. Bütün parçayı bölersek, bölütlenmiş değer ne tür bir değerdir, eğer plastikse ilkini vurur, izole edilmiş sayı belli bir yolun altında göründüğü sürece dinamik bir parametre olabilir.

Ek olarak, hataları gidermek için HASH kullanıyoruz. Örneğin, 123456789'da aynı bağlantıya sahiplerse, bu bağlantının her bir parametresini kesmek için parantez içinde kesmemiz ve son olarak görünümlerinin sıklığına bakmamız gerekir. Çok fazla kez varsa, Bu parametre sabittir, sabittir. Geride kalan parametrelerin oluşum sayısı yalnızca 1 ve 2 ile çok rastgele ise, bu yolun arkasındaki parametreler dinamik parametreler olabilir.

Yukarıdaki içerik, Lei Feng tarafından düzenlenen Ali Peygamber Konferansı'ndan alınmıştır.

Bu püf noktalarını öğrenin, manuel şanzıman modellerini kullanırken çok fazla yakıt tasarrufu yapabilirsiniz!
önceki
Yavaş Haber · Karakter | Xueba Kriminal Polisi: "Kanıt Kralı" nın Çözücüsü
Sonraki
Bin yuan makine de yemek için yüze bağlıdır! Çarpıcı tasarıma sahip bin yuan makine önerisi
4AM, Destiny Cup'a terfi kaçırmaktan korkuyor ve yalnız mı kalacak? Zihniyetim değişti, eskisinden daha az kendime güveniyorum
Hala Android8.0'ı güncellemeye mi çağırıyorsunuz? Yeni nesil Android 9.0'ın yeni özellikleri ortaya çıktı!
Zhang Yuqi ve Yuan Bayuan yeniden bir araya geldiklerinden şüphelenildi, "bıçakla kes" koca olayı sona erdi
Dokulu aile arabası Test sürüşü FAW Xenia R71.6L 6AT
Yapay zeka, bir Dota 2 takım savaşında ilk kez insanları mağlup etti; Evergrande 6,746 milyar HK $ ile FF'nin en büyük hissedarı oldu; Meituan, Hong Kong Borsası'na bir halka arz başvurusu yaptı Le
Size Çince öğretebilecek dünyanın ilk akıllı konuşmacısı "Lily" yi tanıyor muydunuz?
İnternetin "Yılbaşı Ürünleri": Jingdong Koşan Tavuk ve Netease Weiyang Domuzu!
"Aquaman" in yeni fragmanı kahramanların yükselişini gösteriyor "Super 7" yönetmen Wen Ziren bir denizaltı avatarı yaratıyor
İlk yetkili açıkladı: RNG ve Karsa MSI ile savaşmak için çiftler alanı oluşturuyor! UZI yine deli bir köpek mi olacak?
Haima 3 saf elektrikli araç resmi olarak piyasaya sürüldü, sübvansiyondan önce 209.800
İleride yüksek enerji! Vans'ın bu yılki en çılgın ortak dizisi mi doğdu?
To Top