第4章 注入攻击课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第4章 注入攻击课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 注入攻击课件 注入 攻击 课件
- 资源描述:
-
1、第4章 注入攻击A1-注入攻击注入攻击发生在当不可信的数据作为命令或者查询语句的一部分,被发送给解释器的时候。攻击者发送的恶意数据可以欺骗解释器,以执行计划外的命令或者访问未被授权的数据。常见注入攻击漏洞,如SQL,OS命令注入。注入攻击-SQL注入概述原理 字符型SQL注入 数字型SQL注入实例演示防御注入SQL注入预备知识 SQL语言语言 结构化查询语言(Structured Query Language)简称SQL:是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。注入SQL注入 常见SQL语句选择:
2、选择:select*from table1 where 范围插入:插入:insert into table1(field1,field2)values(value1,value2)删除:删除:delete from table1 where 范围更新更新:update table1 set field1=value1 where 范围查找查找:select*from table1 where field1 like%value1%-like的语法很精妙,查资料!1=1,1=2的使用,在的使用,在SQL语句组合时用的较多语句组合时用的较多“where 1=1”是表示选择全部是表示选择全部“whe
3、re 1=2”全部不选全部不选链接资源:http:/ INJECTION:字符串参数/login.asp管理员管理员管理员管理员程序员考虑的场景程序员考虑的场景:Username:adminPassword:p$w0rdSELECT COUNT(*)FROM Users WHERE username=admin and password=p$w0rd登录成功!登录成功!程序员未预料到的结果程序员未预料到的结果Username:admin OR 1=1-Password:1SELECT COUNT(*)FROM UsersWHERE username=admin OR 1=1-and passw
4、ord=1SQL INJECTION:字符串参数/login.asp攻击者攻击者登录成功!登录成功!是SQL字符串变量的定界符攻击攻击关键关键通过定界符成功地将攻击者通过定界符成功地将攻击者的意图注入到的意图注入到SQLSQL语句中!语句中!通过注释保证通过注释保证SQLSQL语句正确语句正确!-是MS SQL的注释符后台代码SELECT*from Users WHERE login=ZAP or 1=1-AND password=*SELECT*from Users WHERE login=ZAP or 1=1 AND password=ZAP or 1=1 2 or 1 尝试万能密码,能否
5、登陆,Why?参考:实验平台:注入技术-SQL注入原理万能密码注入最后得到的SQL命令变成SQL INJECTION:字符型注入字符型例句如下:select*from table where username=admin and password=password字符型注入最关键的是如何闭合sql语句以及注释多余的代码。例:输入:admin or 1=1,则无法进行注入。因为admin or 1=1会被数据库当作查询的字符串,SQL语句如下:select*from table where username=admin or 1=1 and password=password这时要想进行注入则必
6、须注意字符串的闭合问题。如果输入admin or 1=1-,就可以继续注入,SQL语句如下:select*from table where username=admin or 1=1-and password=password实践练习&作业 1、实验平台:注入技术-SQL注入原理万能密码注入。理解:万能密码的原理。2、Sql注入练习平台 3、http 要求:登陆成功。注入SQL注入二、原理1、字符型SQL注入 对于字符型SQL注入手法其参数为字符型的,我们根据这种情形把对该种参数进行SQL注入的手法叫字符型SQL注入。通常的注入手法是在参数后面加or=这样的的保证查询语句为真的手法。SQL注入
7、攻击的本质 SQL注入攻击的本质是把用户输入的数据当做代码执行。这里有两个关键条件,第一个是用户能够控制输入;第二个是原本程序要执行的代码,拼接了用户输入的数据。即:用户提交的参数未做充分的检查、过滤,即被带进sql命令中,改变了原有Sql命令的语义,并且被数据库成功的执行。注入SQL注入二、原理2、数字型SQL注入对于数字型SQL注入手法其参数为数字型的,我们根据这种情形把对该种参数进行SQL注入的手法叫数字型SQL注入。通常的注入手法是在参数后面加“or 1=1”这样的的保证查询语句为真的手法。识别数据库 要想发动SQL注入攻击,就要知道正在使用的系统数据库,不然就没法提取重要的数据。首先
8、从Web应用技术上就给我们提供了判断的线索:ASP和.NET:Microsoft SQL Server PHP:MySQL、PostgreSQL Java:Oracle、MySQL 底层操作系统也给我们提供了线索,比如安装IIS作为服务器平台,后台数据及很有可能是Microsoft SQL Server,而允许Apache和PHP的Linux服务器就很有可能使用开源的数据库,比如MySQL和PostgreSQL。基于错误识别数据库 大多数情况下,要了解后台是什么数据库,只需要看一条详细的错误信息即可。比如判断我们事例中使用的数据库,我们加个单引号。从错误信息中,可以发现是MySQL。上面错误信
9、息可以发现是Microsoft SQL Server,如果错误信息开头是ORA,就可以判断数据库是Oracle。http:/ 单引号 and 1=1 and 1=2 2、猜表名(一般的表的名称无非是admin adminuser user pass password 等)and(Select count(*)from 表名)0 and exists(select*from 表名)3、猜列名 and(Select count(列名)from 表名)0 and exists(select 列名 from 表名)实验:http:/ SQL注入原理-手工注入access数据库注入SQL注入4、猜字段的
展开阅读全文