- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告
课程名称: 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:本地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中存在的用户名和密码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”
图1
图2
SQL注入前,tmp目录下不存在“sss.txt ”文件
图:查看是否存在生成文件
使用url参数“?username=’ or 1=1 into outfile ’/
您可能关注的文档
最近下载
- Unit1《实用商务英语写作教程》作者董晓波—教学课件.ppt VIP
- 中西医结合诊所规章制度大全.docx VIP
- (2025年)抗菌药物临床应用知识培训考试题库(附答案).docx VIP
- DLT 5044-2014 电力工程直流电源系统设计技术规程.docx
- 《联合国教科文:教师人工智能能力框架》--中文版.docx
- OpenHarmony应用开发认证考试题库大全-中(多选题汇总).docx
- 山东省济南市历城区2023-2024学年四年级下学期期末考试数学试题 附答案.pdf VIP
- 机封培训课件.pptx VIP
- 2023年7月黑龙江省普通高中学业水平合格性考试物理真题试卷含答案.docx VIP
- 中外新闻传播史考题及答案.pdf VIP
文档评论(0)