网络攻防课程设计.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

目录

TOC\h\z\t正文标题一,1,正文标题二,2一:简介: 1

二:攻击原理: 2

1:SQL注入的原理……………………2

2:SQL注入攻击的原理…………………………...3

三:工作过程: 4

1:所用工具介绍: 4

2:工作的步骤和过程(截图): 5

四:功能或后果: 9

五:防范手段与措施: 9

六:结论: 10

七:参考文献: 12

TOC\h\z\t正文标题一,1,正文标题二,2

一、简介:

SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQLInjection,即SQL注入。

SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问防止SQL注入攻击没什么区别,所以市面的防火墙都不会对SQL注入发出警报,如果管理员没查看ⅡS日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况,需要构造巧妙的SQL语句,从而成功获取想要的数据。

二、攻击原理

1、sql注入的原理:

SQL全称是StructureQueryLanguage(结构化查询语言),是广泛用于关系型数据库的查询语言。大部分的Web网站都需要利用SQL语句进行查询。

Select语句是最常用的SQL语句,一般的使用格式是

Select字段列表From数据表名Where查询条件

编程是,由Web的编程语言(如ASP,PHP,JSP等)首先生成一个查询字符串,比如一个Select语句,提交给相应的数据库进行执行,从而得到所需的数据。形成这些SQL语句的时候,经常需要使用由客户端提交过来的数据。比如ASP网页代码

sql=select*fromadminwhereusername=Request(username)andpassword=Request(password)

这里的Request(username)和Request(password)分别表示用户输入的用户名和密码。正常情况下,该语句将形成如下格式的SQL查询:(假设用户名和密码分别是zhang3和123456)

select*fromadminwhereusername=zhang3andpassword=123456

如果用户名和密码正确,该查询将返回对应于zhang3的纪录,Web程序认为是合法用户。如果用户名和密码不正确,该查询没有记录返回,Web程序可以认为是非法用户,而拒绝登录操作。

单如果我们在密码的地方输入以下内容:

1or1=1

则相应的SQL查询变为

select*fromadminwhereusername=zhang3andpassword=1or1=1

则该语句将返回admin表中所有的纪录。从而Web程序认为是合法用户,登录成功。

对于SQLServer数据库,我们还可以利用分号,在一个查询中执行多条语句,利用--符号进行注释,可以执行更多的命令。如果该网站使用的数据库登陆帐号是数据库管理员帐号,往往还可以执行一些具有很强功能的存储过程,甚至取得整个系统的管理员权限。

SQL注入的形式已经有很多,我们这里说的仅是最简单的情形。现在还有一些工具,可以自动检测网站是否存在这类SQL注入漏洞。如果存在,还可以自动地进行注入。

SQL注入,英文名称为SQLInjection,主要原因是没有对用户输入进行有效的验证。

2、攻击原理:

实验网站的源代码位于xampp\htdocs\injection目录。login.php是网站的用户登陆程序。从第一步中可以得知登陆程序是借助HTML表单通过HTTP协议中的POST方法收集用户信息的。用记事本打开login.php程序,有以下代码:

$name=$_POST[name];

$password=$_POST[password];

$q=SELECT*FROMusersWHEREname=$nameANDpass=SHA1($password);

$_POST是从表单获取的用户数据。所以,要对实验网站做SQL攻击,就是要通过用户提交的姓

文档评论(0)

8d758 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档