注册渗透测试工程师认证CISP-PTE培训-.SQL注入.pptx

上传人(卖家):Q弹啤酒肚 文档编号:475096 上传时间:2020-04-18 格式:PPTX 页数:31 大小:803.44KB
下载 相关 举报
注册渗透测试工程师认证CISP-PTE培训-.SQL注入.pptx_第1页
第1页 / 共31页
注册渗透测试工程师认证CISP-PTE培训-.SQL注入.pptx_第2页
第2页 / 共31页
注册渗透测试工程师认证CISP-PTE培训-.SQL注入.pptx_第3页
第3页 / 共31页
注册渗透测试工程师认证CISP-PTE培训-.SQL注入.pptx_第4页
第4页 / 共31页
注册渗透测试工程师认证CISP-PTE培训-.SQL注入.pptx_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、5.SQL注入 目录 SQL注入概念 注入漏洞分类 注入语句 SQL注入利用工具 防御SQL注入漏洞 SQL注入概念 数据库基本概念 数据 库库 Oracle MySQL SQL Server Access DB2 Sqlite3 结构化查询语言 特点:解释型语言 数据库基本概念 图像、语音、文字等 数据(Data) 在计算机系统中,各种字母、数字符号的组合、语音、图形、图像等统称为数据。 Access、MSSQL、Oracle、SQLITE、MySQL等 数据库(Database) 数据库是按照数据结构来组织、存储和管理数据的“仓库”。 Access、MSSQL、Oracle、SQLITE、

2、MySQL等 数据库管理系统(DBMS) 数据库管理系统(database management system)是一种操纵和管理数据库的软件,用于建 立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整 性。 DQL、DDL、DML、TCL、DCL 结构化查询语言(SQL) 结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询 和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 数据库基本概念 SQL语言包含6大部分 数据查询语言DQL,如:select 数据操作语言DML,如:insert,u

3、pdate、delete 数据控制语言DCL,如:grant、revoke 数据定义语言DDL,如:create、drop 指针控制语言CCL,如:declare cursor、fetch 事务处理语言TPL,如:commit、rollback 数据库特性 静态网页: html或者htm,是一种静态的页面格式,不需要服务器解析其中的脚本。由浏览器如(IE、Chrome 等)解析。 1.不依赖数据库 2.灵活性差,制作、更新、维护麻烦 3.交互性交差,在功能方面有较大的限制 4.安全,不存在SQL注入漏洞 动态网页: asp、aspx、php、jsp等,由相应的脚本引擎来解释执行,根据指令生成静

4、态网页。 1.依赖数据库 2.灵活性好,维护简便 3.交互性好,功能强大 4.存在安全风险,可能存在SQL注入漏洞 WEB应用工作原理 客 户 端 数 据 库 脚本引擎 用户想要查看 ID为36的文章 请 求 返 回 http:/test.co m/Article.ph p?id=36 请 求 返 回 获取参数ID的值为36, 动态构造SQL语句: Select * from Article where id=36 ,向数据 库发起查询请求 在Article表中 查询id为36的 所有记录 返回查询到的 所有记录 处理返回的所有记 录,如过滤和编码 特殊字符等,生成 静态网页并返回给 客户端

5、将网站返回的网页 展示给用户 SQL注入定义 SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或 页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数 据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一 个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句 SQL注入定义 本质 代码与数据不区分。 成因 未对用户提交的参数数据进行校验或有效的过滤,直接进行SQL语 句拼接,改变了原有SQL语句的语义,传入数据库解析引擎中执 行。 结果 SQL注入 触

6、发SQL注入 所有的输入只要和数据库进行交互的,都有可能触发SQL注入 常见的包括: 1.Get参数触发SQL注入 2.POST参数触发SQL注入 3.Cookie触发SQL注入 4.其他参与sql执行的输入都有可能进行SQL注入 SQL注入过程 客户端: 参数值等数据被修改 服务端: 未经检查和过滤即将被修改 的数据注入到SQL命令中, SQL命令功能被修改 数据库引擎: 执行被修改后的SQL命令 服务端: 将注入的结果返回给客户 端 客户端: 根据上一次注入获取到的敏 感信息构造注入语句进行进 一步注入 SQL注入场景 一切用户可控参数的地方,比如:URL路径、GET/POST请求参数、H

