如何判断注入点传参类型--理论

注入点传参类型

在我们找到注入点后,首先要判断传参的类型,才能以正确的形式向数据库查询数据。

注入点传参一般分为数字型和字符型。

数字型:当传入的参数为整形时,存在SQL注入漏洞,就可以认为是数字型注入。
字符型:当传入的参数需要引号闭合才能查询时,可以认为是字符型注入。

例如数字型语句:select * from table where id =3
则字符型如下:select * from table where name=’admin’

如何判断传参类型?

我们以sqli-labs的题目为例:

单引号闭合

要我们传入参数id,且参数值为数字:
在这里插入图片描述

我们传参?id=1,搜索到了相应的数据:
在这里插入图片描述

说明我们输入的数据被拼接到SQL查询语句中,在数据库中进行了查询。
如果注入点传参是数字型,根据页面回显猜测一下后端的查询语句:

SELECT name,Password FROM <表名> WHERE id=<我们输入的参数值>;

我们输入数字,该语句就把我们输入的 1 带入到<我们输入的参数值>位置进行了查询。

同样,如果注入点传参是字符型,该查询语句也可能是这样的:

--双引号闭合
SELECT name,Password FROM <表名> WHERE id="<我们输入的参数值>";--单引号闭合
SELECT name,Password FROM <表名> WHERE id='<我们输入的参数值>';

这样的语句,我们输入整形数 1 ,后端是把 1 用引号包围起来再带入查询语句查询的。

根据可能存在的这几种传参形式,我们采用以下步骤进行测试:

在输入的整形数 1 后面增加单引号 '如果是单引号闭合,那么语句就会变成:
SELECT name,Password FROM <表名> WHERE id='1'';
我们输入的单引号与前面的单引号组合,导致后面多出了一个单引号,就会导致 后面引号未闭合的错误,从而查询失败,页面报错。如果是双引号闭合,那么语句是:
SELECT name,Password FROM <表名> WHERE id="1'";
双引号与双引号闭合,我们输入的 1' 被带入数据库查询,且可以匹配到 id=1 的行,查询成功。如果是数字型传参,那么语句是:
SELECT name,Password FROM <表名> WHERE id=1';
后面多出了一个单引号,导致 引号未闭合的错误,从而查询失败,页面报错。

我们输入?id=1',发现报错:

''1'' LIMIT 0,1' at line 1也就是 '1'' LIMIT 0,1 处发生了错误,可见是我们输入的 1' 导致后面的单引号未能闭合,说明这里是单引号闭合。

在这里插入图片描述所以后端SQL查询语句应该是:

SELECT name,Password FROM <表名> WHERE id='<我们输入的参数值>' LIMIT 0,1;

如果我们输入?id=1' --+,利用 --+ 将后面的语句注释掉。
语句就变成了:

SELECT name,Password FROM <表名> WHERE id='1' --+' LIMIT 0,1;有效部分:
SELECT name,Password FROM <表名> WHERE id='1';

查询又能成功进行。
成功判断出注入点类型为单引号闭合的字符型

整型闭合

在输入的整形数 1 后面增加单引号 '如果是整型闭合,那么语句就会变成:
SELECT name,Password FROM <表名> WHERE id=1';
后面多出了一个单引号,导致 引号未闭合的错误,从而查询失败,页面报错。在输入的整形数 1 后面增加双引号 "如果是整型闭合,那么语句就会变成:
SELECT name,Password FROM <表名> WHERE id=1";
后面多出了一个双引号,导致 引号未闭合的错误,从而查询失败,页面报错。

所以如果是整型闭合,我们在后面加引号都会导致报错。

添加双引号报错:
在这里插入图片描述添加单引号报错:
在这里插入图片描述
说明是整形闭合。

单引号+括号闭合

当我们测试是否为单引号闭合时,报错如下:
在这里插入图片描述
我们猜测后端查询语句如下:

SELECT <字段名> FROM <表名> WHERE id=('<参数>');

因此当我们输入 1’ 后语句变成:

SELECT <字段名> FROM <表名> WHERE id=('1'');

导致多出了单引号 ’ 无法闭合,产生错误。

所以我们传参 1’) 并注释掉后面的语句:

SELECT <字段名> FROM <表名> WHERE id=('1')--+');

成功闭合,查询成功。

