921202-信息系统安全与对抗实践-9. sql注入漏洞(一)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息系统安全与对抗实践

SQL 注入漏洞(一)

内容提要

•SQL注入漏洞

-基本介绍

-基本原理

-攻击步骤

•靶场搭建

-DVWA(综合型靶场)

-Sqli-labs(SQL注入靶场)

2

3

•SQL Injection ,即SQL 注入,是指攻击者通过注入恶意的SQL 命令,破坏SQL 查询语句的结构,从而达到执行恶意SQL 语句的目的。SQL 注入漏洞的危害是巨大的,常常会导致整个数据库被“脱裤”,尽管如此,SQL 注入仍是现在最常见的Web 漏洞之一。

•原理

select *from user where username =‘$username ’,红色部分内容为用户可控的内容,如果我们尝试输入一个单引号(‘)。Sql 语句就变成了select *from user where username =’’’,前面两个单引号组成了一对,后面空出一个单引号不符合语法规则,所以产生报错。此时我们已经修改了原本SQL 语句的结构。

输入$username 参数的地方也叫做注入点,注入点可能存在于GET 参数内、POST 参数内、HTTP 头字段内等。SQL 注入漏洞

SQL注入漏洞

•原理

如果我们输入’ or ‘1’=‘1,那么sql语句就会变成select * from user where username = ‘’or ‘1’=‘1’,此时该语句就等同于select * from user 。

•实战

-绕过登录

select * from username = ‘$username’ and password =‘$password’

-方法

•使用注释

•闭合单引号

4

SQL注入漏洞

•发生的原因

-攻击者可以对输入变量进行控制

-服务器对用户输入的变量没有进行安全处理(过滤、转义)

-不安全的数据库配置(最小用户权限、安全配置)

•SQL注入漏洞的种类

-根据注入点输入类型分为字符串和数字型

-根据注入点的位置分为POST注入,GET注入,HTTP头注入

-根据获取信息的方式分为基于报错的注入、基于布尔的盲注、基于时间的盲注、联合查询(union select)注入等

5

SQL注入漏洞

•SQL注入一般流程

-判断是否存在注入,注入是字符型还是数字型

-猜解SQL查询语句的结构,并根据注入的类型来判断注入方法。

-获取当前数据库

-获取数据库中的表

-获取表中的字段名

-获取数据

6

7

•DVWA (Damn Vulnerable Web Application )

-是一个用来进行安全脆弱性鉴定的PHP/MySQL Web 应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web 开发者更好的理解web 应用安全防范的过程。

-DVWA 共有十个模块,分别是Brute Force (暴力(破解))、Command Injection (命令行注入)、CSRF (跨站请求伪造)、File Inclusion (文件包含)、File Upload (文件上传)、Insecure CAPTCHA (不安全的验证码)、SQL Injection (SQL 注入)、SQL Injection (Blind )(SQL 盲注)、XSS (Reflected )(反射型跨站脚本)、XSS (Stored )(存储型跨站脚本)。

-并且每个模块的代码分为四个安全等级Low ,Medium ,High ,Impossible 。靶场搭建

靶场搭建

•Sqli-labs

-是一个sql注入的靶场,用于学习sql注入。

-分为四个部分

•Basic Injections(基本注入)

•Advanced injections(进阶注入)

•Stacked Injections(堆叠注入)

•Challenges(限制次数的注入)

8

相关文档
最新文档