Server Side XSS (Dynamic PDF)
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Eğer bir web sayfası kullanıcı kontrolündeki girdileri kullanarak bir PDF oluşturuyorsa, PDF'yi oluşturan botu kandırmayı deneyebilirsiniz ve keyfi JS kodunu çalıştırmasını sağlayabilirsiniz. Yani, eğer PDF oluşturucu bot bazı HTML etiketleri bulursa, bunları yorumlayacak ve bu davranışı istismar ederek bir Server XSS oluşturabilirsiniz.
Lütfen, <script></script>
etiketlerinin her zaman çalışmadığını unutmayın, bu yüzden JS'yi çalıştırmak için farklı bir yönteme ihtiyacınız olacak (örneğin, <img
etiketini istismar etmek).
Ayrıca, normal bir istismar durumunda oluşturulan pdf'yi görme/indirme imkanınız olacak, bu yüzden JS ile yazdığınız her şeyi görebileceksiniz (örneğin document.write()
kullanarak). Ancak, eğer oluşturulan PDF'yi göremiyorsanız, muhtemelen bilgiyi çıkarmak için web isteği yapmanız gerekecek (Kör).
wkhtmltopdf, HTML ve CSS'yi PDF belgelerine dönüştürme yeteneği ile bilinir ve WebKit render motorunu kullanır. Bu araç, geniş bir uygulama yelpazesi için erişilebilir hale getiren açık kaynaklı bir komut satırı aracı olarak mevcuttur.
TCPDF, PDF oluşturma için PHP ekosisteminde sağlam bir çözüm sunar. Görüntüleri, grafikleri ve şifrelemeyi işleyebilme yeteneği ile karmaşık belgeler oluşturmak için çok yönlülüğünü sergiler.
Node.js ortamında çalışanlar için PDFKit geçerli bir seçenek sunar. HTML ve CSS'den doğrudan PDF belgeleri oluşturulmasına olanak tanır ve web içeriği ile yazdırılabilir formatlar arasında bir köprü sağlar.
Java geliştiricileri, PDF oluşturmayı kolaylaştıran ve dijital imzalar ile form doldurma gibi gelişmiş özellikleri destekleyen iText kütüphanesini tercih edebilir. Kapsamlı özellik seti, güvenli ve etkileşimli belgeler oluşturmak için uygundur.
FPDF, basitliği ve kullanım kolaylığı ile öne çıkan bir başka PHP kütüphanesidir. Geliştiricilerin kapsamlı özelliklere ihtiyaç duymadan PDF oluşturma için basit bir yaklaşım arayanlar için tasarlanmıştır.
Bu SVG yüklemesi içinde önceki veya aşağıdaki yüklemelerden herhangi biri kullanılabilir. Burpcollab alt alanına erişen bir iframe ve meta veri uç noktasına erişen bir diğeri örnek olarak verilmiştir.
Birçok diğer SVG yüklemesi bulabilirsiniz https://github.com/allanlw/svg-cheatsheet
Bu açığı istismar etmenin en uygun yolu, botun yerel olarak kontrol ettiğiniz bir script yüklemesini sağlamak için açığı kötüye kullanmaktır. Ardından, yükü yerel olarak değiştirebilir ve botun her seferinde aynı kodla yüklemesini sağlayabilirsiniz.
file:///etc/passwd
yerine http://169.254.169.254/latest/user-data
değiştirin, örneğin harici bir web sayfasına erişmeye çalışmak için (SSRF).
Eğer SSRF'ye izin veriliyorsa, ancak ilginç bir alan adı veya IP'ye ulaşamıyorsanız, bypass'lar için bu sayfayı kontrol edin.
Bu zafiyet, SSRF'ye çok kolay bir şekilde dönüştürülebilir (çünkü script'in dış kaynakları yüklemesine izin verirsiniz). Bu yüzden bunu istismar etmeyi deneyin (biraz meta verisi mi okuyacaksınız?).
PDF için ekleri belirtmeye izin veren bazı HTML 2 PDF motorları vardır, örneğin PD4ML. Bu özelliği, herhangi bir yerel dosyayı PDF'ye eklemek için kötüye kullanabilirsiniz. Ekleri açmak için dosyayı Firefox ile açtım ve Ataç simgesine çift tıkladım ve eklemeyi yeni bir dosya olarak kaydettim. Burp ile PDF yanıtını yakalamak da ekin düz metin olarak PDF içinde görünmesini sağlamalıdır.
AWS Hacking öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)