以题为例 浅谈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.hqwc.cn/news/528094.html

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

相关文章

Vue3中Vue Router的使用区别

在 Vue 3 中,useRouter 和 useRoute 是两个用于 Vue Router 的 Composition API 函数,它们的用途和返回的对象不同,接下来详细了解一下它们的区别以及如何正确使用它们。 useRouter useRouter 用于获取 router 实例,这个实例提供…

神经网络实战前言

应用广泛 从人脸识别到网约车,在生活中无处不在 未来可期 无人驾驶技术便利出行医疗健康改善民生 产业革命 第四次工业革命——人工智能 机器学习概念 机器学习不等价与人工智能20世纪50年代,人工智能是说机器模仿人类行为的能力 符号人工智能 …

LeetCode_Java_排序系列(1)(题目+思路+代码)

目录 349.两个数组的交集 350. 两个数组的交集 II 349.两个数组的交集 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1: 输入:nums1 [1,2,2,1], nums2…

Leetcode刷题【每日n题】(5)

题目一 思路分析 二分查找法&#xff1a; 要查找目标数的算术平方根k&#xff0c;则K*k <x,则可以利用二分法查找0-x之间的数&#xff0c;看是否与其匹配。 代码实现 class Solution {public int mySqrt(int x) {//使用二分查找int left0,rightx,ans-1;while(left<righ…

稀碎从零算法笔记Day14-LeetCode:同构字符串

题型&#xff1a;字符串、哈希表 链接&#xff1a;205. 同构字符串 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给定两个字符串 s 和 t &#xff0c;判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t &#xff0c;那…

面试经典150题【71-80】

文章目录 面试经典150题【71-80】112.路径总和129.求根节点到叶子节点的数字之和124.二叉树中的最大路径和&#xff08;要思考&#xff09;173.二叉树迭代搜索器222.完全二叉树节点的个数236.二叉树的最近公共祖先199.二叉树的右视图637.二叉树的层平均值102.二叉树的层序遍历1…

企业战略管理 找准定位 方向 使命 边界 要干什么事 要做多大的生意 资源配置投入

AI突破千行百业&#xff0c;也难打破护城河 作为每个企业或个人的立命生存之本&#xff0c;有的企业在某个领域长期努力筑起了高高的护城河。 战略是什么&#xff1f;用处&#xff0c;具体内容 企业战略是指企业为了实现长期目标&#xff0c;制定的总体规划和长远发展方向。…

Qdrant 向量数据库的部署以及如何在 .NET 中使用 TLS 安全访问

本文介绍如何使用 Docker 部署 Qdrant 向量数据库&#xff0c;以及其相关的安全配置&#xff0c;并演示如何使用 .NET 通过 TLS 安全访问 Qdrant 向量数据库。 文章目录 1. 背景2. Qdrant 向量数据库的部署2.1 Qdrant 向量数据库的安全配置2.2 使用 Docker 部署安全的 Qdrant 向…

[QT]自定义的QtabWidget

需求 最近有一个需求就是一个QTabWidget要求有四个tab页在左侧用于显示主页面&#xff0c;在右侧有一个关于按钮&#xff0c;点击后用于弹出窗口显示一些程序相关信息。主要是怎么实现右侧按钮 相关代码 #ifndef MYTABWIDGET_H #define MYTABWIDGET_H#include <QWidget&g…

【联邦学习综述:概念、技术】

出自——联邦学习综述&#xff1a;概念、技术、应用与挑战。梁天恺 1*&#xff0c;曾 碧 2&#xff0c;陈 光 1 从两个方面保护隐私数据 硬件层面 可 信 执 行 环 境 &#xff08;Trusted Execution Environment&#xff0c;TEE&#xff09;边 缘 计 算&#xff08;Edge Com…

宝塔一键迁移报错创建失败问题完美解决

很多站长朋友在使用宝塔面板迁移的时候总是出错&#xff0c;如图&#xff1a; 遇到这样的问题不要慌&#xff0c;我们已经完美处理&#xff0c;详细解决教程&#xff1a;宝塔一键迁移报错问题完美解决教程

Golang-channel合集——源码阅读、工作流程、实现原理、已关闭channel收发操作、优雅的关闭等面试常见问题。

前言 面试被问到好几次“channel是如何实现的”&#xff0c;我只会说“啊&#xff0c;就一块内存空间传递数据呗”…所以这篇文章来深入学习一下Channel相关。从源码开始学习其组成、工作流程及一些常见考点。 NO&#xff01;共享内存 Golang的并发哲学是“要通过共享内存的…