SQL全称是Structured Query Language,是一种结构化的查询语言,用于与数据库进行交互并能够被数据库解析。SQL注入攻击是一种常见的注入攻击类型。攻击方式在用户与程序进行交互时发生的。如在表单输入、搜索框输入功能中插入SQL命令,然后发送到服务端。服务端对数据进行了解析执行,并执行了一些非预期的操作。

SQL注入

危害

1、从数据库中读取敏感数据;

2、篡改数据库数据;

3、对数据库执行管理权限操作;

4、执行系统命令导致程序危害发生;

SQL漏洞被列为高危漏洞

产生条件

1、SQL语句中包含了不被信任的数据,如用户输入信息等;

2、动态构建的SQL语句,如将搜索条件拼接到语句中;

注入影响

1、保密性:可能会导致敏感新泄露,如管理员账户、会员信息等;

2、身份验证:如果使用了较差的SQL命令来进行判断用户信息正确性。可能导致在不清楚用户密码的情况下,直接以用户身份进行登录系统;

3、授权:如果将某平台的授权信息保存在数据库中,可能被非法更改,导致经济损失情况的发生;

4、完整性:如果敏感的信息被非法读取,可能导致此信息所关联的信息被非法更改、破坏、删除,影响了此条数据的完整性;

代码命令

目前,在服务器上面运行的大部分程序都是以数据库为驱动,这样进一步的增加了SQL注入漏洞的产生,因此,SQL注入漏洞非常关键,在开发过程中要严格把控。

注入分类

1、参数类型分类

数字型注入:输入参数为整型时,如Id、年龄和页码等;

字符型注入:输入参数为字符串型时,如姓名、职业、住址等;

两者最大的区别:字符型注入一般要使用单引号进行闭合,而数字型注入则不需要;

2、注入位置分类

GET注入:注入字符在URL参数中;

POST注入:注入字段在POSt提交的数据中;

Cookie注入:注入字段在Cookie数据中,网站使用通用的防注入程序,会对GET、POST提交的数据进行过滤,却往往遗漏Cookie中的数据进行过滤。

其他注入:HTTP请求的其他内容触发的SQL注入漏洞;

代码漏洞

3、结果反馈分类

盲注入:盲注入不会展现任何数据库报错内容,它是依据构造真或假的问题对数据库进行“提问”,注入方式主要有两种:基于布尔值与基于时间。

3.1、基于布尔值

如在MySQL中判断数据名长度的输入为1' and length(database()) = 10 #,通过相应的正确与否判断数据名的长度是否为10,猜测数据库中数据的具体内容时,可以借助书本上SUBSTR、LIMIT、ASCII等一些特殊的命令及函数进行猜测;

3.2、基于时间

基于时间的SQL盲注入方式通常是在SQL语句中添加延时函数,依据相应时间来判断是否存在SQL注入,常用的延时函数或指令有sleep、repeat等。

总结:盲注入提交SQL命令较多,通常通过手工方式无法完成,借用工具如SQLMAP。

非盲注入(正常SQL注入):执行注入SQL语句将敏感信息展示出来,并进行进一步的操作。

4、其他类型

延时注入:使用延时函数方式;

搜索注入:注入点在搜索框中;

编码注入:将输入的字符串进行编码,如base64编码;

堆查询注入:同时执行多条语句;

联合查询注入:使用union操作码合并两条或多条SQL语句;

多阶注入:由多个HTTP请求响应共同完成的注入;

