eval her zaman sıkıntı bir fonksiyondur, bu fonksiyonun parametresinde kullanıcının kontrol edebildiği hiçbir şey olmamalıdır.
-
.Net yazılımı bu, IntallPackage dediğinde aklına işletim sistemi üzerinde bir paket kurulumu olacak bu da arkada background proccess oluşturacak, directorylere bir şeyler yazılacak.
-
Burada Command Injection zafiyeti var. Process’in Argüman’ına string concatenation yapılıyor Argüman passing yapılmamış durumda.
- Bu input alanı genelde HTML oluyor. HTML templating var fonksiyonun ismi o zaten.
- Code evalution zafiyeti var burda. Eval fonk. parametresini son kullanıcı değiştirebilir burda oynamalar yapabilir.
- Bu kısım kıllandırıyormuş:
- “nodeParm” kodu genel olarak incelediğinde, GET ve POST requestleri ile birlikte gelen ve userın kontrol edebildiği bir parametre.
- Java kodu olduğu için, Java’da sqlRestriction kodunu gidip okuduğunda SQLi’dan kaçınman için gereken bir fonksiyon. “sqlRestriction” fonksiyonu virgülden sonraki nodeParmValue gibi parametreleri kontrol eder. Fakat burada “nodeParameterName” query template’dir ve kullanıcı manipüle edebildiği için SQL injection çıkar.
NOT: if else kısımlarını okumazmış, neyi trace edeceğine bakar eğer o parametre if else te geçiyorsa bakarmış.
- Burada yönetilebilen parametre tokendır. Direkt token’a odaklandır reis. Token’ı manipüle edemiyorsa okumazmış.
- KeySize sen gidip 4096 yazdığında gidip değiştirmezmiş. Setter ve getter lar ile değiştirmek lazım diyor.
- Regex gördüğün anda şüphe uyandırır.
- require_once dediğin anda burada Local File Inclusion vaar.
- cookie ile bir şeyler geliyor. Regexi kontrol ettiğinde 46-122 arası karakterleri yasaklamış ama işte $ ile başlayan bir şey koyarak yine LFI yapılabilirmiş.
$../../../../../../../../etc
- XXE varmış burda
- .odt dosyası
- SAXBuilder ile aşağıda dox.getContent çalışınca, content.xml ‘i parse ediyor ve DTD lerin disable edilmesi yokmuş.
- _create_export bir file oluşturuyo, bid ne işe yarıyor ona bir bakmak lazım hem input alanı zaten. Bu fonksiyonlar ne iş yapıyor bilemediği için gitti üsttekilere baktı
- business_id ile log injection yapabiliyorum dedi. Devamını görmek lazım işte…
- Jsonify outputu content type olarak json verirsen bile, body’i kontrol edebilsen bile browser render ettirtmiyor dedi
- Line 22’dee geçici log dosyası oluşturuluyor ardından siliniyor, buna injection yapılabilir. Bunu da söyledi
- Untrusted source’dan aldığın datayı deserialize ediyosan .Net, Java gibi OOP dillerinde ciddi problem.
- String’den direkt objeye dönme işi var burda.
- “textReader” Deserialize ediliyor, bu da zaten input alanında var ayrıca stringi XML ‘e çeviriyor.
- $upload_name kısmında XSS varmış.
-
- satır upload_name kullanıcıdan alınıyor ama sanitize ediliyor fakat sanitize etmenin hiçbir önemi yok. Burada HTML encoding yapman lazım.
-
- satırda echo veriyor burda da XSS varmış
- Ayrıca 19..satırda upload_name kısmında hiçbir validation yok, burda da File Upload vuln. var.
- installRepository diyor, bir şeyler yüklenecek.
- Arbitrary file overwriting
- mode’u benden alıyor, repHome’u benden alıyor, repHome’u istallConfig’e yolluyor yani “dest” kontrol ediyoruz. Gidip config dosyası üstüne başka dosya yazır falan yani
- ReDoS var burda.
- 36.satırda Regex(search) var.
- Non-Deterministic Finite Automaton
- Recursive inner call’a girer bu da DOS’a sebep olur. a ile başlıyor b ile bitmesi gerekiyor, aa ile başlayıp a ile devam ediyor b ile bitiyor…..
- .Net ile yazılıp NFA kullanan motorlarda bu sebep olabilir.
- LDAP search injection.
- 28.satırda ldapSearchFiler alıyor, filterın içine atyıor, 33te de ldap_seatch ediyor işte. 30.satıda req ile envvar alıyor.
- Zip’i decomprise ederken programlama tarafında, çok dikkatli olunmalı. Zip’in içerisindeki syn-linkler ile dosyayı çıkardığında path traversal check yapmak lazım
- Yani içerden ../../../ dosyası falan çıkarsa ne bok yiyecen??
- get_addon_path adından belliymiş
- gidip token alınıyor, temporarily bir path oluşuyor, bu dosya geçerli mi diye bakılıyor, sonra gidip o siliniyor.
- Arbitrary file deletion.
- tmp_token kullaınıcıdan alınıyor ve artık pathi o kontrol ediyor falan…
- XSS var.
- Html.Raw, Razor template engineinde default context encoding yapmaz. Default contex encodingi HTML ve attribute encoding için yapıyor.
- Şu patterni gördüğün zaman renkli hikayeler dönüyor demektir. File’a “name” attribute’u atanması lazım burda da 8.satırda bütün alanlarına koymuş zaten
- Cors bypass var:
- 14.satırda referer değil origin header’ı tarafından check edilmesi lazımmış CORS konusu.
- Origini kontrol edip spoof edemiyoruz fakat referer’ı kontrol edebiliyoruz
- Account takeover…
- password reset veya acount oluşturma olayı var bruda
- Sana doğrualam epostası geliyor ya, bu token’ı offline olarak hesaplarsam sıkıntı
- tokenı oluşturma fonksiyonu tahmin edilebilir.
- CSPRNG
- \ ile de bakman lazım…
- image’dan LFI yaparsın akarsın
- Kullaınıcdan alınan inputu direkt olmasa da query kısmına yapıştırıyor.
- XPath injection
- Django kullanılmış.
- get_success_url returnüne redirect verilmiş
- "next"e google.com yazarım akarım