Chen Kaiming Copyright 2007 SQL攻击与防御 ■ 什么是SQL注入? 1. 理解Web应用的工作原理? 2. 理解SQL注入 3. 理解SQL 注入的产生过程 2018/12/30 Chen Kaiming Copyright 2007
Chen Kaiming Copyright 2007 SQL攻击与防御 SQL 注入 是影响企业运行且最具破坏性的漏洞之一.它会泄漏保存在应用程序数据库中的敏感信息, 包含用户名, 密码, 姓名,地址,电话号码以及信用卡明细等易被利用的信息 . 2018/12/30 Chen Kaiming Copyright 2007
Chen Kaiming Copyright 2007 SQL攻击与防御 SQL注入定义: 应用程序在向后台数据库传递SQL 查询时, 如果为攻击者提供了影响该查询的能力, 则会引发SQL 注入. Rain Forest Puppy 1998年首次发现该漏洞而倍受赞誉. 2018/12/30 Chen Kaiming Copyright 2007
SQL攻击与防御 ■ 理解Web应用的工作原理 Web应用是交互性 且多数是数据库驱动的. 互联网中, 包含一个后台数据库和很多Web页面. 2018/12/30 SQL攻击与防御 ■ 理解Web应用的工作原理 Web应用是交互性 且多数是数据库驱动的. 互联网中, 包含一个后台数据库和很多Web页面. 电子商务是数据库驱动的Web应用最常见形式之一. 数据库驱动的Web应用通常包含 3层:表示层,逻辑层 和 存储层. Web浏览层 向 中间层 发送请求,中间层通过查询,更新数据库(存储层)来响应该请求. 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
SQL攻击与防御 ■ 理解SQL注入 Web上的数据和应用越丰富, 越成为流行攻击的目标. 2018/12/30 SQL攻击与防御 ■ 理解SQL注入 Web上的数据和应用越丰富, 越成为流行攻击的目标. 黑客通过 基于网络的漏洞来攻破信息系统的机会正不断减少, 开始将重心转移到尝试危害应用上. SQL注入: 是一种将SQL代码插入或添加到应用(用户) 的输入参数中的攻击, 之后再将这些参数传递给后台的SQL服务器加以解释与执行. 直接方式: 将代码插入到参数中, 然后这些参数会被置入到SQL 命令中加以执行. 间接方式: 将恶意代码插入到字符串中, 之后再将这些字符串保存到数据库的数据表中或将其当作元数据. 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
SQL攻击与防御 ■ 理解SQL注入的产生过程 构造动态字符串 不安全的数据库配置 2018/12/30 SQL攻击与防御 ■ 理解SQL注入的产生过程 构造动态字符串 不安全的数据库配置 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
SQL注入测试 ■ 寻找SQL 注入 ■ 确认SQL 注入 ■ 自动发现SQL 注入 2018/12/30 SQL注入测试 ■ 寻找SQL 注入 ■ 确认SQL 注入 ■ 自动发现SQL 注入 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
寻找SQL注入 ■ 1 借助推理进行测试 简单规则: 通过 发送 意外数据来触发异常. 1. 识别Web 应用上所有的数据输入 2018/12/30 寻找SQL注入 ■ 1 借助推理进行测试 简单规则: 通过 发送 意外数据来触发异常. 1. 识别Web 应用上所有的数据输入 2.了解那种类型的请求会触发异常 3. 检测服务器响应中的异常 ■ 2. 数据库错误 ■ 3. 应用响应 ■ 4. SQL盲注 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
确认SQL注入 ■ 1 区分数字和字符串 ■ 2 内联SQL注入 ■ 3 终止式SQL注入 ■ 4. 时间延迟 2018/12/30 确认SQL注入 ■ 1 区分数字和字符串 ■ 2 内联SQL注入 ■ 3 终止式SQL注入 ■ 4. 时间延迟 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
自动寻找SQL注入 ■ 自动寻找SQL注入的工具 chenkm@ustc.edu.cn 0551-3602824 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
Chen Kaiming Copyright 2007 理解常见的利用技术 发现Web应用的 一个 或多个易受攻击的参数. 比如在GET参数中插入一个单引号就可能让应用足以返回一个数据库错误. 安装一个与所攻击应用的后台数据库系统完全相同的本地数据库系统. 在没有Web源代码时, SQL采用黑盒攻击方法, 然后观察目标如何对请求进行响音来来构思所要注入的查询. 如果在本地测试要进行 注入的查询 将会更轻松. 不同条件 和情况下利用SQL注入漏洞会意味着不同的内容. 如果对于 SQL输入未收到应用中任何 类型的SQL输出显示,则需要进行盲注. 2018/12/30 Chen Kaiming Copyright 2007
chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
Chen Kaiming Copyright 2007 识别数据库 要想成功发动SQL注入攻击, 最重要的是要知道应用正在使用的DBMS . Web 应用技术能提供类似线索 . ASP, .NET 使用 Microsoft SQL Server; PHP 使用 MySQL; Java 使用 MySQL 或者 Oracle; 操作系统 也能给出提示 . Windowqs–- SQL Server Apache ,Linux -- MySQL 最好的方法是 是否 处于盲态: 非盲态 很简单; 盲态 需要 采用 其他 复杂方法. 2018/12/30 Chen Kaiming Copyright 2007
Chen Kaiming Copyright 2007 识别数据库 非盲跟踪 2018/12/30 Chen Kaiming Copyright 2007
Chen Kaiming Copyright 2007 识别数据库 获取标志信息 比如版本信息, 不同版本的数据库缺陷信息不同. 2018/12/30 Chen Kaiming Copyright 2007
识别数据库 chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
盲跟踪 chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
使用UNION语句提取数据 chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
使用UNION语句提取数据 chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
使用UNION语句提取数据 chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
使用UNION语句提取数据 chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
使用UNION语句提取数据 chenkm@ustc.edu.cn 0551-63602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-63602824 chenkm@ustc.edu.cn
使用条件语句 chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
Chen Kaiming Copyright 2007 方法1: 基于时间 使用SQL注入, 采用基于Web 应用上响应时间上的差异. 该时间取决于某些信息 的值. 2018/12/30 Chen Kaiming Copyright 2007
Chen Kaiming Copyright 2007 方法2: 基于错误 2018/12/30 Chen Kaiming Copyright 2007
Chen Kaiming Copyright 2007 方法3: 基于内容 2018/12/30 Chen Kaiming Copyright 2007
Chen Kaiming Copyright 2007 方法4: 其它 2018/12/30 Chen Kaiming Copyright 2007
怎样获取安装在远程服务器上的所有数据,数据库中的所有表以及每张表中的所有列---数据库模式,即元数据. 2018/12/30 枚举数据库模式 怎样获取安装在远程服务器上的所有数据,数据库中的所有表以及每张表中的所有列---数据库模式,即元数据. 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
提升权限 SQL Server Oracle chenkm@ustc.edu.cn 0551-3602824 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
窃取哈希口令 chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
带外通信 chenkm@ustc.edu.cn 0551-3602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-3602824 chenkm@ustc.edu.cn
自动利用SQL注入 chenkm@ustc.edu.cn 0551-63602824 2018/12/30 2018/12/30 用汇编语言格式将strcmp两个参数按从右到左顺序压入堆栈。 2018/12/30 chenkm@ustc.edu.cn 0551-63602824 chenkm@ustc.edu.cn