Sql注入:

就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。通过构造恶意的输入,使数据库执行恶意命令,造成数据泄露或者修改内容等,以达到攻击的目的。主要是由于应用程序对用户的输入没有进行严格的过滤而造成的。

一、万能密码

在说sql注入分类之前,先来看一下万能密码的构成原理。万能密码是由于某些程序,通过采用判断sql语句查询结果的值是否大于0,来判断用户输入数据的正确性造成的。当查询之大于0时,代表用户存在,返回true,代表登录成功,否则返回false 代表登录失败。由于 ‘or 1=1--' 在执行后,结果始终为1,所以可以登录成功。因此,被称为万能密码。

二、注入的分类

注入的分类:数字型和字符型。攻击者目的只有一点,那就是绕过程序的限制,使用户输入的数据带入数据库执行,利用数据库的特殊性获取更多的信息或者更大的权限。

1、数字型注入

当输入的参数为整形时,如果存在注入漏洞,可以认为是数字型注入。

测试步骤:

对应的sql:select * from table where id=3’ 这时sql语句出错,程序无法正常从数据库中查询出数据,就会抛出异常;

对应的sql:select * from table where id=3’ and 1=1 语句执行正常,与原始页面如任何差异;

对应的sql:select * from table where id=3 and 1=2 语句可以正常执行,但是无法查询出结果,所以返回数据与原始网页存在差异

如果满足以上三点,则可以判断该URL存在数字型注入。

2、字符型注入

当输入的参数为字符串时,称为字符型。字符型和数字型最大的一个区别在于,数字型不需要单引号来闭合,而字符串一般需要通过单引号来闭合的。

例如数字型语句:select * from table where id =3

则字符型如下:select * from table where name=’admin’

因此,在构造payload时通过闭合单引号可以成功执行语句:

测试步骤:

(1) 加单引号:select * from table where name=’admin’’

由于加单引号后变成三个单引号,则无法执行,程序会报错;

(2) 加 ’and 1=1 此时sql 语句为:select * from table where name=’admin’ and 1=1’ ,也无法进行注入,还需要通过注释符号将其绕过;

Mysql 有三种常用注释符:

-- 注意,这种注释符后边有一个空格

# 通过#进行注释

/* */ 注释掉符号内的内容

因此,构造语句为:select * from table where name =’admin’ and 1=1—’ 可成功执行返回结果正确;

(3) 加and 1=2— 此时sql语句为:select * from table where name=’admin’ and 1=2 –’则会报错

如果满足以上三点,可以判断该url为字符型注入。

Sql注入分类可以按照参数类型分为数字型和字符型。还有一些常见的注入分类,例如:

(1)POST:注入字段位于POST数据中;

(2)Cookie:注入字段位于Cookie数据中;

(3)延时注入:根据数据库延时特性的注入

(4)搜索注入:注入字段在搜索的位置;

(5)base64注入:注入字符经过base64编码后注入;

(7)错误注入:基于数据库错误信息的响应注入;

等等…

注:以上内容为作者自己原创,错误之处还望指出,谢谢大家!!!

