我们在MYSQL注入的时候经常会碰到无法立即根据在注入点加单引号提交得到的返回信息来获得web目录,这个时候获得web路径就要费点劲了!针对这种情况,我介绍三种方法!load_file(char(47))查找部分*nix系统的目录。
a. 原理
由于load_file()函数相当于*nix中的cat函数,而在某些FreeBSD,Sunos系统中用cat / 命令可以列出根目录,而字符/ 的Ascii码是47,所以在MYSQL注入的时候可以试试用load_file(char(47))来查找web目录!这一方法的原理还可以参看安全天使(http://www.4ngel.net/)superhei的文章<<系统特性与web安全>>。
b. 实例
这一方法在Sunos系统上的具体实例可以参考我发布在网上的文章<<由Jsp MYSQL注入到root权限全程展>>。下面补个FreeBSD上测试
是用load_file(char(47,101,116,99,47,112,97,115,115,119,100))读取/etc/passwd得到MYSQL服务器的操作系统是FreeBSD。
用load_file(char(47))列出了此FreeBSD系统的根目录。读取/etc/passwd中apache的工作目录得到web路径。这个方法就不需要多加解释了,下面给个实例!
可以得到apache的工作目录是/www,且可以猜测web路径是/www。读取apache的配置文件httpd.conf获取web路径。
*nix 系统的apache的配置文件httpd.conf一般位于/etc/httpd/conf/httpd.conf或者位于 /usr/local/apche/conf/httpd.conf中;Windows系统的httpd.conf文件一般位于c:\Program Files\Apache Group\Apache\conf \httpd.conf或者C:\apache\conf \httpd.conf,也可以换盘符c为d等试试。
实例
下面是在linux上测试结果,图中的Ascii码 47,117,115,114,47,108,111,99,97,108,47,97,112,97,99,104,101,47,99,111,110,102,47,104,116,116,112,100,46,99,111,110,102 是由字符串/usr/local/apache/conf/httpd.conf转换得到的。
可以知道DocumentRoot是/www,即得到web路径是/www。这几个方法有不少人早已发现,我只是做个总结,让广大MYSQL爱好者都能掌握。
|