攻防世界_SQL注入
inget
尝试万能钥匙。
输入?id=1'or'1=1#
supersqli
1.找注入点
输入框
2.判断字符型,数字型
输入1 and 1=1 和1 and 1=2,发现两次提交后页面一样,判断出为字符型注入
3.判断闭合符号
输入1,回显正常
输入1',报错
加上注释符号#或者--+或者%23(注释掉后面语句,使1后面的单引号与前面的单引号成功匹配就不会报错)页面回显正常,那么闭合符号就是单引号。
输入 1#,回显正常
4.判断字段数量
输入1' order by 3 # ,则2个
5.联合注入
输入1' union select 1,2 #
return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);
- select|update|delete|drop|insert|where:这部分表示匹配其中的任何一个单词。| 是一个逻辑“或”操作符,意味着它会匹配它前面的或后面的任何一个模式。
- \.:. 在正则表达式中是一个特殊字符,代表匹配任何字符(除了换行符)。为了匹配实际的点字符.,我们需要使用 \.。
- i:这是一个修饰符,表示匹配是不区分大小写的。
- 代码会检查$inject字符串中是否包含“select”、“update”、“delete”、“drop”、“insert”、“where”或点.(不考虑大小写)。
- 如果匹配到任何这些模式,preg_match会返回1,表示匹配成功。如果没有匹配到,它会返回0。
- return 关键字表示这个函数会直接返回preg_match的结果。
本行代码是关键字过滤,且无视大小写。
通过检查用户输入(这里是 $inject )中是否包含这些可能用于构造恶意SQL语句的关键字,如果包含则可能拒绝该输入或采取其他安全措施。
因包含select,所以要绕过,
使用堆叠注入。
输入1' ; show databases; #
发现supersqli数据库名和题目一样,猜测有flag
输入1';use supersqli;show tables;#
有两个表,先打开看看有什么字段
(纯数字为表名要打引号)
查看191,输入1';use supersqli; show columns from `1919810931114514`;#
发现flag。
输入1';rename tables `words` to `words1`;rename tables `1919810931114514` to `words`; alter table `words` change `flag` `id` varchar(100);#
- - 1'; :闭合前面可能存在的SQL语句,并开始注入新的恶意语句。
- - rename tables 'words' to 'words1'; :将名为 words 的表重命名为 words1 。
- - rename tables '1919810931114514' to 'words'; :将名为 1919810931114514 的表重命名为 words ,这可能是攻击者事先创建的一个表,里面可能包含恶意数据或结构。
- - alter table 'words' change 'flag' 'id' varchar(100); :修改 words 表(此时已经是攻击者重命名后的表)中名为 flag 的列,将其重命名为 id ,并将数据类型设置为 varchar(100) 。这样做可能是为了隐藏真正的 flag 列,或者是为了后续的操作做准备,比如将恶意数据插入到该列中。
- - # :注释掉后面可能存在的其他SQL代码,确保注入的语句能够完整执行
在SQL中, rename 用于更改对象的名称。
本行代码中已知表 words 为查询的默认表,则可以利用 rename 关键字将 表word改名为words,并将表 1919810931114514改名为 word,这样默认查询的表就变成了原先的 表1919810931114514,并将列 flag 改为 id,这样进行查询,用万能语句,得到flag
1' or 1=1#
get_post
用GET方式,直接在URL输入?a=1
用POST方式,点post data,输入b=2
NewsCenter
(题目加载不出来,就只看了看别人的博客)
相关文章:

攻防世界_SQL注入
inget 尝试万能钥匙。 输入?id1or11# supersqli 1.找注入点 输入框 2.判断字符型,数字型 输入1 and 11 和1 and 12,发现两次提交后页面一样,判断出为字符型注入 3.判断闭合符号 输入1,回显正常 输入1,报错 加上…...
Ruby语言的数据结构
Ruby语言的数据结构详解 Ruby是一种动态、面向对象的编程语言,因其简洁优雅的语法而受到开发者的喜爱。在Ruby中,数据结构是构建和管理数据的一种方式,不同的数据结构适用于不同的场景。本文将详细探讨Ruby中的几种主要数据结构,…...

Jmeter配置服务代理器 Proxy(二)
1.创建脚本记录器 2.配置:Jmeter代理、端口、记录目标等 3.配置谷歌浏览器代理 浏览器配置代理的详细教程可参考:使用whistle代理-CSDN博客 4.启动Jmeter记录器 点击ok后弹出这个界面,生成了证书: 5.给浏览器安装Jmeter代理的证书…...
Spring Boot 中实现 WebSocket 的方式
在 Spring Boot 中实现 WebSocket 的方式主要有以下几种,每种方式适用于不同的场景和需求: 1. 基于 Spring WebSocket 的实现 特点: 原生支持 WebSocket,基于 Spring 提供的 API。使用 WebSocketConfigurer 和 WebSocketHandler 配置端点和消息处理逻辑。可以通过拦截器访…...

C语言初阶习题【29】杨氏矩阵
1. 题目描述——杨氏矩阵 有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在。 要求:时间复杂度小于O(N); 2. 思路 3. 代码实现1 #include<stdio.h>void fin…...