php字符型和数字型的注入,Sql注入的分类:数字型+字符型相关推荐

  1. SQL注入——SQL注入漏洞利用(零)(值得收藏)

    一.什么是SQL注入漏洞 攻击者利用Web应用程序对用户输入验证上的疏忽,在输入的数据中包含对某些数据库系 统有特殊意义的符号或命令,让攻击者有机会直接对后台数据库系统下达指令,进而实现对后 台数据库 ...

  2. 注入——sql注入命令

    SQL注入漏洞防御 SQL注入-结构化查询语言,是一种特殊的编程语言,用于数据库的标准数据库查询. SQL 注入(SQL Injection)是一种常见的Web 安全漏洞.攻击者利用这个漏洞,可以增删 ...

  3. 为解决存储型xss和sql注入漏洞,创建对应的全局过滤器

    1.存储型xss漏洞 系统由于未对参数过滤,导致可以存储html特殊标签,且返回的数据未经处理显示在web页面中导致存在存储型xss,攻击者可利用xss对用户发起鱼叉攻击获取cookie进入系统.为解 ...

  4. SQL注入(SQL注入(SQLi)攻击)攻击-注入点

    SQL注入被称为漏洞之王 , 是最常用的漏洞之一 , 其中PHP在这方面的贡献最大 SQL注入原理 用户在参数中插入恶意的SQL语句 , 破坏原有的SQL语法结构 , 从而执行攻击者的操作 SQL注入 ...

  5. mysql显错注入,SQL注入:显错注入

    SQL注入的本质 就是把用户输入的数据当做代码执行 注入条件 1.用户能控制输入 2.能够将程序原本执行的代码,拼接上用户输入的数据进行执行 例: http://www.xxx.com/new.php ...

  6. SQL注入-SQL注入的WAF绕过(十六)

    实验目的 普及熟悉利用重写等方式绕过WAF关键字过滤.以实现SQL注入的方法.PS:面试时不要说打WAF靶场什么东西,就说重复大小写编码什么之类的 基本概念 WAF(WebApplicationFir ...

  7. SQL注入——SQL注入具体防御方案

    1.GPC/RUNTIME魔术引号 magic_quotes_gpc负责对GET,POST,COOKIE的值进行过滤. magic_quotes_runtime对从数据库或者文件中获取的数据进行过滤. ...

  8. 如何防范SQL注入 SQL注入测试

    从测试来进行测试SQL注入. 首先,看看SQL注入攻击能分为以下三种类型: Inband: 数据经由SQL代码注入的通道取出,这是最直接的一种攻击,通过SQL注入获取的信息直接反映到应用程序的Web页 ...

  9. linux json 写sql注入,sql注入之AJAX(SQL Injection (AJAX/JSON/jQuery))

    sql注入之AJAX(SQL Injection (AJAX/JSON/jQuery)) 0x1 网上搜下没有关于ajax的sql注入文章,这里简单写一下抛砖引玉. 原理自己百度,这里简单说下: 通过 ...

最新文章

  1. 2014年云计算服务将取代PC电脑
  2. C/C++中退出线程的四种解决方法
  3. 浅谈Nginx负载均衡与F5的区别
  4. es6解决回调地狱问题
  5. LeetCode 1306. 跳跃游戏 III(广度优先搜索BFS)
  6. python是轻量级语言吗_python socket 轻量级服务器详解
  7. 【Machine Learning 六】梯度下降法(基于Matlab 求函数最小值)
  8. DevSecOps 现状:云 IT 的复杂度制造了“无法改变的”安全问题
  9. 医疗大数据可能面临的挑战
  10. javascript实现划词搜索功能(兼容IE,firefox,opera)
  11. python三元一次方程代码_求三元一次方程计算器代码
  12. 如何在Excel中调节折线图和柱形图(组合图)的高低(位置),让图中的折线和柱形不会出现重叠
  13. 「武汉理工大学 软件工程复习」第三章 | 软件需求
  14. 电池电压值转换为百分比
  15. SwiftUI 如何同时处理2个手势SimultaneousGesture(教程含代码)
  16. 5G 产业链重要细分投资领域
  17. XJOI 1003 质因数分解
  18. 防弹玻璃为啥会被钢球砸碎?这就是一道高中物理题!
  19. 多元线性回归—多重共线性
  20. asp毕业设计—— 基于asp+access的实验室设备管理系统设计与实现(毕业论文+程序源码)——实验室设备管理系统

热门文章

  1. 同心圆的画法_BIM微课堂:一种简单的顶管中继间画法
  2. Unity开发《一起来捉妖》教程 | 1.陀螺仪控制相机
  3. OpenShift 4 - 如何用Machine Config Operator修改集群节点CoreOS的配置
  4. .NET配置文件在写入时损坏
  5. 带有页脚聚合的WPF数据网格
  6. 具有审计表的实体框架
  7. linux hadoop namenode_HADOOP_HDFS伪分布式安装步骤
  8. dataGridView1.DataSource多增加列,数据不进自己规定的列?
  9. python gil锁_python--GIL锁
  10. 降采样_嫦娥五号探测器圆满完成我国首次月球采样返回任务