sql注入实验报告_第1页
sql注入实验报告_第2页
sql注入实验报告_第3页
sql注入实验报告_第4页
sql注入实验报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、实验报告 课程名称: SQL 注入 专 业: 班 级: 姓 名: 学 号: 指导教师: 2016 年 3 月 8 日第 页1、实验目的1、掌握 SQL 注入的基本概念。2、掌握 SQL 注入的总体思路。3、掌握通过脚本访问网站数据库的基本方法。二、实验原理1、SQL 注入 SQL 是结构化查询语言的简称,它是访问数据库的事实标准。SQL 注入能使攻击者绕过认证机制,完全控制远程服务器上的数据库。目前,大多数 Web 应用都使用 SQL 数据库来存放应用程序的数据。几乎所有的 Web 应用在后台都使用某种 SQL 数据库。跟大多数语言一样,SQL 语法允许数据库命令和用户数据混杂在一起的。如果开

2、发人员不细心的话,用户数据就有可能被解释成命令,这样的话,远程用户就不仅能向 Web 应用输入数据,而且还可以在数据库上执行任意命令了。2、SQL 注入攻击的一般顺序是: (发现 SQL 注入位置,判断后台数据库类型,确定 XP_CMDSHELL 可执行情况,发现 WEB 虚拟目录,上传 ASP 木马,得到管理员权限。3、 SQL 注入攻击的防范方法: SQL 注入攻击防范方法目前已经有很多,总结起来有下面一些: (1) 在服务端正式处理之前对提交数据的合法性进行检查; (2) 封装客户端提交信息; (3) 替换或删除敏感字符/字符串; (4) 屏蔽出错信息。 (5)不要用字串连接建立 SQL

3、 查询,而使用 SQL 变量,因为变量不是可以执行的脚本; (6)目录最小化权限设置,给静态网页目录和动态网页目录分别设置不同权限,尽量不给写目录权限; (7)修改或者去掉 Web 服务器上默认的一些危险命令,例如ftp、cmd、wscript 等,需要时再复制到相应目录; (8)数据敏感信息非常规加密,通过在程序中对口令等敏感信息加密都是采用 md5 函数进行加密,即密文md5(明文),本文推荐在原来的加密的基础上增加一些非常规的方式,即在 md5 加密的基础上附带一些值,如密文md5(md5(明文)123456);第 页3、实验步骤1、查看 Web 程序的数据库打开浏览器输入:“http:

4、本地 ip/phpmyadmin/”图 1 phpMyAdmin 登录登陆成功后选择左边菜单栏“test”“register”“user”这里可以看到不同权限级别的用户以及其密码,等会通过后面的 SQL 注入来获取密码或者提权。第 页2、客户端远程访问 Ubuntu 的 Web 程序 在本地 PC 浏览器上访问“http:/(Linux 虚拟机 IP)/SQL_Injection/”“WebApp” “access.php” 第 页 WebApp 目录图3、在打开的登录模块 access.php 此模块使用 GET 提交信息,可以通过 URL 发送参数登录使用数据表 user 中存在的用户名和

5、密码 Username=bluedon password=mypass 是数据库存在的用户信息 URL 参数“?username=bluedon&password=mypass”,将第这条 url 参数复制到链接之后,回车确定。正常登陆成功当没有密码时 URL 参数“?username=bluedon%23”在没有发送密码的情况下登录成功。注意到本次操作的 SQL 语句:“SQL 查询:SELECT * FROM user WHERE username=bluedon# AND password= ” “#”是 MySQL 数据库的注释符。SQL 语句匹配了用户名,mysql_num_rows

6、 函数返回值为第 页1,符合登录模块的验证条件。无密码登录成功无用户名无密码的登录无用户名无密码的登录使用“1=1”这条恒成立的语句,可以在缺少更多信息的情况下,成功登录。url 参数:“?username=zor1=1%23”图:无用户名无密码登录成功在服务器生成用户信息文件在服务器生成用户信息文件导出文件到 Web 服务器的 tmp 目录。数据库中的 user 表被导出到 Ubuntu 服务器的 tem 目录。现在远程登录 Web 服务器(linux 靶机),查看 tmp 目录下的文件。“Places”“Desktop”“File System”“tmp”第 页图 1图 2SQL 注入前,

7、tmp 目录下不存在“sss.txt ”文件第 页图:查看是否存在生成文件使用 url 参数“?username= or 1=1 into outfile /tmp/sss.txt%23”图:登录失败SQL 注入后,提示“登录失败”,但 tmp 目录下会生成“sss.txt ”文件,用户信息被导出到 tmp目录下的 sss.txt(实际文件名与 url 实际输入相关)图:查看是否生成文件提升用户权限提升用户权限第 页浏览“http:/(Linux 虚拟机 IP)/SQL_Injection/”打开模块“register.html”用户名:“test001”,密码:“test001”,个人主页:

8、“”“注册”注册到的用户级别为 3注意:模块的 SQL 操作,最后的字段是数据表的权限图:注册图:注册成功下面通过 SQL 注入,注册一个级别为 1 的用户,回到用户注册界面,使用用户名:“test002”,密码:“test002”,个人主页:“ ,1);#”注册【注:注:,1);# 第一个第一个单引号为英文状态的单引号单引号为英文状态的单引号】本次注入也是利用了“#”注释符!图:注册第 页图:注册成功数据表 register 中可以看到新注册的用户“http:/(Linux 虚拟机 IP)/phpmyadmin/index.php”图:register 表4、实验问题1、SQL 注入的基本概

9、念是什么? 答:所谓 SQL 注入,就是通过把 SQL 命令插入到 Web 表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL 命令。具体来说,它是利用现有应用程序,将(恶意)的 SQL 命令注入到后台数据库引擎执行的能力,它可以通过在 Web 表单中输入(恶意)SQL 语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行 SQL 语句。比如先前的很多影视网站泄露 VIP 会员密码大多就是通过 WEB 表单递交查询字符暴出的,这类表单特别容易受到 SQL 注入式攻击。 SQL 注入是从正常的 WWW 端口访问,而且表面看起来跟一般的 Web 页面访问没什么区别,所以目前市面的防火墙都不会对 SQL 注入发出警报,如果管理员没查看 IIS 日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL 注入第 页的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据

温馨提示

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

评论

0/150

提交评论