SQL注入基础知识

news2024/12/26 21:33:18

文章目录

  • 一、注入的分类
    • 1.基于服务器收到的响应
    • 2.基于处理输入的SQL查询(数据类型)
    • 3.基于程度和顺序的注入(哪里受了影响)
    • 4、基于注入点位置
  • 二、系统函数
    • 1.字符串连接函数
    • 2.一般用于尝试的语句
    • 3.union操作符的介绍
  • 总结

一、注入的分类

1.基于服务器收到的响应

  • 基于错误的SQL注入
  • 联合数据类型
  • 堆查询注入
  • SQL盲注(时间,布尔,报错)

2.基于处理输入的SQL查询(数据类型)

  • 字符串
  • 数字或整数

3.基于程度和顺序的注入(哪里受了影响)

  • 一阶注入
  • 二阶注入
    一阶注入直接对web产生影响,二阶注入间接对web产生影响

4、基于注入点位置

  • 表单域的位置注入
  • cookie注入
  • 通过服务器变量(基于头部信息的注入)

二、系统函数

  • version()—mysql的版本号
  • user()—用户名
  • database()—数据库
  • @@datadir—数据库路径
  • @@version_compile_os—操作系统版本号

1.字符串连接函数

  • concat(str1,str2,....)没有分割符的连接字符串
  • concat_ws(separet,str1,str2...)有分割符的连接字符串
  • group_concat(str1,str2...)连接一个组的所有字符串并用逗号隔开

2.一般用于尝试的语句

  • --+可用#来代替#编码后的结果是%23
  • or 1=1–+
  • ’ or 1=1–+
  • " or 1=1–+
  • ) or 1=1–+
  • ') or 1=1–+
  • ") or 1=1–+
  • ")) or 1=1–+
    一般的代码格式为:
 $id=$_GET['id']
 $sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

一般考虑闭合前面的或者闭合后面的,一般采用两种思想闭合后面的引号或者注释掉,注释采用
--+或#(%23)

3.union操作符的介绍

union操作的符用于合并两个或多个select语句,两个语句的操作符需要拥有相同的列和数据类型。
SQL UNION语法

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name

注释:默认选取不重复的值,如果想要重复的值使用union all

SQL 中的逻辑运算

举出一个例子进行说明:

select *from spirt where users="hello" and password="" or 1=1--+

and的优先级高于or,users and password =false而or 1=1恒为真。所以结果就恒为真了。
在这里插入图片描述

  1. select *from user where id=1 and 1=1;
  2. select *from user where id=1 && 1=1;
  3. select *from user where id=1 & 1=1;
    面1和2是一样的,3是按位相与。(&的优先级大于=)

注入流程

在这里插入图片描述
以下简述mysql的一些基本操作,用来检查数据库中的基本内容信息。

show databases;//检查有哪些数据库
use security;//使用security数据库
show tables;//查看security数据库中有哪些表
desc mails;//查看这个表的结构

mysql中有一个information_schema,存储着所有的数据库的相关信息。
一般我们利用该表可以进行一次完整的注入。
猜数据库

select schema_name from information_schema.schemata

猜某库的数据表

selece table_name from information_schema.tables where  table_schema="";

猜某表对所有列

select column_name from information_schema.columns where table_name="";

获取某列的内容

select *** from ***;

总结

原谅我这一生不羁放荡来自由。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

caught (in promise) RangeError: Maximum call stack size exceeded-vue前置导航守卫死循环

报错图 产生场景 1.近期在搭建移动端的架子时,在写路由守卫时,发现陷入死循环,报错意思是循环超出栈。。 2.后面排查了一圈问题之后,发现这个问题很小,但很难发现,在此记录。 3.vue 路由的导航守卫并不是…

类和对象【4】static成员、const对象、友元

全文目录 引言static成员static成员变量static成员函数 const对象友元友元函数友元类 总结 引言 通过前面的三篇文章,相信大家对类和对象已经有了一个基本的认识。 类和对象1(初识) 类和对象2(默认成员函数) 类和对象…

数据结构与算法11:堆

目录 【堆】 堆中插入和删除元素 堆排序 【堆的常见应用】 应用1:优先级队列 (1)合并有序小文件 (2)定时器功能 应用2:计算排行榜中前K个数据 应用3:求中位数 应用4:计算…

算法基础--MD5算法介绍

1、简介 MD5再开发过程中经常碰到的一种算法,因此感觉有必要对其原理进行更深入的了解一下。 2、算法概念 散列函数,也称作哈希函数,消息摘要函数,单向函数或者杂凑函数。散列函数主要用于验证数据的完整性。通过散列函数&#x…

自然语言处理从入门到应用——自然语言处理的应用任务

分类目录:《自然语言处理从入门到应用》总目录 本文介绍信息抽取、情感分析、问答系统、机器翻译和对话系统等自然语言处理应用任务。这些任务可以直接或间接地以产品的形式为终端用户提供服务,是自然语言处理研究应用落地的主要技术。 信息抽取 信息抽…

天气预报信息获取程序--GUI--可以使用