7、TTP请求头 SQL注入作用 绕过登录验证:使用万能密码登录网站后台等 获取敏感数据:获取网站管理员帐号、密码等 文件系统操作:列目录,读取、写入文件等 注册表操作:读取、写入、删除注册表等 执行系统命令:远程执行命令 注入漏洞分类 数字型注入 猜测SQL语句为:select * from table where id=1 测试: SQL语句为:select * from table where id=1 ,页面出现异常 and 1=1 SQL语句为:select * from table where id=1 and 1=1 ,页面正常 and 1=2 SQL语句为:select * fro

8、m table where id=1 and 1=2,返回数据与原始请求不同 字符型注入 数字型:select * from table where id =1 字符型:select * from table where username=test 字符型注入最关键的是如何闭合SQL语句以及注释多余的代码 查询内容为字符串时:select * from table where username = test 测试: select * from table where username = test and 1=1 ,无法注入,“test and 1=1” 会被数据库当作查询的字符串 selec

9、t * from table where username = test and 1=1 -,必须闭合字符串才可以继 续注入 数据库注释语法 数据库注释描述 SQL Server和Oracle -用于单行注释 /* */用于多行注释 Mysql - 用于单行注释 (要求第二个-后面跟一 个空格或控制字符,如 制表符,换行符等) #用于单行注释 /* */用于多行注释 测试语句 数字型 And 1=1/And 1=2 OR 1=1/OR 1=2 +、-、*、/、= 1 like 1/1 like 2 1 in (1)#/1 in (2)# SQL注入分类 按照数据类型: 数字形(Integer)

10、 字符型(String) 按返回结果: 显错注入(Error-Based) 盲注(Boolean/Time-Based Blind) 其他分类 POST注入:注入字段在POST数据中 Cookie注入:注入字段在Cookie数据中 搜索注入:注入处为搜索的点 Baes64注入:注入字符串需要经过base64加密 布尔型盲注:即可以根据返回页面判断条件真假的注入 时间延迟型盲注:即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即 页面返回时间是否增加)来判断 报错回显型注入:即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中 联合查询型注入:可以使用union的

11、情况下的注入 堆查询型注入:可以同时执行多条语句的执行时的注入 。 注入语句 注入语句 select order by union http:/drops.wooyun.org/tips/7840 http:/drops.wooyun.org/tips/8242 SQL注入利用工具 SQL注入利用工具 SQLMAP JSQL SQLMAP常用命令 sqlmap.py -u -dbs -u 指定检测的URL地址 dbs列出数据库 sqlmap.py -u “ -data=“user=test&id=1“ -p id -data post参数 p 指定参数注入 sqlmap.py -u “ -da

12、ta=“user=test&id=1“ -p id -D mysql tables 获取指定数据库的表名 sqlmap.py -u “ -data=“user=test&id=1“ -p id -D mysql -T user columns 获取指定数据库及指定表的列名 sqlmap.py -u “ -data=“user=test&id=1“ -p id -D mysql -T user -dump dump数据 -r c:sqltest.txt 加载请求数据 -cookie=COOKIE 登录后的cookie -proxy=“http:/127.0.0.1:8080“ 使用HTTP代理

13、防御SQL注入漏洞 SQL注入危害 这些危害包括但不局限于: 1.数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。 2.网页篡改:通过操作数据库对特定网页进行篡改。 3.网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行 挂马攻击。 4.数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。 5.服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让 黑客得以修改或控制操作系统。 6.破坏硬盘数据,瘫痪全系统。 一些类型的数据库系统能够让SQL指令操作文件系统,这使得SQL注入的危 害被进一步放大。 防御SQL注入漏洞 过滤特殊字符: 单引号、双引号、斜杠、反斜杠、冒号、空字符等的字符 过滤的对象: 用户的输入 提交的URL请求中的参数部分 从cookie中得到的数据 部署防SQL注入系统或脚本 思考 1. SQL语句的增加,删除,修改,查询 2. 不同数据库的注入语句 3. 判断注入点 4. 注入利用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 待归类文档
版权提示 | 免责声明

1,本文(注册渗透测试工程师认证CISP-PTE培训-.SQL注入.pptx)为本站会员(Q弹啤酒肚)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|