[操作系统] 深入理解操作系统的概念及定位
概念 任何计算机系统都包含⼀个基本的程序集合,称为操作系统(OS)。 其核心功能如图片所示,包括: 内核 (Kernel): 内核是操作系统的核心部分,被认为是狭义上的操作系统,直接与硬件打交道。负责进程管理、内…...
Java中对list数据进行手动分页(可直接复用版)
1.获取list列表数据 // 这边用的mybatisplus查询的sql。条件自己组装 List<实体类> result baseMapper.getPageData(lambdaQuery); 2.计算总记录数 // 计算总记录数 int totalRecords result.size(); 3.创建分页对象,并塞入结果值 // 创建分页对象 IPa…...

【HarmonyOS NEXT】鸿蒙跳转华为应用市场目标APP下载页
【HarmonyOS NEXT】鸿蒙跳转华为应用市场目标APP下载页 一、问题背景: 如今,大家都离不开各种手机应用。随着鸿蒙系统用户越来越多,大家都希望能在鸿蒙设备上快速找到想用的 APP。华为应用市场里有海量的 APP,但之前从鸿蒙设备进…...

《研发管理 APQP 软件系统》——汽车电子行业的应用收益分析
全星研发管理 APQP 软件系统在汽车电子行业的应用收益分析 在汽车电子行业,技术革新迅猛,市场竞争激烈。《全星研发管理 APQP 软件系统》的应用,为企业带来了革命性的变化,诸多收益使其成为行业发展的关键驱动力。 《全星研发管理…...

【IDEA 2024】学习笔记--文件选项卡
在我们项目的开发过程中,由于项目涉及的类过多,以至于我们会打开很多的窗口。使用IDEA默认的配置,个人觉得十分不便。 目录 一、设置多个文件选项卡按照文件字母顺序排列 二、设置多个文件选项卡分行显示 一、设置多个文件选项卡按照文件字…...
Android SystemUI——服务启动流程(二)
在 Andorid 系统源码中,package/apps下放的是系统内置的一些 APP,例如 Settings、Camera、Phone、Message 等等。而在 framework/base/package 下,它们也是系统的 APP,SystemUI 就在此目录下。它控制着整个 Android 系统的界面,但其实他也是一个 APP,不同于一般的 APP,它…...
iOS - 内存对齐
1. 基本的内存对齐 // 对象内存对齐 struct objc_object {// isa 指针 8 字节对齐isa_t isa __attribute__((aligned(8))); };// 定义对齐常量 #define WORD_MASK 7UL // 字对齐掩码 #define WORD_SHIFT 3UL // 字对齐位移 #define WORD_SIZE 8 …...

小游戏前端地区获取
目前前端获取除了太平洋,没有其它的了。 //在JS中都是使用的UTF-8,然而requst请求后显示GBK却是乱码,对传入的GBK字符串,要用数据流接收,responseType: "arraybuffer" tt.request({url: "https://whoi…...

AIGC时代:如何快速搞定Spring Boot+Vue全栈开发
文章目录 一、Spring Boot基础二、Vue.js基础三、Spring Boot与Vue.js集成四、性能优化与最佳实践《快速搞定Spring BootVue全栈开发》 内容简介作者简介目录前言/序言本书内容本书特点读者对象 随着人工智能生成内容(AIGC)技术的迅速发展,…...
MDX语言的多线程编程
MDX语言的多线程编程 引言 多线程编程是一种重要的编程技术,广泛用于提高程序的运行效率和响应速度。随着计算机硬件的发展,多核处理器的普及,多线程编程显得尤为重要。MDX(Multi-dimensional Expressions)语言作为一…...
Vue.js组件开发-实现输入框与筛选逻辑
在Vue.js组件开发中,实现输入框与筛选逻辑通常涉及创建一个输入框组件,让用户能够输入搜索关键字,并根据这些关键字过滤一个数据列表。 步骤 准备数据: 在Vue组件中,准备一个数据列表(通常是一个数组…...

配置Allure环境变量【macOS版】
1. 进入github官网,搜索allure 点击进入,下滑找到Download栏目,点击release 2. 下载安装包并解压 我下载的是zip,解压至存放目录,复制该目录。(一会配置环境变量用) 3. 编辑.zsrch文件&…...
AndroidStudio升级到2024.2.2项目AGP升级8.8.0版本记录
背景 升级as,一般会把agp一起升级。我的原来版本是8.7.2 plugins {id com.android.application version 8.7.2 apply falseid com.android.library version 8.7.2 apply falseid org.jetbrains.kotlin.android version 1.8.10 apply false }升级后版本:…...
Require:利用MySQL binlog实现闪回操作
1,闪回原理 【binlog】MySQL binlog以event的形式,记录了MySQL server从启用binlog以来所有的变更信息,能够帮助重现这之间的所有变化。MySQL引入binlog主要有两个目的:一是为了主从复制;二是某些备份还原操作后需要重…...

计算机网络 (40)域名系统DNS
前言 计算机网络域名系统DNS(Domain Name System)是互联网的基础技术之一,它负责将人类可读的域名转换为计算机用来通信的数字IP地址。 一、基本概念 DNS的主要目的是将域名解析或翻译为IP地址,使得用户可以通过简单易记的域名来访…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...

【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...