单引号+单括号闭合 的情况下,
输入的参数以单引号’ 和 ')闭合时,都会导致后面的符号不能闭合而报错。
输入整型数 和 双引号" 则可以带入数据库成功查询。

对双引号+单括号 ") 同理。
同样的,SQL查询中还存在 引号+多重括号 。

判断方法是:
先判断引号的类型是单引号还是双引号。
然后在外层加括号并注释后面的语句,能成功查询的就是正确的闭合方式。

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

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

相关文章

HarmonyOS(57) UI性能优化

性能优化是APP开发绕不过的话题&#xff0c;那么在HarmonyOS开发过程中怎么进行性能优化呢&#xff1f;今天就来总结下相关知识点。 UI性能优化 1、避免在组件的生命周期内执行高耗时操作2、合理使用ResourceManager3、优先使用Builder方法代替自定义组件4、参考资料 1、避免在…

AI Prompt Engineering

AI Prompt Engineering 简介 Prompt Engineering, 提示工程&#xff0c;是人工智能领域的一项技术&#xff0c;它旨在通过设计高效的提示词&#xff08;prompts&#xff09;来优化生成式 AI&#xff08;如 GPT、DALLE 等&#xff09;的输出。提示词是用户与生成式 AI 交互的核…

NVR接入录像回放平台EasyCVR视频融合平台加油站监控应用场景与实际功能

在现代社会中&#xff0c;加油站作为重要的能源供应点&#xff0c;面临着安全监管与风险管理的双重挑战。为应对这些问题&#xff0c;安防监控平台EasyCVR推出了一套全面的加油站监控方案。该方案结合了智能分析网关V4的先进识别技术和EasyCVR视频监控平台的强大监控功能&#…

大语言模型中ReLU函数的计算过程及其函数介绍

文章目录 概要ReLU定义 概要 **ReLU 作用&#xff1a;**主要用于为神经网络引入非线性能力&#xff0c;作用是将输入中的整数保留原值&#xff0c;负数置为 0。 从而在层与层之间引入非线性&#xff0c;使神经网络能够拟合复杂的非线性关系。 **ReLU使用场景&#xff1a;**Lla…

【图像检测】深度学习与传统算法的区别(识别逻辑、学习能力、泛化能力)

识别逻辑 深度学习 使用了端到端的学习策略&#xff0c;直接学习从图像到检测结果的映射关系&#xff0c;自动提取特征&#xff0c;并且根据特征与特征之间的关系&#xff0c;计算出检测结果。 传统算法 则是人工提取特征&#xff0c;比如边缘特征&#xff0c;直线特征&#x…

C++-第25课-哈希表性能的分析

目录 一、哈希表概述 1. 什么是哈希表​编辑 2. 哈希表的优点 3. 哈希表的缺点 二、哈希函数 常见哈希函数 三. 哈希冲突的原因和解决方法 一.哈希冲突的原因 二、哈希冲突的解决方法 1. 链表法&#xff08;Separate Chaining&#xff09; 2. 开放寻址法&#xff08;…

HDMI数据传输三种使用场景

视频和音频的传输 在HDMI传输音频中有3种方式进行传输&#xff0c;第一种将音频和视频信号被嵌入到同一数据流中&#xff0c;通过一个TMDS&#xff08;Transition Minimized Differential Signaling&#xff09;通道传输。第二种ARC。第三张种eARC。这三种音频的传输在HDMI线中…

LCR 184.设计自助结算系统

