MySQL load_file()/into outfile路径问题总结
MySQL load_file()/into outfile路径问题总结
简单翻译整理
http://www.milw0rm.com/papers/372
关于MySQL into outfile的条件很多人都总结过
1.web服务与MySQL运行在同一台服务器上
2.MySQL版本在3以上
3.有file_priv权限
4.magic_quotes=off
5.知道可写的web路径
laod_file()条件4不需要满足,但也需要路径。
对into outfile第四个条件往往在新的站中很难满足,第5个条件有时候也不容易满足。
这里主要讨论web路径的获得
milw0rm.com有一篇文章http://www.milw0rm.com/papers/372
这里简单总结一下
MySQL数据库路径的获取(datadir)
4.0版本
0′ UNION SELECT load_file(‘a’),null/*
5.0版本通过 @@datadir
默认的可读写路径datadir\databasename.
databasename
通过database()获得。
如果幸运php中含有这些函数 mysql_result(), mysql_free_result(), mysql_fetch_row() or similar functions
将可能直接在出错信息中显示web路径
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /web/server/path/file.php on line xxx
通过添加’等方法。
我们可以尝试laod_file()读取apache等的配置文件
/etc/init.d/apache
/etc/init.d/apache2
/etc/httpd/httpd.conf
/etc/apache/apache.conf
/etc/apache/httpd.conf
/etc/apache2/apache2.conf
/etc/apache2/httpd.conf
/usr/local/apache2/conf/httpd.conf
/usr/local/apache/conf/httpd.conf
/opt/apache/conf/httpd.conf
/home/apache/httpd.conf
/home/apache/conf/httpd.conf
/etc/apache2/sites-available/default
典型的web路径可能是
/var/www/
/var/www/root/
/var/www/dbname/path/
/var/www/sitename/htdocs/
/var/www/localhost/htdocs
……~~~~~