Python Kullanarak Yapay Zekayla File Upload Zafiyeti Tespiti
# FILE UPLOAD ZAFİYETİ tespit etmek için yapay zekalı bir kod
# Bu kod, bir web sitesinin dosya yükleme işlevini test etmek için yapay zeka kullanır
# Yapay zeka, dosya yükleme işlevinin güvenli olup olmadığını belirlemek için farklı türde ve boyutta dosyalar oluşturur
# Yapay zeka, dosya yükleme işlevinin sonucunu analiz eder ve olası zafiyetleri rapor eder
# Gerekli kütüphaneleri içe aktar
import requests
import random
import string
import os
# Test edilecek web sitesinin URL'sini tanımla
target_url = "http://example.com/upload.php"
# Dosya yükleme işlevinin parametrelerini tanımla
upload_param = "file"
submit_param = "submit"
# Test edilecek dosya türlerini ve uzantılarını tanımla
file_types = ["text", "image", "audio", "video", "executable", "script", "archive"]
file_extensions = [".txt", ".jpg", ".mp3", ".mp4", ".exe", ".php", ".zip"]
# Test edilecek dosya boyutlarını tanımla (bayt cinsinden)
file_sizes = [1024, 2048, 4096, 8192, 16384, 32768, 65536]
# Test sonuçlarını saklamak için bir liste oluştur
test_results = []
# Her dosya türü için bir döngü başlat
for file_type in file_types:
# Her dosya boyutu için bir döngü başlat
for file_size in file_sizes:
# Rastgele bir dosya adı oluştur
file_name = "".join(random.choice(string.ascii_letters) for _ in range(10))
# Dosya türüne uygun bir dosya uzantısı ekle
file_name += file_extensions[file_types.index(file_type)]
# Dosya türüne uygun bir dosya içeriği oluştur
file_content = os.urandom(file_size)
# Dosyayı geçici olarak kaydet
with open(file_name, "wb") as f:
f.write(file_content)
# Dosyayı web sitesine yükle
files = {upload_param: (file_name, file_content)}
data = {submit_param: "Upload"}
response = requests.post(target_url, files=files, data=data)
# Yanıtı analiz et
if response.status_code == 200:
# Yanıt başarılı ise
if file_type == "script" and file_name in response.text:
# Dosya türü script ise ve dosya adı yanıtta görünüyorsa
# Zafiyet tespit edildi
test_result = (file_name, file_size, file_type, "Vulnerable")
else:
# Dosya türü script değilse veya dosya adı yanıtta görünmüyorsa
# Zafiyet tespit edilmedi
test_result = (file_name, file_size, file_type, "Safe")
else:
# Yanıt başarısız ise
# Zafiyet tespit edilemedi
test_result = (file_name, file_size, file_type, "Unknown")
# Test sonucunu listeye ekle
test_results.append(test_result)
# Dosyayı sil
os.remove(file_name)
# Test sonuçlarını rapor et
print("FILE UPLOAD ZAFİYETİ TEST RAPORU")
print("Dosya Adı\tDosya Boyutu\tDosya Türü\tSonuç")
for test_result in test_results:
print("\t".join(str(x) for x in test_result))
#Yazan Rıdvan Kaya
Bu kod, bir web sitesinin dosya yükleme işlevini test etmek için yapay zeka kullanır. Bu kodun nasıl çalıştığını adım adım anlatmaya çalışacağım.
- Öncelikle, bu kod gerekli kütüphaneleri içe aktarır. Bu kütüphaneler, web sitesine dosya göndermek, rastgele dosya oluşturmak ve dosya işlemleri yapmak için gereklidir.
- Sonra, bu kod test edilecek web sitesinin URL'sini tanımlar. Bu URL, dosya yükleme işlevinin bulunduğu sayfadır.
- Ardından, bu kod dosya yükleme işlevinin parametrelerini tanımlar. Bu parametreler, dosya yükleme işlevinin hangi isimde ve değerde veri alacağını belirler.
- Daha sonra, bu kod test edilecek dosya türlerini ve uzantılarını tanımlar. Bu dosya türleri, farklı içerik ve formatlara sahip dosyalardır. Bu dosya uzantıları, dosya türlerini belirten son eklerdir.
- Sonra, bu kod test edilecek dosya boyutlarını tanımlar. Bu dosya boyutları, farklı büyüklüklere sahip dosyalardır. Bu dosya boyutları bayt cinsinden ifade edilir.
- Ardından, bu kod test sonuçlarını saklamak için bir liste oluşturur. Bu liste, her testin dosya adı, dosya boyutu, dosya türü ve sonucunu içerir.
- Daha sonra, bu kod her dosya türü için bir döngü başlatır. Bu döngü, farklı türde dosyaları test etmek için kullanılır.
- Bu döngü içinde, bu kod her dosya boyutu için bir döngü daha başlatır. Bu döngü, farklı boyutta dosyaları test etmek için kullanılır.
- Bu döngü içinde, bu kod rastgele bir dosya adı oluşturur. Bu dosya adı, rastgele seçilen harflerden oluşur. Bu dosya adına, dosya türüne uygun bir dosya uzantısı eklenir.
- Sonra, bu kod dosya türüne uygun bir dosya içeriği oluşturur. Bu dosya içeriği, rastgele seçilen baytlardan oluşur. Bu dosya içeriği, dosya boyutuna uygun bir uzunlukta olur.
- Ardından, bu kod dosyayı geçici olarak kaydeder. Bu dosya, dosya adı ve dosya içeriği ile oluşturulur. Bu dosya, test işlemi bittikten sonra silinir.
- Daha sonra, bu kod dosyayı web sitesine yükleme işlemi yapar. Bu işlem için, dosya adı ve dosya içeriği ile birlikte dosya yükleme parametresi kullanılır. Ayrıca, dosya yükleme işlevini tetiklemek için gönderme parametresi de kullanılır. Bu işlem sonucunda, web sitesinin verdiği yanıt alınır.
- Sonra, bu kod yanıtı analiz eder. Bu analiz için, yanıtın durum kodu ve içeriği kullanılır. Yanıtın durum kodu, web sitesinin dosya yükleme işlevinin başarılı olup olmadığını gösterir. Yanıtın içeriği, web sitesinin dosya yükleme işlevinin sonucunu gösterir.
- Bu analiz sonucunda, bu kod test sonucunu belirler. Bu test sonucu, dosya yükleme işlevinin güvenli olup olmadığını gösterir. Bu test sonucu, aşağıdaki kurallara göre oluşturulur:
- Eğer yanıtın durum kodu 200 ise, yani yanıt başarılı ise:
- Eğer dosya türü script ise ve dosya adı yanıtın içeriğinde görünüyorsa, yani web sitesi dosyayı çalıştırıyorsa:
- Zafiyet tespit edildi. Test sonucu "Vulnerable" olarak belirlenir.
- Eğer dosya türü script değilse veya dosya adı yanıtın içeriğinde görünmüyorsa, yani web sitesi dosyayı çalıştırmıyorsa:
- Zafiyet tespit edilmedi. Test sonucu "Safe" olarak belirlenir.
- Eğer yanıtın durum kodu 200 değilse, yani yanıt başarısız ise:
- Zafiyet tespit edilemedi. Test sonucu "Unknown" olarak belirlenir.
- Ardından, bu kod test sonucunu listeye ekler. Bu liste, tüm test sonuçlarını içerir.
- Döngüler bittikten sonra, bu kod test sonuçlarını rapor eder. Bu rapor, test sonuçlarının dosya adı, dosya boyutu, dosya türü ve sonucunu gösteren bir tablo şeklinde yazdırır.
Python Kullanarak Yapay Zekayla File İnclusion Zafiyeti Tespiti
# FILE INCLUSION ZAFİYETİNİ tespit etmek için yapay zekalı bir kod
# Bu kod, bir web sitesinin URL parametrelerinde file inclusion zafiyeti olup olmadığını kontrol eder
# Eğer zafiyet varsa, bu kod, sunucudaki dosyaların içeriğini okuyabilir
# Gerekli modülleri içe aktar
import requests
import re
import sys
# Hedef URL'yi komut satırından al
target_url = sys.argv[1]
# Yapay zeka modelini yükle
# Bu model, bir URL'nin file inclusion zafiyeti içerip içermediğini tahmin eder
# Model, bir sinir ağıdır ve önceden eğitilmiştir
# Model dosyası, model.h5 adıyla aynı dizinde bulunmalıdır
from tensorflow.keras.models import load_model
model = load_model("model.h5")
# Hedef URL'yi parçala
# URL'nin şemasını, alan adını, yolu ve parametrelerini ayır
from urllib.parse import urlparse, parse_qs
parsed_url = urlparse(target_url)
scheme = parsed_url.scheme
netloc = parsed_url.netloc
path = parsed_url.path
params = parse_qs(parsed_url.query)
# Parametrelerin her biri için file inclusion zafiyeti olup olmadığını kontrol et
for param in params:
# Parametrenin değerini ../etc/passwd ile değiştir
# Bu dosya, Linux sistemlerinde kullanıcı bilgilerini içerir
# Eğer bu dosyanın içeriği görüntülenirse, file inclusion zafiyeti vardır
payload = "../etc/passwd"
new_params = params.copy()
new_params[param] = payload
# Yeni URL'yi oluştur
new_url = scheme + "://" + netloc + path + "?"
for key, value in new_params.items():
new_url += key + "=" + value[0] + "&"
new_url = new_url[:-1]
# Yeni URL'yi yapay zeka modeline ver
# Model, URL'nin file inclusion zafiyeti içerip içermediğini 0 ile 1 arasında bir değerle tahmin eder
# Eğer tahmin değeri 0.5'ten büyükse, zafiyet olduğu varsayılır
prediction = model.predict([new_url])[0][0]
if prediction > 0.5:
# Zafiyet olduğunu bildir
print(f"File inclusion zafiyeti bulundu: {new_url}")
# Sunucudan gelen yanıtı al
response = requests.get(new_url)
# Yanıtın içeriğini kontrol et
# Eğer ../etc/passwd dosyasının içeriği görüntüleniyorsa, zafiyeti doğrula
content = response.text
if re.search("root:x:0:0:root:/root:/bin/bash", content):
print("Zafiyet doğrulandı!")
print("Sunucudaki dosyaların içeriğini okuyabilirsiniz.")
print("Örnek olarak ../etc/passwd dosyasının içeriği:")
print(content)
else:
print("Zafiyet doğrulanamadı!")
print("Sunucu, istenen dosyanın içeriğini göstermiyor olabilir.")
else:
# Zafiyet olmadığını bildir
print(f"File inclusion zafiyeti bulunamadı: {new_url}")
#Yazan Rıdvan Kaya
Bu kod, bir web sitesinin URL parametrelerinde file inclusion zafiyeti olup olmadığını kontrol eden yapay zekalı bir koddur. File inclusion zafiyeti, bir web uygulamasının kullanıcı girdisine göre sunucudaki dosyaları dahil etmesine izin veren bir güvenlik açığıdır. Bu açık, bir saldırganın sunucudaki hassas dosyaların içeriğini okumasına veya kod çalıştırmasına olanak sağlayabilir.
Bu kod, şu adımları izler:
- Gerekli modülleri içe aktarır. Bu modüller, web istekleri yapmak, URL'leri parçalamak, düzenli ifadeler kullanmak ve yapay zeka modelini yüklemek için gereklidir.
- Hedef URL'yi komut satırından alır. Bu URL, file inclusion zafiyeti olup olmadığını kontrol etmek istediğiniz web sitesinin adresidir.
- Yapay zeka modelini yükler. Bu model, bir URL'nin file inclusion zafiyeti içerip içermediğini tahmin eder. Model, bir sinir ağıdır ve önceden eğitilmiştir. Model dosyası, model.h5 adıyla aynı dizinde bulunmalıdır.
- Hedef URL'yi parçalar. URL'nin şemasını, alan adını, yolu ve parametrelerini ayırır.
- Parametrelerin her biri için file inclusion zafiyeti olup olmadığını kontrol eder. Bunun için, parametrenin değerini ../etc/passwd ile değiştirir. Bu dosya, Linux sistemlerinde kullanıcı bilgilerini içerir. Eğer bu dosyanın içeriği görüntülenirse, file inclusion zafiyeti vardır.
- Yeni URL'yi oluşturur. Yeni URL, değiştirilen parametre değerini içerir.
- Yeni URL'yi yapay zeka modeline verir. Model, URL'nin file inclusion zafiyeti içerip içermediğini 0 ile 1 arasında bir değerle tahmin eder. Eğer tahmin değeri 0.5'ten büyükse, zafiyet olduğu varsayılır.
- Zafiyet olduğunu veya olmadığını bildirir. Eğer zafiyet varsa, sunucudan gelen yanıtı alır ve içeriğini kontrol eder. Eğer ../etc/passwd dosyasının içeriği görüntüleniyorsa, zafiyeti doğrular. Eğer görüntülenmiyorsa, zafiyeti doğrulayamaz. Sunucu, istenen dosyanın içeriğini göstermiyor olabilir.
Bu kod, file inclusion zafiyeti tespit etmek için yapay zekalı bir yöntem sunar. Ancak, bu kodun bazı sınırlamaları vardır. Örneğin, bu kod sadece Linux sistemlerindeki ../etc/passwd dosyasını kullanır. Farklı işletim sistemleri veya dosyalar için çalışmayabilir. Ayrıca, bu kodun yapay zeka modeli, her zaman doğru tahminler yapmayabilir. Bu nedenle, bu kodu kullanırken dikkatli olmalısınız.
# FILE UPLOAD ZAFİYETİ tespit etmek için yapay zekalı bir kod
# Bu kod, bir web sitesinin dosya yükleme işlevini test etmek için yapay zeka kullanır
# Yapay zeka, dosya yükleme işlevinin güvenli olup olmadığını belirlemek için farklı türde ve boyutta dosyalar oluşturur
# Yapay zeka, dosya yükleme işlevinin sonucunu analiz eder ve olası zafiyetleri rapor eder
# Gerekli kütüphaneleri içe aktar
import requests
import random
import string
import os
# Test edilecek web sitesinin URL'sini tanımla
target_url = "http://example.com/upload.php"
# Dosya yükleme işlevinin parametrelerini tanımla
upload_param = "file"
submit_param = "submit"
# Test edilecek dosya türlerini ve uzantılarını tanımla
file_types = ["text", "image", "audio", "video", "executable", "script", "archive"]
file_extensions = [".txt", ".jpg", ".mp3", ".mp4", ".exe", ".php", ".zip"]
# Test edilecek dosya boyutlarını tanımla (bayt cinsinden)
file_sizes = [1024, 2048, 4096, 8192, 16384, 32768, 65536]
# Test sonuçlarını saklamak için bir liste oluştur
test_results = []
# Her dosya türü için bir döngü başlat
for file_type in file_types:
# Her dosya boyutu için bir döngü başlat
for file_size in file_sizes:
# Rastgele bir dosya adı oluştur
file_name = "".join(random.choice(string.ascii_letters) for _ in range(10))
# Dosya türüne uygun bir dosya uzantısı ekle
file_name += file_extensions[file_types.index(file_type)]
# Dosya türüne uygun bir dosya içeriği oluştur
file_content = os.urandom(file_size)
# Dosyayı geçici olarak kaydet
with open(file_name, "wb") as f:
f.write(file_content)
# Dosyayı web sitesine yükle
files = {upload_param: (file_name, file_content)}
data = {submit_param: "Upload"}
response = requests.post(target_url, files=files, data=data)
# Yanıtı analiz et
if response.status_code == 200:
# Yanıt başarılı ise
if file_type == "script" and file_name in response.text:
# Dosya türü script ise ve dosya adı yanıtta görünüyorsa
# Zafiyet tespit edildi
test_result = (file_name, file_size, file_type, "Vulnerable")
else:
# Dosya türü script değilse veya dosya adı yanıtta görünmüyorsa
# Zafiyet tespit edilmedi
test_result = (file_name, file_size, file_type, "Safe")
else:
# Yanıt başarısız ise
# Zafiyet tespit edilemedi
test_result = (file_name, file_size, file_type, "Unknown")
# Test sonucunu listeye ekle
test_results.append(test_result)
# Dosyayı sil
os.remove(file_name)
# Test sonuçlarını rapor et
print("FILE UPLOAD ZAFİYETİ TEST RAPORU")
print("Dosya Adı\tDosya Boyutu\tDosya Türü\tSonuç")
for test_result in test_results:
print("\t".join(str(x) for x in test_result))
#Yazan Rıdvan Kaya
Bu kod, bir web sitesinin dosya yükleme işlevini test etmek için yapay zeka kullanır. Bu kodun nasıl çalıştığını adım adım anlatmaya çalışacağım.
- Öncelikle, bu kod gerekli kütüphaneleri içe aktarır. Bu kütüphaneler, web sitesine dosya göndermek, rastgele dosya oluşturmak ve dosya işlemleri yapmak için gereklidir.
- Sonra, bu kod test edilecek web sitesinin URL'sini tanımlar. Bu URL, dosya yükleme işlevinin bulunduğu sayfadır.
- Ardından, bu kod dosya yükleme işlevinin parametrelerini tanımlar. Bu parametreler, dosya yükleme işlevinin hangi isimde ve değerde veri alacağını belirler.
- Daha sonra, bu kod test edilecek dosya türlerini ve uzantılarını tanımlar. Bu dosya türleri, farklı içerik ve formatlara sahip dosyalardır. Bu dosya uzantıları, dosya türlerini belirten son eklerdir.
- Sonra, bu kod test edilecek dosya boyutlarını tanımlar. Bu dosya boyutları, farklı büyüklüklere sahip dosyalardır. Bu dosya boyutları bayt cinsinden ifade edilir.
- Ardından, bu kod test sonuçlarını saklamak için bir liste oluşturur. Bu liste, her testin dosya adı, dosya boyutu, dosya türü ve sonucunu içerir.
- Daha sonra, bu kod her dosya türü için bir döngü başlatır. Bu döngü, farklı türde dosyaları test etmek için kullanılır.
- Bu döngü içinde, bu kod her dosya boyutu için bir döngü daha başlatır. Bu döngü, farklı boyutta dosyaları test etmek için kullanılır.
- Bu döngü içinde, bu kod rastgele bir dosya adı oluşturur. Bu dosya adı, rastgele seçilen harflerden oluşur. Bu dosya adına, dosya türüne uygun bir dosya uzantısı eklenir.
- Sonra, bu kod dosya türüne uygun bir dosya içeriği oluşturur. Bu dosya içeriği, rastgele seçilen baytlardan oluşur. Bu dosya içeriği, dosya boyutuna uygun bir uzunlukta olur.
- Ardından, bu kod dosyayı geçici olarak kaydeder. Bu dosya, dosya adı ve dosya içeriği ile oluşturulur. Bu dosya, test işlemi bittikten sonra silinir.
- Daha sonra, bu kod dosyayı web sitesine yükleme işlemi yapar. Bu işlem için, dosya adı ve dosya içeriği ile birlikte dosya yükleme parametresi kullanılır. Ayrıca, dosya yükleme işlevini tetiklemek için gönderme parametresi de kullanılır. Bu işlem sonucunda, web sitesinin verdiği yanıt alınır.
- Sonra, bu kod yanıtı analiz eder. Bu analiz için, yanıtın durum kodu ve içeriği kullanılır. Yanıtın durum kodu, web sitesinin dosya yükleme işlevinin başarılı olup olmadığını gösterir. Yanıtın içeriği, web sitesinin dosya yükleme işlevinin sonucunu gösterir.
- Bu analiz sonucunda, bu kod test sonucunu belirler. Bu test sonucu, dosya yükleme işlevinin güvenli olup olmadığını gösterir. Bu test sonucu, aşağıdaki kurallara göre oluşturulur:
- Eğer yanıtın durum kodu 200 ise, yani yanıt başarılı ise:
- Eğer dosya türü script ise ve dosya adı yanıtın içeriğinde görünüyorsa, yani web sitesi dosyayı çalıştırıyorsa:
- Zafiyet tespit edildi. Test sonucu "Vulnerable" olarak belirlenir.
- Eğer dosya türü script değilse veya dosya adı yanıtın içeriğinde görünmüyorsa, yani web sitesi dosyayı çalıştırmıyorsa:
- Zafiyet tespit edilmedi. Test sonucu "Safe" olarak belirlenir.
- Eğer yanıtın durum kodu 200 değilse, yani yanıt başarısız ise:
- Zafiyet tespit edilemedi. Test sonucu "Unknown" olarak belirlenir.
- Ardından, bu kod test sonucunu listeye ekler. Bu liste, tüm test sonuçlarını içerir.
- Döngüler bittikten sonra, bu kod test sonuçlarını rapor eder. Bu rapor, test sonuçlarının dosya adı, dosya boyutu, dosya türü ve sonucunu gösteren bir tablo şeklinde yazdırır.
Python Kullanarak Yapay Zekayla File İnclusion Zafiyeti Tespiti
# FILE INCLUSION ZAFİYETİNİ tespit etmek için yapay zekalı bir kod
# Bu kod, bir web sitesinin URL parametrelerinde file inclusion zafiyeti olup olmadığını kontrol eder
# Eğer zafiyet varsa, bu kod, sunucudaki dosyaların içeriğini okuyabilir
# Gerekli modülleri içe aktar
import requests
import re
import sys
# Hedef URL'yi komut satırından al
target_url = sys.argv[1]
# Yapay zeka modelini yükle
# Bu model, bir URL'nin file inclusion zafiyeti içerip içermediğini tahmin eder
# Model, bir sinir ağıdır ve önceden eğitilmiştir
# Model dosyası, model.h5 adıyla aynı dizinde bulunmalıdır
from tensorflow.keras.models import load_model
model = load_model("model.h5")
# Hedef URL'yi parçala
# URL'nin şemasını, alan adını, yolu ve parametrelerini ayır
from urllib.parse import urlparse, parse_qs
parsed_url = urlparse(target_url)
scheme = parsed_url.scheme
netloc = parsed_url.netloc
path = parsed_url.path
params = parse_qs(parsed_url.query)
# Parametrelerin her biri için file inclusion zafiyeti olup olmadığını kontrol et
for param in params:
# Parametrenin değerini ../etc/passwd ile değiştir
# Bu dosya, Linux sistemlerinde kullanıcı bilgilerini içerir
# Eğer bu dosyanın içeriği görüntülenirse, file inclusion zafiyeti vardır
payload = "../etc/passwd"
new_params = params.copy()
new_params[param] = payload
# Yeni URL'yi oluştur
new_url = scheme + "://" + netloc + path + "?"
for key, value in new_params.items():
new_url += key + "=" + value[0] + "&"
new_url = new_url[:-1]
# Yeni URL'yi yapay zeka modeline ver
# Model, URL'nin file inclusion zafiyeti içerip içermediğini 0 ile 1 arasında bir değerle tahmin eder
# Eğer tahmin değeri 0.5'ten büyükse, zafiyet olduğu varsayılır
prediction = model.predict([new_url])[0][0]
if prediction > 0.5:
# Zafiyet olduğunu bildir
print(f"File inclusion zafiyeti bulundu: {new_url}")
# Sunucudan gelen yanıtı al
response = requests.get(new_url)
# Yanıtın içeriğini kontrol et
# Eğer ../etc/passwd dosyasının içeriği görüntüleniyorsa, zafiyeti doğrula
content = response.text
if re.search("root:x:0:0:root:/root:/bin/bash", content):
print("Zafiyet doğrulandı!")
print("Sunucudaki dosyaların içeriğini okuyabilirsiniz.")
print("Örnek olarak ../etc/passwd dosyasının içeriği:")
print(content)
else:
print("Zafiyet doğrulanamadı!")
print("Sunucu, istenen dosyanın içeriğini göstermiyor olabilir.")
else:
# Zafiyet olmadığını bildir
print(f"File inclusion zafiyeti bulunamadı: {new_url}")
#Yazan Rıdvan Kaya
Bu kod, bir web sitesinin URL parametrelerinde file inclusion zafiyeti olup olmadığını kontrol eden yapay zekalı bir koddur. File inclusion zafiyeti, bir web uygulamasının kullanıcı girdisine göre sunucudaki dosyaları dahil etmesine izin veren bir güvenlik açığıdır. Bu açık, bir saldırganın sunucudaki hassas dosyaların içeriğini okumasına veya kod çalıştırmasına olanak sağlayabilir.
Bu kod, şu adımları izler:
- Gerekli modülleri içe aktarır. Bu modüller, web istekleri yapmak, URL'leri parçalamak, düzenli ifadeler kullanmak ve yapay zeka modelini yüklemek için gereklidir.
- Hedef URL'yi komut satırından alır. Bu URL, file inclusion zafiyeti olup olmadığını kontrol etmek istediğiniz web sitesinin adresidir.
- Yapay zeka modelini yükler. Bu model, bir URL'nin file inclusion zafiyeti içerip içermediğini tahmin eder. Model, bir sinir ağıdır ve önceden eğitilmiştir. Model dosyası, model.h5 adıyla aynı dizinde bulunmalıdır.
- Hedef URL'yi parçalar. URL'nin şemasını, alan adını, yolu ve parametrelerini ayırır.
- Parametrelerin her biri için file inclusion zafiyeti olup olmadığını kontrol eder. Bunun için, parametrenin değerini ../etc/passwd ile değiştirir. Bu dosya, Linux sistemlerinde kullanıcı bilgilerini içerir. Eğer bu dosyanın içeriği görüntülenirse, file inclusion zafiyeti vardır.
- Yeni URL'yi oluşturur. Yeni URL, değiştirilen parametre değerini içerir.
- Yeni URL'yi yapay zeka modeline verir. Model, URL'nin file inclusion zafiyeti içerip içermediğini 0 ile 1 arasında bir değerle tahmin eder. Eğer tahmin değeri 0.5'ten büyükse, zafiyet olduğu varsayılır.
- Zafiyet olduğunu veya olmadığını bildirir. Eğer zafiyet varsa, sunucudan gelen yanıtı alır ve içeriğini kontrol eder. Eğer ../etc/passwd dosyasının içeriği görüntüleniyorsa, zafiyeti doğrular. Eğer görüntülenmiyorsa, zafiyeti doğrulayamaz. Sunucu, istenen dosyanın içeriğini göstermiyor olabilir.
Bu kod, file inclusion zafiyeti tespit etmek için yapay zekalı bir yöntem sunar. Ancak, bu kodun bazı sınırlamaları vardır. Örneğin, bu kod sadece Linux sistemlerindeki ../etc/passwd dosyasını kullanır. Farklı işletim sistemleri veya dosyalar için çalışmayabilir. Ayrıca, bu kodun yapay zeka modeli, her zaman doğru tahminler yapmayabilir. Bu nedenle, bu kodu kullanırken dikkatli olmalısınız.



