- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SEED信息安全实验系列:Collabtive系统SQL注入实验.doc
SQL注入攻击
实验描述
SQL注入漏洞的代码注入技术,利用web应用程序和数据库服务器之间的接口。通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
实验背景
在这个实验中,我们利用的web应用程序称为Collabtive,禁用Collabtive的若干对策。这样我们就创建了一个容易受到SQL注入攻击的Collabtive版本。经过我们的人工修改,可以捕捉许多web开发人员的常见错误。在本实验室学生的目标是找到方法来利用SQL注入漏洞,证明可以通过攻击的伤害,和掌握的技术,可以帮助抵御这类攻击。
预备知识
SQL语言
结构化查询语言(Structured Query Language)简称SQL:是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名
常见SQL语句
SQL注入
SQL注入:SQL注入能使攻击者绕过认证机制,完全控制远程服务器上的数据库。SQL是结构化查询语言的简称,它是访问数据库的事实标准。目前,大多数Web应用都使用SQL数据库来存放应用程序的数据。几乎所有的Web应用在后台都使用某种SQL数据库。跟大多数语言一样,SQL语法允许数据库命令和用户数据混杂在一起的。如果开发人员不细心的话,用户数据就有可能被解释成命令,这样的话,远程用户就不仅能向Web应用输入数据,而且还可以在数据库上执行任意命令了。
sql注入原理讲解
SQL注入危害
非法读取、篡改、添加、删除数据库中的数据。
盗取用户的各类敏感信息,获取利益。
通过修改数据库来修改网页上的内容。
私自添加或删除账号。
注入木马等等。
环境搭建
启动mysql:
sudo mysqld_safe
启动Apache:
sudo service apache2 start
密码:dees
配置DNS:
sudo vim /etc/hosts
按i进入编辑模式,编辑文件
编辑完成后按Esc退出编辑
完成后使用 :wq 保存并退出
配置网站文件:
sudo vim /etc/apache2/conf.d/lab.conf
sudo service apache2 restart 重启服务
访问测试:
用户名:admin;密码:admin
关闭php配置策略:
sudo vim /etc/php5/apache2/php.ini
把magic_quotes_gpc=On?改为magic_quotes_gpc = Off
关于magic_quotes_off函数:
对于magic_quotes_gpc=on的情况, 我们可以不对输入和输出数据库的字符串数据作addslashes()和stripslashes()的操作,数据也会正常显示;
如果此时你对输入的数据作了addslashes()处理,那么在输出的时候就必须使用stripslashes()去掉多余的反斜杠。
对于PHP?magic_quotes_gpc=off的情况
必须使用addslashes()对输入数据进行处理,但并不需要使用stripslashes()格式化输出,因为addslashes()并未将反斜杠一起写入数据库,只是帮助mysql完成了sql语句的执行。
科普
实验内容
lab1 select语句的sql注入
访问:;当我们知道用户而不知道到密码的时候,我们可以怎么登陆?
查看登陆验证文件:
sudo vim /var/www/SQL/Collabtive/include/class.user.php
设置行号 :set number
查找 :/keyword
找到其中第375行
$sel1 = mysql_query (SELECT ID, name, locale, lastlogin, gender, FROM user WHERE (name = $user OR email = $user) AND pass = $pass);
这一句就是我们登录时,后台的sql语句;我们可以构造一个语句,在不知道密码的情况下登陆;
$sel1 = mysql_query (SELECT ID, name, locale, lastlogin, gender, FROM user WHERE (name = $user ) # OR email = $user) AND pass = $pass);
修改完后重启一下服务器:
sudo sudo service apache2 restart
我们在$user后面加上) #?这样就会只验证用户名,后面的会被#注释
点击登陆以后,我们就可以绕过密码直接登录:
思
您可能关注的文档
最近下载
- 内蒙古呼和浩特市2024届小升初考试语文试卷含答案.doc VIP
- 八角嫁接育苗技术规程 DB45_T 2091-2019 广西.pdf VIP
- 《海上作战与三十六计》章节及期末答案-海军潜艇学院.docx VIP
- 人工湿地工程施工方案.docx VIP
- 2023广东湛江市检察机关招聘劳动合同制司法辅助人员(32人)笔试备考题库及答案解析.docx VIP
- GBT24353-2022风险管理指南.docx
- 国开电大学习网《高级财务会计》形考任务答案1-5答案.pdf
- 2023-2024学年山东省日照市高一下期末数学试卷附答案解析.docx
- 建筑图集-08J907 洁净厂房建筑构造.pdf VIP
- (正式版)D-L∕T 766-2013 光纤复合架空地线(oPGW)用预绞式金具技术条件和试验方法.docx VIP
文档评论(0)