1.题目要求: 2.题目代码: class Checkout { public:deque<int> array;Checkout() {array.clear();}//求最大值int get_max() {if(array.size() 0){return -1;}else{vector<int> temp(array.begin(),array.end());vector<int> :: iterator it max_element…

Vue3-小兔鲜项目出现问题及其解决方法(未写完)

基础操作 &#xff08;1&#xff09;使用create-vue搭建Vue3项目 要保证node -v 版本在16以上 &#xff08;2&#xff09;添加pinia到vue项目 npm init vuelatest npm i pinia //导入creatPiniaimport {createPinia} from pinia//执行方法得到实例const pinia createPinia()…

VUE:基于MVVN的前端js框架

文章目录 vue框架v-show vue框架 注意是 先写函数名&#xff0c;再写function。 handle:function (){}下面是错误的 function:handle(){}3 v-show 本质上等于号后面还是判断条件&#xff0c;所以不能写赋值语句&#xff0c;下面是正确的 下面是错误的 v-show " ge…

金融数据中心容灾“大咖说” | Veritas的“高举高打”之道

中国人民银行发布的《金融数据中心容灾建设指引》&#xff08;JR/T 0264—2024&#xff09;已于2024年7月29日正式实施。这一金融行业标准对金融数据中心容灾建设中的“组织保障、需求分析、体系规划、建设要求、运维管理”进行了规范和指导。面对不断增加的各类网络、业务、应…

VUE字符串转日期加天数

文章为本新手菜鸡的问题记录&#xff0c;如有错误和不足还行大佬指正 文章目录 问题描述解决方法 问题描述 得到一串字符串的日期&#xff0c;因为不是规范的日期格式&#xff0c;无法使用moment().add()方法&#xff0c;那么如何实现增加天数的操作&#xff1f; 解决方法 1…

高校企业数据挖掘平台推荐

TipDM数据挖掘建模平台是由广东泰迪智能科技股份有限公司自主研发打造的可视化、一站式、高性能的数据挖掘与人工智能建模服务平台&#xff0c;致力于为使用者打通从数据接入、数据预处理、模型开发训练、模型评估比较、模型应用部署到模型任务调度的全链路。平台内置丰富的机器…

《TCP/IP网络编程》学习笔记 | Chapter 14:多播与广播

《TCP/IP网络编程》学习笔记 | Chapter 14&#xff1a;多播与广播 《TCP/IP网络编程》学习笔记 | Chapter 14&#xff1a;多播与广播多播多播的数据传输方式和特点路由&#xff08;Routing&#xff09;和 TTL&#xff08;Time to Live&#xff0c;生存时间&#xff09;&#xf…

利用 TensorFlow Profiler:在 AMD GPU 上优化 TensorFlow 模型

TensorFlow Profiler in practice: Optimizing TensorFlow models on AMD GPUs — ROCm Blogs 简介 TensorFlow Profiler 是一组旨在衡量 TensorFlow 模型执行期间资源利用率和性能的工具。它提供了关于模型如何与硬件资源交互的深入见解&#xff0c;包括执行时间和内存使用情…

游戏引擎学习第15天

视频参考:https://www.bilibili.com/video/BV1mbUBY7E24 关于游戏中文件输入输出&#xff08;IO&#xff09;操作的讨论。主要分为两类&#xff1a; 只读资产的加载 这部分主要涉及游戏中用于展示和运行的只读资源&#xff0c;例如音乐、音效、美术资源&#xff08;如 3D 模型和…

(二)Ubuntu22.04+Stable-Diffusion-webui AI绘画 中英双语插件安装

一、说明 看情况添加 二、双语安装 双语插件 https://github.com/journey-ad/sd-webui-bilingual-localization 中文语言包 https://github.com/dtlnor/stable-diffusion-webui-localization-zh_CN 先装中文语言包 错误&#xff1a;AssertionError: extension access disable…

UE5 DownloadImage加载jpg失败的解决方法

DownloadImage加载jpg失败的解决方法 现象解决方案具体方法 现象 用UE自带的 DownloadImage 无法下载成功&#xff0c;从 failure 引脚出来。 接入一个由监控器自动保存起的图像&#xff0c;有些可以正常加载成功&#xff0c;有些无法加载成功。 经调查问题出现在&#xff0c;…

Elasticsearch 中的热点以及如何使用 AutoOps 解决它们

作者&#xff1a;来自 Elastic Sachin Frayne 探索 Elasticsearch 中的热点以及如何使用 AutoOps 解决它。 Elasticsearch 集群中出现热点的方式有很多种。有些我们可以控制&#xff0c;比如吵闹的邻居&#xff0c;有些我们控制得较差&#xff0c;比如 Elasticsearch 中的分片分…

Statsmodels之OLS回归

目录 Statsmodels基本介绍OLS 回归实战实战1&#xff1a;实战2&#xff1a; Statsmodels基本介绍 Statsmodels 是 Python 中一个强大的统计分析包&#xff0c;包含了回归分析、时间序列分析、假设检验等等的功能。Statsmodels 在计量的简便性上是远远不及 Stata 等软件的&…