seed信息安全实验系列collabtive系统sql注入实验

seed信息安全实验系列collabtive系统sql注入实验

ID:16021317

大小:358.00 KB

页数:13页

时间:2018-08-07

seed信息安全实验系列collabtive系统sql注入实验_第1页
seed信息安全实验系列collabtive系统sql注入实验_第2页
seed信息安全实验系列collabtive系统sql注入实验_第3页
seed信息安全实验系列collabtive系统sql注入实验_第4页
seed信息安全实验系列collabtive系统sql注入实验_第5页
资源描述:

《seed信息安全实验系列collabtive系统sql注入实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、SQL注入攻击实验描述SQL注入漏洞的代码注入技术,利用web应用程序和数据库服务器之间的接口。通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。实验背景在这个实验中,我们利用的web应用程序称为Collabtive,禁用Collabtive的若干对策。这样我们就创建了一个容易受到SQL注入攻击的Collabtive版本。经过我们的人工修改,可以捕捉许多web开发人员的常见错误。在本实验室学生的目标是找到方法来利用SQL注入漏洞,证明可以通过攻击的伤害,和掌握的技术,可以帮助抵御这类攻击。预备知识SQL语言结构化查询语言

2、(StructuredQueryLanguage)简称SQL:是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名常见SQL语句SQL注入SQL注入:SQL注入能使攻击者绕过认证机制,完全控制远程服务器上的数据库。SQL是结构化查询语言的简称,它是访问数据库的事实标准。目前,大多数Web应用都使用SQL数据库来存放应用程序的数据。几乎所有的Web应用在后台都使用某种SQL数据库。跟大多数语言一样,SQL语法允许数据库命令和用户数据混杂在一起的。如果开发人员不细心的话,用户数据就有可能被解释成命令,

3、这样的话,远程用户就不仅能向Web应用输入数据,而且还可以在数据库上执行任意命令了。sql注入原理讲解SQL注入危害1.非法读取、篡改、添加、删除数据库中的数据。2.盗取用户的各类敏感信息,获取利益。3.通过修改数据库来修改网页上的内容。4.私自添加或删除账号。5.注入木马等等。环境搭建启动mysql:sudomysqld_safe启动Apache:sudoserviceapache2start 密码:dees配置DNS:sudovim/etc/hostsv按i进入编辑模式,编辑文件v编辑完成后按Esc退出编辑v完成后使用:wq保存并退出配置网站文件:sudovim/etc/ap

4、ache2/conf.d/lab.conf sudoserviceapache2restart重启服务访问测试:http://www.sqllabcollabtive.com用户名:admin;密码:admin关闭php配置策略:sudovim/etc/php5/apache2/php.ini把magic_quotes_gpc=On 改为magic_quotes_gpc=Off关于magic_quotes_off函数:v对于magic_quotes_gpc=on的情况,我们可以不对输入和输出数据库的字符串数据作addslashes()和stripslashes()的操作,数据也会

5、正常显示;v如果此时你对输入的数据作了addslashes()处理,那么在输出的时候就必须使用stripslashes()去掉多余的反斜杠。对于PHP magic_quotes_gpc=off的情况v必须使用addslashes()对输入数据进行处理,但并不需要使用stripslashes()格式化输出,因为addslashes()并未将反斜杠一起写入数据库,只是帮助mysql完成了sql语句的执行。科普实验内容lab1select语句的sql注入访问:www.sqllabcollabtive.com;当我们知道用户而不知道到密码的时候,我们可以怎么登陆?查看登陆验证文件:sud

6、ovim/var/www/SQL/Collabtive/include/class.user.php设置行号:setnumber查找:/keyword找到其中第375行$sel1=mysql_query("SELECTID,name,locale,lastlogin,gender,FROMuserWHERE(name='$user'ORemail='$user')ANDpass='$pass'");这一句就是我们登录时,后台的sql语句;我们可以构造一个语句,在不知道密码的情况下登陆;$sel1=mysql_query("SELECTID,name,locale,lastlogi

7、n,gender,FROMuserWHERE(name='$user')#'ORemail='$user')ANDpass='$pass'");修改完后重启一下服务器:sudosudoserviceapache2restart我们在$user后面加上)# 这样就会只验证用户名,后面的会被#注释点击登陆以后,我们就可以绕过密码直接登录:思考:你是否可以找到一个方法来修改数据库(仍然使用上述SQL查询)?例如,你能添加一个新的登陆用户,或删除现有的用户?显然,上述的SQL语句是一个查

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。