sql注入实验报告.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验报告 课程名称: SQL注入 专 业: 班 级: 姓 名: 学 号: 指导教师: 2016年 3 月 8 日 实验目的 1、掌握SQL注入的基本概念。 2、掌握SQL注入的总体思路。 3、掌握通过脚本访问网站数据库的基本方法。 二、实验原理 1、SQL注入 SQL是结构化查询语言的简称,它是访问数据库的事实标准。SQL注入能使攻击者绕过认证机制,完全控制远程服务器上的数据库。目前,大多数Web应用都使用SQL数据库来存放应用程序的数据。几乎所有的Web应用在后台都使用某种SQL数据库。跟大多数语言一样,SQL语法允许数据库命令和用户数据混杂在一起的。如果开发人员不细心的话,用户数据就有可能被解释成命令,这样的话,远程用户就不仅能向Web应用输入数据,而且还可以在数据库上执行任意命令了。 2、SQL注入攻击的一般顺序是: ? (发现SQL注入位置,判断后台数据库类型,确定XP_CMDSHELL可执行情况,发现WEB虚拟目录,上传ASP木马,得到管理员权限。 3、 SQL注入攻击的防范方法: SQL注入攻击防范方法目前已经有很多,总结起来有下面一些: (1) 在服务端正式处理之前对提交数据的合法性进行检查; (2) 封装客户端提交信息; (3) 替换或删除敏感字符/字符串; (4) 屏蔽出错信息。 (5)不要用字串连接建立SQL查询,而使用SQL变量,因为变量不是可以执行的脚本; (6)目录最小化权限设置,给静态网页目录和动态网页目录分别设置不同权限,尽量不给写目录权限; (7)修改或者去掉Web服务器上默认的一些危险命令,例如ftp、cmd、wscript等,需要时再复制到相应目录; (8)数据敏感信息非常规加密,通过在程序中对口令等敏感信息加密都是采用md5函数进行加密,即密文=md5(明文),本文推荐在原来的加密的基础上增加一些非常规的方式,即在md5加密的基础上附带一些值,如密文=md5(md5(明文)+123456); 实验步骤 1、查看Web程序的数据库 打开浏览器输入:“http:/phpmyadmin/” 图 phpMyAdmin登录 登陆成功后选择左边菜单栏“test”“register”“user”这里可以看到不同权限级别的用户以及其密码,等会通过后面的SQL注入来获取密码或者提权。 客户端远程访问Ubuntu的Web程序 在本地PC浏览器上访问“http://(Linux虚拟机IP)/SQL_Injection/”“WebApp” “access.php” WebApp目录图 在打开的登录模块access.php 此模块使用GET提交信息,可以通过URL送参数登录 使用数据表user中存在的用户名和密码Username=bluedon password=mypass 是数据库存在的用户信息 URL参数“?username=bluedonpassword=mypass”,将第这条url参数复制到链接之后,回车确定。 正常登陆成功 URL参数“?username=bluedon’%23”在没有发送密码的情况下登录成功。 注意到本次操作的SQL语句: “SQL查询:SELECT * FROM user WHERE username=’bluedon’#’ AND password=’ ’ ” “#”是MySQL数据库的注释符。SQL语句匹配了用户名,mysql_num_rows函数返回值为1,符合登录模块的验证条件。 无密码登录成功 无用户名无密码的登录 使用“1=1”这条恒成立的语句,可以在缺少更多信息的情况下,成功登录。 url参数:“?username=zor1=1%23” 图无用户名无密码登录成功 在服务器生成用户信息文件 导出文件到Web服务器的tmp目录。 数据库中的user表被导出到Ubuntu服务器的tem目录。 现在远程登录Web服务器(linux靶机),查看tmp目录下的文件。 “Places”“Desktop”“File System”“tmp” 图 图 SQL注入前,tmp目录下不存在“sss.txt ”文件 图查看是否存在生成文件 使用url参数“?username=’ or 1=1 into outfile ’/tmp/sss.txt’%23” 图登录失败 SQL注入后

您可能关注的文档

文档评论(0)

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

我是自由职业者,从事文档的创作工作。

1亿VIP精品文档

相关文档