上次正对项目中需要填写项目日志,制作了一个命令行版本的下载天气信息的程序,满足日常需要,调整一下界面版本的程序 如果大家使用命令行的可以使用下面的版本(连接) https://ht666666.blog.csdn.net/article/details…

逻辑漏洞学习-知识点总结

逻辑漏洞就是程序在实现业务逻辑上存在的错误,辑漏洞的出现通常是因为程序在设计业务逻辑时考虑不够全面,或者程序员的思维过程存在瑕疵,没有充分考虑到各种可能的情况 大部分程序员在设计的时候,目标是实现功能需求,…

Linux基础知识点 有这篇就足够了!!

❄️作者介绍:奇妙的大歪❄️ 🎀个人名言:但行前路,不负韶华!🎀 🐽个人简介:云计算网络运维专业人员🐽 目录 一、 从认识操作系统开始 1.1 操作系统简介 1.2 操作系统…

chatgpt赋能Python-python分表

介绍 Python是一种流行的编程语言,适用于各种应用程序开发,包括网络应用程序、数据库应用程序以及数据分析和科学计算。Python分表是基于Python编写的分表工具,可以帮助开发人员更轻松地管理大型数据库表格。 Python分表是如何工作的&#…

0219-810

3GPP TS 02.19 V8.1.0 (2005-06) 前言 本技术规范由第三代合作伙伴计划 (3GPP) 制定。 本文件的内容取决于 TSG 的持续工作,并可能在 TSG 正式批准后发生变化。 如果 TSG 修改本文档的内容,TSG 将重新发布 确定发布日期的变化和版本号的增加如下&…

低代码开发平台选择指南:如何选出最适合企业的低代码平台?

低代码平台的兴起改变了公司处理软件开发的方式。这些平台使组织能够快速高效地构建应用程序,该应用程序可以利用预设组件和开箱功能。但是,因为有这么多低代码平台可以使用,所以为你的组织选择合适的平台可能是一个挑战。本文将探索如何低代…

FreeRTOS任务切换

PendSV异常 SVC 用于产生系统函数的调用请求。例如,操作系统不让用户程序直接访问硬件,而是通过提供一些系统服务函数,用户程序使用 SVC 发出对系统服务函数的呼叫请求,以这种方法调用它们来间接访问硬件。因此,当用户…

(字符串 ) 459. 重复的子字符串——【Leetcode每日一题】

❓459. 重复的子字符串 难度:简单 给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s “abab” 输出: true 解释: 可由子串 “ab” 重复两次构成。 示例 2: 输入: s “aba” 输出: false 示例 3: 输入: s “…

IDEA+Mysql调试常见异常解决办法_kaic

IDEA导入项目出现Error: java: 程序包javax.servlet.http不存在错误的解决办法 解决方法:打开File>Project Structure>Libraries,点击右侧加号,寻找到tomcat的lib文件夹,点击ok,IDEA会自动重新Rebuild Project&…

数据结构 | 图的深度优先遍历和广度优先遍历(C语言)

一、数据结构定义 1、图 #define MaxVertexNum 100 // 最大可存储的节点数目/*图*/ typedef char VexterType; typedef int EdgeType;typedef struct GraphMatrix {VexterType Vexs[MaxVertexNum]; //结点 EdgeType Edges[MaxVertexNum][MaxVertexNum]; //边int vexnum, a…

使用 MCSM 面板一键搭建我的世界服务器,并内网穿透公网远程联机

文章目录 前言1.Mcsmanager安装2.创建Minecraft服务器3.本地测试联机4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射内网端口 5.远程联机测试6. 配置固定远程联机端口地址6.1 保留一个固定TCP地址6.2 配置固定TCP地址 7. 使用固定公网地址远程联机 转载自远程穿透文章&…

【AI】Stable-Diffusion-WebUI使用指南

注:csdn对图片有审核,审核还很奇葩,线稿都能违规,为保证完整的阅读体验建议移步至个人博客阅读 最近AI绘画实现了真人照片级绘画水准,导致AI绘画大火,公司也让我研究研究,借此机会正好了解一下…

图像处理:GrapeCity Documents Imaging 6.1.2 Crack

适用于 .NET 6 的快速、强大的映像 API 库,在代码中应用高级图像处理,零依赖关系。 加载和保存图像文件,如BMP,JPEG,TIFF,GIF,ICO,SVG,WebP和PNG 对灰度和 RGB 图像应用抖动和阈值等…

Ribbon 负载均衡策略 —— 图解、源码级解析

文章目录 负载均衡策略RandomRuleRoundRobinRuleRetryRuleWeightedResponseTimeRuleBestAvailableRuleAvailabilityFilteringRuleZoneAvoidanceRule Ribbon 负载均衡策略源码RandomRule源码RoundRobinRule源码BestAvailableRule源码RetryRule源码 通过本文你可以学习到&#xf…

自学大语言模型之BERT

BERT 模型由 Jacob Devlin、Ming-Wei Chang、Kenton Lee 和 Kristina Toutanova在BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding中提出。它是一种双向变换器,使用掩码语言建模目标和对包含多伦多图书语料库和维基百科的大型语…