sql盲注特点_SQL注入介绍及分类解读相关推荐

  1. sql盲注特点_SQL注入第二章——access,mssql,oracle

    一.Access注入 Access是轻量级数据库,特点是没有库,没有用户,单文件即可存储数据,在SQL注入时必须猜测表名和列名. Access只有联合注入和布尔盲注. 1,联合注入 http://12 ...

  2. SQL盲注攻击的简单介绍

    SQL盲注攻击的简单介绍 1 简介      1.1 普通SQL注入技术概述      目前没有对SQL注入技术的标准定义,微软中国技术中心从2个方面进行了描述[1]:      (1) 脚本注入式的 ...

  3. sql盲注 解决_sql盲注-和sql盲注相关的内容-阿里云开发者社区

    <白帽子讲WEB安全>学习笔记之第7章 注入攻击 第7章 注入攻击 SQL注入的两个条件:1,用户可以控制输入:2,原本执行的SQL语句并接了用户输入的数据. 7.1 sql注入 SQL注 ...

  4. sql盲注特点_sql盲注讲解

    盲注 有时候,开发人员不会把数据库报错信息显示在前端页面,这样就使我们想要通过union注入或报错注入的攻击方式难以实现. 当不显示报错信息的时候,我们还可以通过盲注的方式来对数据库进行注入攻击. 盲 ...

  5. SQL盲注之时间注入

    1.利用sleep() 函数进行注入 payload:and if(ascii(substr(database(),1,1))=115,1,sleep(5))%23 2.当错误的时候会有5秒的时间延时 ...

  6. SQL注入进阶:掌握布尔盲注和延时注入攻击技巧

    数据来源 一.什么是盲注? 盲注是指一种利用应用程序漏洞进行的攻击技术,攻击者通过在输入参数中注入恶意代码或数据来探测.提取和修改应用程序的敏感数据.它通常用于测试 Web 应用程序的安全性,并且可能 ...

  7. python脚本自动化盲注_三、基于报错型注入和sql盲注的自动化实现

    通过前面payload的构造,不难发现,对于报错型注入和布尔注入(sql盲注)纯手工注入的效率是非常慢的.这些payload语句虽然复杂,但大部分内容都是相同的,因此,一言不合就写了个脚本自动化注入, ...

  8. mysql 时间盲注语句,sql注入学习记录(5)-基于时间延迟的SQL盲注

    上次说到了sql注入中的基于报错盲注的基本的方法. 今天说一说报错盲注 基于时间延时的SQL盲注 使用时间延时注入的场景: 1.不能使用union select 联合查询方式注入 2.有些网站没有回显 ...

  9. sql注入攻击与防御第二版读书笔记二——SQL盲注利用

    寻找并确认SQL盲注 强制产生通用错误 注入带副作用的查询 如 mssql waitfor delay '0:0:5' mysql sleep() 拆分与平衡 5 -> 7-2 常见SQL盲注场 ...

最新文章

  1. 深度学习多变量时间序列预测:LSTM算法构建时间序列多变量模型预测交通流量+代码实战
  2. 每隔一定时间执行一次函数_python — 轮询执行某函数的方法
  3. MongoDB 3.0新增特性一览
  4. 与Jeff Sutherland谈敏捷领导力
  5. mysql 事物状态有几种_MySQL知识点汇总:亿级高并发数据库运转原理大公开!
  6. SAP 取月度期初库存和月度期末库存(历史库存)
  7. 曾国藩:诚敬静谨恒!
  8. 胶囊网络不同实现代码
  9. Android Studio导入project和module的方法
  10. Linux find xargs rm .orig
  11. Redis10-RDB持久化
  12. 产品体系建模工具软件
  13. 总结一下Android中主题(Theme)的正确玩法
  14. Java下载Excel时文件名称乱码
  15. HTML超链接、锚链接
  16. 不要熬夜肝PPT了!络绎科学一键生成科研PPT工具Slidebot来啦!
  17. 短视频平台-小说推文(最右)推广任务详情
  18. java excel 导入 格式转换_【转】JAVA实现EXCEL的导入和导出(二)
  19. python数据类型的转换
  20. 分布式mysql proxy 360_mysql-proxy之奇虎360 Atlas 安装实现mysql读写分离

热门文章

  1. XGBoost类库使用小结
  2. mysql连接查询之间的差异性
  3. 远程计算机未能及时反应,Win10无法打开软件提示“服务器没有及时响应或控制请求”怎么办...
  4. 笔记本电脑自带麦克风吗_小米电视可以唱歌吗
  5. 机器学习第10天:模型评价方法及代码实现
  6. QCustomplot设置背景为透明色
  7. 【LeetCode从零单排】No.169 Majority Element(hashmap用法)
  8. 【Android-tips】 Unable to execute dex: Multiple dex files define 解决方法
  9. flink入门实战总结
  10. oracle时间格式转换问题 ORA-01810: format code appears twice--转