一.前言

本章节我们来讲解一下sql注入的分类,主要分为四类,数字型、字符型、搜索型、xx型。

二.数字型

数字型注入的时候,是不需要考虑单\双引号闭合问题的,因为sql语句中的数字是不需要用引号括起来的,如下

mysql> select username,email from member where id=1;

mysql> select username,email from member where id=1 or 1=1;

1 or 1=1 #

注入成功,看一下后台代码

这里并没有加上引号,所以我们不需要加上引号。

注意:我们判断是否为数字型注入,不是通过前端页面上看到的数据是数字就判断它是数字型注入,也 有可能是伪数字型,因为后台处理的时候可能是将前端传递过来的数字通过引号括起来了,也就是作为 了字符串来处理,所以要多尝试。

三.字符型

字符串类型的输入方式

我们得先检查phpstudy的魔术符号是否开启了,这是phpstudy的一个安全机制,我们关闭它

xxx' or 1=1 #

这个我们前面看过源码了,这里就不再看了。

四.搜索型

打开pikachu平台,在SQL-Inject下选择搜索型注入,然后随意输入一个字母,能看到匹配出了对应的信 息,也就是模糊搜索,用到了%通配符。按照SQL的模糊查询命令 select * from 表名 where 字段名like '%(对应值)%'; ,发现可以按照之前的思路来实现万能语句的拼接。

比如下面sql语句中的 like %vince% 的意思是:xxvincexx、vincexx、xxvince等数据都能匹配到。

%xxxx%' or 1=1 #

这个就也不给大家看源码啦,因为和字符型都差不多啦,主要就是闭合括号啦。

五.xx型

XX型是由于SQL语句拼接方式不同,注入语句如下:

mysql> select * from member where username=('vince') ;

mysql> select * from member where username=('xx') or 1=1;

所以我们主要就是要左边括号给闭合

XX') or 1=1#

六.总结

本章节讲解了不同类型的sql注入,但是大家仔细发现就能知道,当然还有一个json类型的没和大家介绍,这个其实都大差不差,主要是看里面的值是啥类型的啦!后面会持续更新,期待大家的点赞关注加收藏

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

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

相关文章

Elasticsearch Rails 实战全指南(elasticsearch-rails / elasticsearch-model)

一、背景与生态总览 elasticsearch-rails:面向 Rails 的“伴生库”,为 Rails 项目带来 Rake 任务、日志埋点、模板等特性。elasticsearch-model:把 ES 能力“混入”到 Ruby 模型(ActiveRecord/Mongoid),提供…

第三阶段数据库-2:数据库中的sql语句

