- 1、本文档共101页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
Web安全基础及项目实践郑丽
项目7SQL注入漏洞实践任务1使用Sqli-labs平台实践SQL注入任务2使用DVWA平台实践SQL注入任务3使用DVWA平台实践SQL盲注任务4SQL注入绕过及漏洞防御技术
项目7SQL注入漏洞实践项目导读凡是使用数据库开发的应用系统,就可能存在SQL注入攻击的媒介,SQL注入漏洞是常见的安全漏洞之一。SQL注入是指Web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在Web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理者不知情的情况下欺骗数据库服务器执行非授权的查询,实现非法操作。本项目将会对SQL注入原理进行介绍,并使用实例模拟SQL注入攻击,最后还提出了一些防御SQL注入的方法。
项目7SQL注入漏洞实践教学目标掌握SQL注入的原理熟悉SQL注入攻击过程熟悉SQL注入防御方法
任务1使用Sqli-labs平台实践SQL注入任务描述SQL是操作数据库数据的结构化查询语言,网页中的数据如表单域、数据包输入参数等通过SQL与后台数据库中的数据进行交互。如果攻击者修改了传递给数据库的内容,将拼接的SQL语句传递给Web服务器,进而传给数据库服务器以执行数据库命令。本任务将对SQL注入的原理进行介绍,讲解常用的SQL语句,最后使用Sqli-labs平台实践SQL注入。环境:Windows1064位虚拟机、PhpStudy、Sqli-labs平台。
任务1使用Sqli-labs平台实践SQL注入任务要求掌握SQL注入的原理熟悉常用的SQL语句熟悉SQL注入过程
知识链接1.SQL注入的原理SQL注入攻击是通过操作输入来修改SQL语句,以达到执行代码对Web服务器进行攻击的方法。也就是说在表单、输入域名或页面请求的查询字符串中插入SQL命令,最终使Web服务器执行恶意命令的过程。以网站常用的登录功能为例,数据库中有一个users表,里面有两个字段username和password。如果使用PHP代码进行SQL拼接的方式进行用户验证,比如select*fromuserswhereusername=$usernameandpassword=$password;,这里的参数username和password是从Web表单中获得的数据。而如果攻击者已知用户名为“abc”,而不知道密码。那么攻击者在表单的username输入框中输入abcor1=1,密码框中输入任意值,或者密码框什么也不输入。那么此时,后台的SQL语句变成select*fromuserswhereusername=abcor1=1andpassword=;。因为1=1为True,所以后边的password=被屏蔽掉了,SQL语句正确执行,登录成功。通过这种方式跳过了SQL的密码验证,成功实验无密码登录。
知识链接2.SQL注入的基本步骤一般来说,SQL注入的基本步骤包括以下几点:(1)判断是不是注入点,找到注入点。(2)得到字段总数,也就是判断当前表的字段总数是多少。(3)得到显示位,即用联合语句查看哪几位是有效位。(4)查选库,即获得数据库的版本等信息。(5)查选表名,也就是查看当前数据库中有哪些表。(6)查选列名,即查看表中有哪些属性。(7)得到列名的值,即查看表中具体的数据信息。
知识链接3.SQL相关信息要进行SQL注入,就要知道一些SQL相关的信息,这里以MySQL数据库为例。(1)MySQL的库和表在MySQL数据库中一个information_schema库,它是一个信息数据库,保存着关于MySQL服务器所维护的所有其他数据库的信息,如数据库的表、属性的数据类型和访问权限等。在information_schema库有三个重要的表,分别是:SCHEMATA、TABLES和COLUMNS。SCHEMATA表存储当前用户创建的所有数据库的库名,TABLES表存储当前用户创建的所有数据库的库名和表名,COLUMNS表存储当前用户创建的所有数据库的库名、表名和字段名。
知识链接(2)MySQL语法假设MySQL数据库中有一个表为users,有字段id、username和password。1)插入数据MySQL表中使用INSERTINTO语句来插入数据,语法为:INSERTINTO表名(字段1,字段2,….,字段n)VALUES(值1,值2,…,值n);例如,插入一个用户信息,SQL语句为:insertintousers(username,password)values(abc,123);。
知识链接2)查询数据在MySQL数据库中查询数据通过
文档评论(0)