Server Side XSS (Dynamic PDF)
Sunucu Tarafı XSS (Dinamik PDF)
Bir web sayfası kullanıcı tarafından kontrol edilen girişleri kullanarak bir PDF oluşturuyorsa, PDF oluşturan botu keyfi JS kodu yürütmeye kandırmayı deneyebilirsiniz. Yani, PDF oluşturan bot, bazı HTML etiketlerini bulursa, onları yorumlayacak ve bu davranışı suistimal ederek bir Sunucu XSS oluşturabilirsiniz.
Lütfen, <script></script>
etiketlerinin her zaman çalışmadığını fark edin, bu yüzden JS'yi yürütmek için farklı bir yönteme ihtiyacınız olacak (örneğin, <img
etiketini suistimal ederek).
Ayrıca, düzenli bir saldırıda oluşturulan pdf'yi görebilecek/indirebileceğinizi unutmayın, bu yüzden JS kullanarak yazdığınız her şeyi görebileceksiniz (document.write()
örneğin). Ancak, oluşturulan PDF'yi göremiyorsanız, muhtemelen bilgiyi sizinle web isteği yaparak çıkarmak için ihtiyacınız olacaktır (Kör).
Popüler PDF oluşturma
wkhtmltopdf, HTML ve CSS'yi PDF belgelerine dönüştürme yeteneğiyle tanınır ve WebKit render motorunu kullanır. Bu araç, geniş bir uygulama yelpazesine erişilebilir bir açık kaynaklı komut satırı yardımcı programı olarak mevcuttur.
TCPDF, PDF oluşturma için PHP ekosistemi içinde sağlam bir çözüm sunar. Görüntü, grafik ve şifreleme işleme yeteneğine sahiptir ve karmaşık belgeler oluşturmak için çok yönlülüğünü sergiler.
Bir Node.js ortamında çalışanlar için, PDFKit kullanılabilir bir seçenek sunar. HTML ve CSS'den doğrudan PDF belgeleri oluşturmayı sağlar ve web içeriği ile yazdırılabilir formatlar arasında bir köprü görevi görür.
Java geliştiricileri, PDF oluşturmanın yanı sıra dijital imzalar ve form doldurma gibi gelişmiş özellikleri de destekleyen bir kütüphane olan iText'i tercih edebilirler. Kapsamlı özellik seti, güvenli ve etkileşimli belgeler oluşturmak için uygundur.
FPDF, basitliği ve kullanım kolaylığıyla ayırt edilen başka bir PHP kütüphanesidir. Kapsamlı özelliklere ihtiyaç duymadan PDF oluşturma konusunda basit bir yaklaşım arayan geliştiriciler için tasarlanmıştır.
Payloadlar
Keşif
SVG
Bu SVG yüklemesi içinde önceki veya aşağıdaki yüklemelerden herhangi biri kullanılabilir. Bir iframe, Burpcollab alt alanına erişen ve diğer bir iframe, meta veri uç noktasına erişen örnekler olarak eklenmiştir.
Aşağıda, diğer SVG yükleri için https://github.com/allanlw/svg-cheatsheet adresinde bulabileceğiniz birçok örnek bulunmaktadır.
Yol ifşası
Harici bir script yükle
Bu zafiyeti en iyi şekilde sömürmek için, botun yerel olarak kontrol ettiğiniz bir script yüklemesini sağlamak için zafiyeti istismar etmek en uygun yoldur. Ardından, payload'u yerel olarak değiştirebilir ve her seferinde aynı kodla botun bunu yüklemesini sağlayabilirsiniz.
Yerel dosya okuma / SSRF
Örneğin file:///etc/passwd
yerine http://169.254.169.254/latest/user-data
gibi harici bir web sayfasına erişmeyi denemek için (SSRF) değiştirin.
Eğer SSRF izin veriliyorsa, ancak ilginç bir alan adına veya IP'ye ulaşamıyorsanız, potansiyel bypasslar için bu sayfayı kontrol edin.
Bot gecikmesi
Bir web uygulamasını hedef alırken, bazen hedefin botları tespit etmek ve engellemek için bir gecikme mekanizması kullanabileceğini fark edebilirsiniz. Bu gecikme mekanizması, botların hızlı bir şekilde istek göndermesini engelleyerek, otomatik saldırıları zorlaştırır.
Bu durumda, botların tespit edilmesini önlemek için bazı teknikler kullanabilirsiniz. Örneğin, botların tespit etmesini zorlaştırmak için rastgele gecikmeler ekleyebilirsiniz. Bu, botların belirli bir kalıba göre istek göndermesini engelleyerek, tespit edilmelerini zorlaştırır.
Bununla birlikte, bot gecikmesini aşmak için bazı yöntemler de vardır. Örneğin, birden fazla IP adresi kullanarak botları dağıtabilir veya botların tespit edilmesini önlemek için kullanıcı ajanlarını değiştirebilirsiniz.
Sonuç olarak, bot gecikmesi, web uygulamalarını hedef alan saldırıları zorlaştıran bir güvenlik önlemidir. Ancak, bu önlemi aşmak için çeşitli teknikler kullanılabilir.
Port Taraması
Port taraması, bir hedef sistemdeki açık portları belirlemek için kullanılan bir tekniktir. Bu teknik, bir saldırganın hedef sistemdeki ağ servislerini keşfetmesine ve potansiyel zayıflıkları tespit etmesine olanak tanır. Port taraması, saldırganın hedef sistemdeki ağ servislerine erişim sağlamak için kullanabileceği potansiyel hedefleri belirlemesine yardımcı olur. Bu bilgi, saldırganın hedef sistemdeki güvenlik açıklarını sömürmek için kullanabileceği bir başlangıç noktası sağlar. Port taraması genellikle güvenlik testleri ve ağ keşfi sırasında kullanılır.
Bu zafiyet çok kolay bir şekilde SSRF'ye dönüştürülebilir (çünkü betik harici kaynakları yükleyebilirsiniz). Bu yüzden sadece bunu istismar etmeyi deneyin (bazı meta verileri okuyun?).
Ekler: PD4ML
PD4ML gibi bazı HTML 2 PDF motorları, PDF'ye ekler belirlemeye izin verir. Bu özelliği istismar ederek PDF'ye herhangi bir yerel dosya ekleyebilirsiniz. Ekleri açmak için dosyayı Firefox ile açtım ve Kağıt Klipsi simgesine çift tıkladım ve eklemeyi yeni bir dosya olarak kaydettim. PDF yanıtını burp ile yakalamak ayrıca PDF içinde ekleri açık metin olarak göstermelidir.
Referanslar
Last updated