1_数据库操作(1)注释:-- 单行注释 /**/ 多行注释(2)创建数据库:create database 数据库名-- create database 数据库名 create database db_first;(3)查询数据库:if exsists(select…

python中的filter函数

目录 定义与参数说明 特点 使用场景 常用操作 筛选偶数 去除空字符串 筛选正数 筛选字典 配合集合与元组 注意事项 定义与参数说明 filter函数是Python内置的高阶函数之一,用于筛选可迭代对象中的元素,根据返回值的布尔结果(True 或…

BERT(Bidirectional Encoder Representations from Transformers)模型详解

一、BERT 简介BERT(Bidirectional Encoder Representations from Transformers)是由 Google 在 2018 年提出的一种预训练语言表示模型。它基于 Transformer 编码器结构,首次提出了 双向上下文建模 的方法,大幅度提升了自然语言处理…

【开题答辩全过程】以 基于Springboot+微信小程序的网上家教预约系统的设计与实现-开题为例,包含答辩的问题和答案

个人简介:一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧…

课小悦系列智能耳机上市,用硬核科技为教育赋能

在人工智能与教育深度融合的浪潮中,深圳课小悦科技有限公司以“智慧教育专家”的姿态崭露头角。这家深耕智能教育硬件的创新企业,于2025年8月正式推出革命性产品H360PRO系列教考耳机,为语言学习场景提供颠覆性解决方案。创新基因:…

[react] class Component and function Component

我对react的用法理解还一直停留在多年以前,说明这段时间我没有更新react的知识。我大脑中记得还是使用Class Component this.setState,可是今天看了看react的文档,发现怎么不一样了,用的都是function useState的方式了。你知道这…

以太坊智能合约地址派生方式:EOA、CREATE 和 CREATE2

1. 引言 在以太坊上,智能合约可以通过以下三种方式之一进行部署: 1)由外部账户(Externally Owned Account, EOA)发起交易,其中 to 字段设为 null,而 data 字段包含合约的初始化代码。2&#x…

基于RISC-V架构的国产MCU在eVTOL领域的应用研究与挑战分析

摘要电动垂直起降飞行器(eVTOL)作为未来城市空中交通的重要组成部分,对嵌入式控制系统的性能、可靠性和安全性提出了极高的要求。RISC-V作为一种新兴的开源指令集架构,为国产微控制器(MCU)的研发和应用带来…

深度学习中的“集体智慧”:Dropout技术详解——不仅是防止过拟合,更是模型集成的革命

引言:从“过拟合”的噩梦说起 在训练深度学习模型时,我们最常遇到也最头疼的问题就是过拟合(Overfitting)。 想象一下,你是一位正在备考的学生: 欠拟合:你根本没学进去,所有题都做错…

在JavaScript中,比较两个数组是否有相同元素(交集)的常用方法

方法1:使用 some() includes()(适合小数组)function haveCommonElements(arr1, arr2) {return arr1.some(item > arr2.includes(item)); }// 使用示例 const arrA [1, 2, 3]; const arrB [3, 4, 5]; console.log(haveCommonElements(ar…

心路历程-Linux的系统破解详细解说

CentOS7系统密码破解 密码破解是分两种情况的;一种是在系统的界面内,一种就是不在系统的页面; 今天我们就来聊聊这个系统破解的话题; 1.为什么需要破解密码?–>那当然是忘记了密码;需从新设置密码 2.但是…

IDE和AHCI硬盘模式有什么区别

IDE(Integrated Drive Electronics)和 AHCI(Advanced Host Controller Interface)是硬盘控制器的工作模式,主要区别在于性能、功能兼容性以及对现代存储设备的支持程度。以下是详细对比和分析:一、本质区别…

【密码学实战】密码实现安全测试基础篇 . KAT(已知答案测试)技术解析与实践

KAT 测试技术解析 在密码算法的安全性验证体系中,Known Answer Test(KAT,已知答案测试)是一项基础且关键的技术。它通过 “已知输入 - 预期输出” 的确定性验证逻辑,为密码算法实现的正确性、合规性提供核心保障&…

如何用Redis作为消息队列

说明:以前背八股文,早就知道 Redis 可以作为消息队列,本文介绍如何实现用 Redis 作为消息队列。 介绍 这里直接介绍 yudao 框架中的实现。yudao 是一套现成的开源系统框架,里面集成了许多基础功能,我们可以在这基础上…

解决 uniapp 修改index.html文件不生效的问题

业务场景:需要在H5网站设置追踪用户行为(即埋点)的script代码。 问题:无论如何修改根目录下的index.html文件都不会生效 问题原因:在 manifest.json 文件中有个【web配置】—>【index.html模版路径】,…

C语言第十一章内存在数据中的存储

一.整数在内存中的存储在计算机内存中,所有的数字都是以二进制来存储的。整数也不例外,在计算机内存中,整数往往以补码的形式来存储数据。这是为什么呢?在早期计算机表示整数时,最高位为符号位。但是0却有两种表示形式…

K8s部署dashboard平台和基本使用

Kubernetes 的默认 Dashboard 主要用于基本的资源查看与管理,如查看 Pod、Service 等资源的状态,进行简单的创建、删除操作 。然而,在企业级复杂场景下,其功能显得较为局限。 与之相比,开源的 Kubernetes Dashboard 增强版工具 ——Dashboard UI ,为用户带来了更强大的功…

JavaEE进阶-文件操作与IO流核心指南

文章目录JavaEE进阶文件操作与IO流核心指南前言:为什么需要文件操作?一、java.io.File 类的基本用法1.1 文件路径1.2 常用方法示例获取文件信息创建和删除文件目录操作文件重命名和移动二、IO流的基本概念2.1 核心困境:字节流 vs. 字符流字节…

动手学深度学习03-线性神经网络

动手学深度学习pytorch 参考地址:https://zh.d2l.ai/ 文章目录动手学深度学习pytorch1-第03章-线性神经网络1. 线性回归1.1 什么是线性回归?1.2 如何表示线性回归的预测公式?2. 损失函数2.1 什么是损失函数?2.2 如何表示整个训练集…