Web Hacking: Scarpy Ile Github Sızıntıları Arama

#1027   2019-09-25 20:06 GMT        

Çoğu zaman, kimlik bilgilerini veya gizli verileri almak için herhangi bir şeyi hacklemek gerekli değildir. Pek çok geliştirici, hassas bilgileri kodlarında bırakma konusunda garip bir alışkanlığa sahiptir. Ve bu bilgiyi elde etmek Pentester'ın görevidir.

Bugün, hassas bilgiler için web’i nasıl izleyebileceğinize dair bir şeyler yapacağım. Bunu yapmak için, Python'da yapılandırılması çok kolay olan çok güçlü bir tarayıcı olan Scrapy aracını kullanacağım . Bu araçla ilgili en önemli şey, sürünmeyi gerçekleştirme hızıdır. Bu küçük konsept kanıtı için, GitHub havuzlarından nasıl hassas bilgi alacağınızı size göstereceğim .

Başlamak için, “ pip install scrapy ” ile scrapy uyguluyoruz. Kurulduktan sonra yeni bir proje yaratıyoruz:

Projeyi yarattıktan sonra ilk sıyırıcımızı yaratacağız. Bu ilk örnek için v1s1t0r github'ı analiz  edeceğim  .

Kendimizi projenin içindeki örümceklere / klasörlere yerleştiriyoruz ve kazıyıcıyı oluşturuyoruz:

Bu komut, sıyırıcının iskeletini bulduğumuz scrapv1s1t0r.py dosyasını oluşturur :

“Allow_domains” değişkeninde, sıyırıcının araştırmasına izin verilen URL’leri belirtiyoruz. Kontrol edilmesi ilginç başka ilgili githublar olabileceğinden ve github, raw.githubusercontent.com adresindeki dosyaların içeriğini gösterdiğinden, bu iki alana izin vereceğiz. Start_urls değişkeninde hedef url belirtilir, bu durumda v1s1t0r'nin github'u belirtilir.

Yalnızca bir tane yerine bir havuz kümesini analiz etmek isteseydik, URL'leri bir dosyaya kaydetmek ve depo listesini start_urls değişkenine aşağıdaki komutla atamak yeterli olacaktır :

start_urls = open('githubRepos.txt').read().splitlines()


Ardından cevabı ayrıştırma fonksiyonunu kullanarak ayrıştırmaya devam ediyoruz. Sonuçları “ results.txt ” olarak adlandırdığım bir dosyaya kaydetmekle ilgileniyorum. Ek olarak, sadece dosyaların içeriğini tutacağım, github'un farklı dizinlerindeki ama dosyalarındakileri analiz etmekle ilgilenmiyorum. Bu kısıtlamayı koymak için cevabın raw.githubusercontent.com adresinden geldiğini kontrol ediyorum.

Ayrıca, sadece v1s1t0r github ana sayfasını analiz etmek istemiyorum, ama hepsine kadar farklı dallardan geçmesini istiyorum. Bunu yapmak için sonunda bir github deposunun üç ana dalında her URL için yeni scrapy istekleri üreten aşağıdaki kodu ekleyeceğim: blob / master, tree / master ve raw / master.

Şimdi kalan tek şey, ne aramak istediğimizi belirlemek. Cevap cevapta. Herkes, bu yüzden re de python kütüphanesinde arama yapmak için desenler ekleyebiliriz. Yani sadece kelimenin tam anlamıyla kelimeleri arayabiliriz, aynı zamanda düzenli ifadeleri de arayabiliriz. Örneğin, bu depoda görünen e-postaları arayalım :

Kazıyıcı aşağıdaki komutla yürütülür:

<font style="box-sizing: border-box; vertical-align: inherit;">scrapy runspider Scrapv1s1t0rSpider.py</font>

Çalıştırdıktan sonra results.txt dosyasını görelim …Depo sahibi kişisel e-postasını bırakmışa benziyor . Google’a koyduğumuzda, ünlü bir bilgisayar korsanının referansını buluruz:

Gerçekten OscarAkaElvis’teki bu  serseri mi? E-postanın normal ifadesini “OscarAkaElvis” olarak değiştireceğim.

Evet kesinlikle! 

Bu örnekte görebileceğiniz gibi, bu güçlü araç sayesinde tüm web’i yararlı bilgiler aramak üzere analiz edebiliriz. İhtiyacınız olan normal ifadeyi ayarlayarak, kullanıcıları, şifreleri, API Anahtarlarını, SSH özel anahtarlarını bulabilirsiniz… Kısacası, etrafta bırakılmış olan her şey ve bizim için bir ön baskı işlemi yapmamız için faydalı olabilir.