实训项目1:Web安全应用分析之SQL注入及防护配置_第1页
实训项目1:Web安全应用分析之SQL注入及防护配置_第2页
实训项目1:Web安全应用分析之SQL注入及防护配置_第3页
实训项目1:Web安全应用分析之SQL注入及防护配置_第4页
实训项目1:Web安全应用分析之SQL注入及防护配置_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

寻真求是格物致知信息安全发展态势与知识拓展实训项目指导手册V1.0目录TOC\o"1-2"\h\u11700Web安全应用分析之SQL注入及防护配置 223041实验概述 231094实验环境 24340前提条件 223实验流程 23146实验目标 311147任务1环境准备 320521任务2判断注入点 512640任务3猜测字段数 724058任务4执行Union联合查询 928449任务5获取数据 108122任务6SQL注入防护 13

Web安全应用分析之SQL注入及防护配置实验概述SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,甚至篡改数据库。凡有SQL注入漏洞的程序,都是因为程序要接受来自客户端用户输入的变量或URL传递的参数,并且这个变量或参数是组成SQL语句的一部分。DVWA(DamVulnerableWebApplication)是用PHP+Mysql编写的一套用于常规Web漏洞教学和检测的Web脆弱性测试程序。提供Low、Medium、High、Impossible四个安全级别,包含了SQL注入、XSS、CSRF等常见的Web安全漏洞。HackBar是Firefox提供的插件,主要功能有:网址的载入访问、联合查询、各种编码/解码、数据加密等。HackBar可以帮助安全人员测试SQL注入、XSS、CSRF等安全漏洞以及网站的安全性。实验环境攻击机:WindowsServer2016(01-Windows攻击机),IP:30靶机:WindowsServer2016(01-Windows攻击机),IP:30集成环境:PhpStudy网站:DVWA-v1.10,low安全级别前提条件本实验要求:熟悉Windows基本操作熟悉基本的SQL语句实验流程实验目标完成本实验后,将能够:了解SQL注入原理掌握基本SQL注入方法掌握SQL注入漏洞防护方法任务1环境准备【任务目标】启动动态网站集成环境,并访问SQL注入站点。【任务步骤】启动动态网站集成环境双击桌面的”phpstudy”集成环境,并单击”启动”按钮,运行网站。浏览器访问SQL注入站点双击桌面的”火狐浏览器”,在URL地址栏中输入:/dvwa/login.php输入默认账号和密码登录网站:账号:admin密码:password单击左侧菜单导航栏的”SQLInjection”,进入SQL注入页面。任务2判断注入点【任务目标】利用加单引号等方式,判断页面是否存在注入点。【任务步骤】判断是否存在注入点在输入框中,输入:1并单击“Submit”按钮提交。页面回显了ID为1的用户姓名信息,说明页面正常。继续在输入框中,输入:1’并单击“Submit”按钮提交。页面报错并显示了错误信息,根据错误信息可以了解到此错误为语法错误,数据库类型为MySQL。注:因为该站点为字符型注入漏洞,所以需要构造闭合语句。构造如下闭合逻辑语句:1'and1=1#可以看到语句能够成功被服务器执行,并显示正常的页面信息。继续构造闭合逻辑语句:1'and1=2#可以看到语句能够成功被服务器执行,但页面没有正常信息回显。根据以上执行结果判断,该页面确定存在SQL注入漏洞。任务3猜测字段数【任务目标】通过orderby猜测查询的字段数量。【任务步骤】猜测字段数为10构造如下闭合语句:1'orderby10#页面报错,并显示不存在10个长度的字段,说明字段数小于10。因此范围在1到10之间。猜测字段数为5一般采用“二分”方法来猜测字段数,如:第一次猜测为100,下一次为50,再下一次为25以此类推,直到猜出正确的字段数。继续构造:1'orderby5#,同样显示错误,说明数量不为5。猜测字段数为3继续构造:1'orderby3#,同样显示错误,说明数量不为3。猜测字段数为2继续构造:1'orderby2#,页面显示正常,说明字段数量为2。任务4执行Union联合查询【任务目标】通过执行union联合查询,确定回显位置。【任务步骤】构造联合查询语句确定查询字段数量后,可以通过联合查询语句来确定数据回显的位置,最后通过该位置获取数据库中的敏感信息。构造如下语句:1'unionselect1,2#,有多少个字段数,select后面就加上对应的数字。任务5获取数据【任务目标】通过构造并执行unionselect查询语句,获取数据库中的数据信息。【任务步骤】获取数据库相关信息通过内嵌函数version(),database()等获取数据库版本信息和数据库名。构造语句:1'unionselectversion(),database()#得到数据库名为:dvwa,MySQL数据库版本为5.5.53。获取数据库表名在MySQL版本大于5时,默认存在information_schema库,该库中存在其他库的所有数据。根据已经获得的信息,继续构造语句,获取数据库表名:1'unionselecttable_name,2frominformation_schema.tableswheretable_schema='dvwa'#可以看到,在1的回显位置上,显示了两张数据库表名:guestbook,users。其中users表名存在管理员帐号密码可能性最大。获取字段名继续构造联合查询语句,获取users表的字段名:1'unionselectcolumn_name,2frominformation_schema.columnswheretable_schema='dvwa'andtable_name='users'#得到8个字段名,猜测user和password字段分别存在账号和密码。获取字段内容构造SQL查询语句,获取字段user和password里面的内容:1'unionselectuser,passwordfromusers#最终得到5个用户的账号和密码,其中包括管理员账号和密码:admin/5f4dcc3b5aa765d61d8327deb882cf99密码解密由于多数站点的默认数据库用户密码加密方式为:MD5哈希算法,而dvwa站点默认也是采用此算法进行密码加密。因此,可以将密码放到在线解密网站进行解密。例如:最终得到admin用户的密码为password任务6SQL注入防护【任务目标】通过在页面中加入防护代码,实现对SQL注入漏洞的代码级防护效果。【任务步骤】mysql_real_escape_string()函数mysql_real_escape_string()函数可以将用户输入的特殊字符进行转义。转义的特殊字符包括:\x00\n\r\'(单引号)"(双引号)\x1a进入C:\phpStudy\PHPTutorial\WWW\DVWA\vulnerabilities\sqli\source\文件夹,编辑low.php文件。将 $id=$_REQUEST['id'];修改为$id=mysql_real_escape_string($_REQUEST['id']);保存并退出编辑。验证漏洞修复结果在SQL注入页面中,执行1’and1=1#语句。可以看到页面已经不再显示任何内容,也没有报错提示,说明漏洞已经修复成功。addslashes()函数addslashes()函数同样可以将特定字符进行转义,从而达到修复效果。进入C:\phpStudy\PHPTutorial\WWW\DVWA\vulnerabilities\sqli\source\文件夹,编辑low.php文件。将 $id

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论