基本信息
文件名称:计算机网络攻击与防护第十二章实战网络攻防98课件.pptx
文件大小:3.58 MB
总页数:16 页
更新时间:2025-06-12
总字数:约1.62千字
文档摘要

第9节SQL注入攻防概述计算机网络攻击与防护第十二章实战网络攻防

目录CONTENT01什么是SQL注入02SQL注入危害03SQL注入分类04SQL注入防御

什么是SQL注入SQL(StructuredQueryLanguage)即结构化查询语句。SQL注入(SQLInjection)程序没有对用户输入数据的合法性进行判断,使攻击者可以绕过应用程序限制,构造一段SQL语句并传递到数据库中,实现对数据库的非法操作。

什么是SQL注入案例:用户名是:admin密码为:AAA合法的查询SQL语言为:select*fromtablewhereusername=‘admin’andpassword=‘AAA’;精心构造的非法的查询SQL语言为:select*fromtablewhereusername=‘admin’andpassword=‘123’or‘1=1’;由于密码的输入方式,使得查询语句返回值永远为真(True),因此通过验证!

什么是SQL注入之产生原因SQL注入的本质是没有将代码和数据进行有效而细致的区分,从而导致非法数据进入系统。SQL注入产生的原因主要是未对用户提交的参数数据进行校验或有效的过滤,直接进行SQL语句拼接,改变了原有SQL语句的语义,传入数据库解析引擎中执行。

SQL注入危害由此产生的SQL注入的危害包括以下六个方面:1、未经授权操作数据库,例如:增加数据、删除数据和更改数据。2、恶意篡改网页内容,例如:篡改页面信息。3、得到管理员密码,添加或者删除系统帐号和数据库帐号。4、绕过登陆密码登录网站后台。5、获取webshell,进一步得到系统权限,控制操作系统。6、修改数据库的字段值,嵌入木马链接,进行挂马攻击。

SQL注入分类按照注入点的不同类型可以分为:数字型注入字符型注入搜索型注入

SQL注入分类之数字型注入数字型注入输入的参数为整数。例如:ID、年龄、页码等。这些类型的数据如果存在注入型漏洞,则为数字型注入。

SQL注入分类之数字型注入案例精心构造的非法的查询SQL语言,其中id为数字型。例如:select*fromtablewhereid=$id;当id为数字1,其URL为:/user:php?id=1

SQL注入分类之字符型注入字符型注入输入的参数字符串。与数字型注入的区别在于字符型注入一般要使用引号来闭合语言。

SQL注入分类之字符型注入案例精心构造的非法的查询SQL语言,其中id为数字型。例如:select*fromtablewhereid=‘$id’;当id为字符admin,其URL为:/t.php?user=admin

SQL注入分类之搜索型注入搜索型注入这类注入主要是指在进行数据搜索时没过滤搜索参数,一般在链接地址中有“keyword=关键字”,有的不显示链接地址,而是通过搜索框表单提交。例如Payload:kandupdatexml(1,concat(0x7e,(SELECT@@version),0x7e),1)#查询出后台数据库版本信息

SQL注入分类之搜索型注入案例:textLIKE‘%{$_GET[‘search’]}%’”该案例中LIKE语句是搜索型。

SQL注入防御1、防御的对象:所有外部传入的数据用户的输入:提交的URL请求中的参数部分从cookie中得到的数据其他系统传入的数据2、防御的方法白名单:限制传递数据的格式黑名单:过滤过滤特殊字串:update、insert、delete等开发时过滤特殊字符:单引号、双引号、斜杠、反斜杠、冒号、空字符等的字符部署防SQL注入系统或脚本

思考题以上对SQL注入进行了概述,最后给同学们留一个思考题:课下阅读存在SQL注入的原因主要是哪几个方面?1SQL注入的分类包括哪些?

谢谢观看!