BUUCTF_Web(October 2019 Twice SQL injection)

devtools/2025/1/23 15:46:15/

October 2019 Twice SQL injection

知识点:

二次注入:

当用户提交的恶意数据被存入数据库后,应用程序再把它读取出来用于生成新的SQL语句时,如果没有相应的安全措施,是有可能发生SQL注入的,这种注入就叫做二次注入。

二次注入,可以概括为以下两步:

第一步:插入恶意数据
进行数据库插入数据时,网站对我们输入的恶意语句中的一些重要的关键字进行了转义,使恶意的sql注入无法执行(比如说将单引号转义,使其无法闭合),在写入数据库的时候又保留了原来的数据,被还原成转义之前的语句。

第二步:引用恶意数据
开发者默认存入数据库的数据都是安全的,在进行查询时,直接从数据库中取出恶意数据,没有进行进一步的检验的处理。
 

题目内容:

存在两个注入点,注册和改info

1、可以注册新用户

2、可以登录

3、可以跳转info

题目解析:

1.注册一个用户名为:1'的用户,然后登录后在info页面发现没有数据,相当于报错。

再注册一个用户名为:1的用户,然后登录后在info页面发现有数据

猜测可能是单引号闭合。

2.二次注入

二次注入是一次注入通过两次操作实现,注册和登陆。

  1. 注册恶意用户名

  2. 登陆, 在登陆过程中,肯定要将我们输入的数据和数据库进行比对,而在这个查询数据库中的用户名进行比对的这个过程中,会执行我们插入数据库的用户名(也就是恶意sql注入语句)

在info界面得到结果。

重新注册账号为admin' union select database()#,密码123(此处此方法无用,账号必须是数字,)

注册账号为1' union select database()#,密码为123

重新登录,发现显示database()数据库名为ctftraining

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'#

同上注册,登陆,得flag


1' union select flag from flag #

or

1' union select group_concat(flag) from ctftraining.flag #

注:

转义字符 / 加在‘ “ #)前面的。

step 1:admin/'/# 存在于网站给数据库服务器发送请求的时候存在

step2:但是存入数据库的时候他不存在了存储的是 admin'#

 参考链接:https://blog.csdn.net/weixin_44940180/article/details/107859557

 参考链接:https://blog.csdn.net/AAAAAAAAAAAA66/article/details/122059073


http://www.ppmy.cn/devtools/152921.html

相关文章

计算机网络 (55)流失存储音频/视频

一、定义与特点 定义:流式存储音频/视频是指经过压缩并存储在服务器上的多媒体文件,客户端可以通过互联网边下载边播放这些文件,也称为音频/视频点播。 特点: 边下载边播放:用户无需等待整个文件下载完成即可开始播放…

过年远控家里电脑打游戏,哪款远控软件最好用?

马上过年了,像小编这样的“网瘾少年”实在是放不下每天都在玩的PC游戏,但过年回家又不太可能背着高性能的PC(因为重),那么不如试试远程控制家里的电脑玩游戏。 现在市面上有不少远程控制软件,这些软件哪些…

BH1750使用程序

#include "delay.h" #include "GY30/BH1750FVI.h" typedef unsigned char BYTE; //BYTE BUF[8]; //接收数据缓存区 //iic接口初始化 /** ** 设置SDA为输出 **/ void BH1750_SDA_OUT(void) { GPIO_InitTypeDef GPIO_…

EXCEL的一些用法记录

按某个分隔符进行拆分多列 【数据】- 【分列】 多列调整成多行 复制 - 粘贴 - 选择【转置】 部分内容替换 SUBSTITUTE()函数 ,固定内容 加“”

Oracle 创建并使用外部表

目录 一. 什么是外部表二. 创建外部表所在的文件夹对象三. 授予访问外部表文件夹的权限3.1 DBA用户授予普通用户访问外部表文件夹的权限3.2 授予Win10上的Oracle用户访问桌面文件夹的权限 四. 普通用户创建外部表五. 查询六. 删除 一. 什么是外部表 在 Oracle 数据库中&#x…

【MySQL】C# 连接MySQL

C# 连接MySQL 1. 添加MySQL引用 安装完MySQL之后,在安装的默认目录 C:Program Files (x86)MySQLConnector NET 8.0 中查找MySQLData.dll文件。 在Visual Studio 中为项目中添加引用。 2. 引入命名空间 using MySql.Data.MySqlClient;3. 构建连接 private sta…

在电商行业中,3D模型的应用有哪些?

在电商行业中,3D模型的应用已经变得日益广泛和重要。以下是一些电商行业如何应用3D模型的具体方式: 一、商品3D展示 1、三维呈现: 通过3D技术,商品可以在电商平台上以三维形式呈现,消费者可以720旋转、缩放查看商品…

JRE、JVM 和 JDK 的区别

Java 的运行和开发环境中,有三个重要的概念:JRE、JVM 和 JDK。 1. JVM (Java Virtual Machine) 定义:Java 虚拟机,是运行 Java 程序的虚拟环境。作用: 执行 .class 字节码文件。提供内存管理、垃圾回收和安全机制。不…