SQL注入的原理与分析

1、SQL注入的本质

2、部分SQL语句

3、SQL注入流程


一、SQL注入的本质

  SQL注入的本质,就是把用户输入的数据当作代码执行

  Web应用程序对用户输入的数据校验处理不严或者根本没有校验,致使用户可以拼接执行SQL命令

  两个必要关键的条件:

  第一,用户能够控制输入

  第二,原本程序要执行的代码拼接了用户输入的数据然后执行

二、部分SQL语句

  · column_name 字段名

  · table_name 表名

  · schema_name 库名

  · information_schema 数据库所有信息,库、表、字段

  · information_schema.columns 所有字段的信息

    table_schema 所在数据库

    table_name 所在表

    column_name 字段的名字

  · information_schema.tables  所有表的信息

    table_schema 所在数据库

    table_name 表的名字

  · information_schema.schemata 所有数据库的信息

    schema_name 数据库的名字

三、SQL注入流程

  SQL注入流程

  · 找与数据库交互的地方

  · 判断是否存在注入点,注入是字符型or数字型

  · 判断当前表的一个字段数,当前所在的库

  · 去系统自带信息库查表名,字段名

  · 查询需要的字段数据

  SQL注入步骤

  1、判断是否存在注入点

  最古老的方法:and 1=1 成立 且 and 1=2 不成立 => 存在sql注入
  最简单的方法:页面后面加单引号,若报错,则存在sql注入
  进阶:如果是数字型传参,可以尝试-1
  and 1=1 and 1=2 被拦截的可能性超高
  可以尝试 and -1 = -1 或者 -1=-2 或者1>0,,,或者直接or sleep(5)

  2、判断是字符型or数字型

  在SQL基础里第八小节里有提到过

  3、判断当前表的字段数,库名

  判断字段数:order by 字段序数   =>  这个语法是是排序语法,根据第几个字段排序,例如,该表有2个字段,若是用了 order by 3 则会报错,因为只有两个字段,不可能根据第三个字段排序。字段序数大于字段数则会报错

  库名,database() 查询当前所在 数据库函数

  4、去系统自带信息库查表名,字段名

  Ps:mysql在5.0以上版本加入了information_schema这个系统自带库,其中保存着关于mysql服务器所维护的其他数据信息,如数据库名,数据库的表,表栏的数据类型与访问权限

  Tip.  库.表 =>  选中某个库里的某个表

  ·  information_schema.tables 存放着表名和库名的对应

  ·  information_schema.coiumns 存放着字段名和表名的的对应

SQL注入的原理与分析的更多相关文章

  1. SQL注入的原理及分析

    注入攻击的本质:将用户输入的数据当做代码执行. 有2个限制条件: 1.用户能够控制输入. 2.原本程序要执行的代码,拼接了用户输入的数据后进行执行. 定义:用户输入的数据被当做SQL语句执行. 以下面 ...

  2. SQL注入漏洞原理与利用

    SQL注入漏洞原理与利用 SQL注入漏洞流程 判断注入类型 判断字段个数 查询回显位 查询数据库名 查询表.字段名 查询内容 判断注入类型 1.数字型注入点判断 当要输入的参数x为数字型时,后端脚本中 ...

  3. Sql注入基础原理介绍

    说明:文章所有内容均截选自实验楼教程[Sql注入基础原理介绍]~ 实验原理 Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击, ...

  4. Mybatis下的SQL注入漏洞原理及防护方法

    目录 一.前言 二.SQL 注入漏洞原理 1.概述 2.漏洞复现 3.修复建议 三.Mybatis 框架简介 1.参数符号的两种方式 2.漏洞复现 四.Mybatis 框架下的 SQL 注入问题及防护 ...

  5. 【荐】PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

    我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特 ...

  6. PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

    我们都知道,只要合理正确使用PDO(PDO一是PHP数据对象(PHP Data Object)的缩写),可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_ ...

  7. 【漏洞复现】CVE-2022–21661 WordPress核心框架WP_Query SQL注入漏洞原理分析与复现

    影响版本 wordpress < 5.8.3 分析 参考:https://blog.csdn.net/qq_46717339/article/details/122431779 在 5.8.3 ...

  8. 【渗透课程】第五篇-SQL注入的原理

    哈哈哈,讲到注入了.我想给大家讲注入的原理.这个我们前面的前言篇就说过,所谓的SQL注入就是,绕过数据库验证机制直接执行SQL语句.怎么说呢,我们先讲一个概念吧! 网站和网页的区别 单纯的网页是静态的 ...

  9. SQL注入的原理及一般步骤

    原理 SQL注入是一种攻击方式,在这种攻击方式中,恶意代码被插入到字符串中,然后该字符串传递到SQL Server的实例以进行分析和执行.任何构成SQL语句的过程都应进行注入检查,因为SQL Serv ...

  10. SQL注入的原理以及危害

    SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符 ...

随机推荐

  1. Intel酷睿Ultra隆重登场:28W能效逆天!AI性能领先竞品5.4倍

    作为Intel 1971年首款微处理器4004诞生以来变革幅度最大的产品,代号Meteor Lake的第一代酷睿Ultra今天终于正式发布了!相关笔记本.迷你机产品也会陆续发布上市. 有关于酷睿Ult ...

  2. zblog文章采集发布插件-免费下载

    推荐一款可以自动采集网页文章,并发布到zblog系统网站的zblog采集发布插件,支持简数采集器,火车头数据采集器,八爪鱼文章采集器,后羿采集器等...... zblog采集发布插件使用教程如下: 1 ...

  3. PHP截取文章内容

    <?php /** * 实现中文字串截取无乱码的方法. */ function getSubstr($string, $start, $length) { if (mb_strlen($stri ...

  4. CF1859

    A 让 \(c\) 保存数组中所有最大的数,如果所有数都相等则 \(-1\). B 只需要记录每个序列的最小值和次小值,然后对次小值求前后缀和. C 枚举最大值 \(mx\),然后遍历 \(i:n\s ...

  5. Sentinel 源码学习

    引入依赖 <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-co ...

  6. ORACLE SEQUENCE 详解

    1.    About Sequences(关于序列) 序列是数据库对象一种.多个用户可以通过序列生成连续的数字以此来实现主键字段的自动.唯一增长,并且一个序列可为多列.多表同时使用. 序列消除了串行 ...

  7. spring boot整合spring cloud

    本项目还是通过卖票和买票模块来介绍spring cloud. 1.新建服务注册模块:eureka-server 1.1 配置pom <?xml version="1.0" e ...

  8. Java I/O 教程(十 一) BufferedWriter和BufferedReader

    Java BufferedWriter 类 Java BufferedWriter class 继承了Writer类,为Writer实例提供缓冲. 提升了写字符和字符串性能. 类定义: public ...

  9. 3分钟总览微软TPL并行编程库

    有小伙伴问我每天忽悠的TPL是什么?☹️ 这次站位高一点,严肃讲一讲. 引言 俗话说,不想开飞机的程序员不是一名好爸爸:作为微软技术栈的老鸟,一直将代码整洁之道奉为经典, 优秀的程序员将优雅.高性能的 ...

  10. r0tracer 源码分析

    使用方法 修改r0tracer.js文件最底部处的代码,开启某一个Hook模式. function main() { Java.perform(function () { console.Purple ...