WEBGoat实验报告

更新时间:2024-03-23 22:18:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

WebGoat实验报告

一、WebGoat 项目简介

WebGoat是OWASP组织研制出的用于进行web漏洞实验的应用平台,用来说明web应用中存在的安全漏洞。WebGoat运行在带有JVM的平台上,

当前提供的训练课程有30多个,其中包括:跨站点脚本攻击(XSS)、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话cookie、SQL盲注、

数字型SQL注入、字符串型SQL注入、web服务、Open Authentication失效、危险的HTML注释等等。WebGoat提供了一系列web安全学习的教程, 某些课程也给出了视频演示,指导用户利用这些漏洞进行攻击。

二、WebGoat的安装

WebGoat可以在网上下载到,运行其中的“webgoat_8080.bat”即可。在运行前,需要将代理设置为 localhost,端口 8008。在浏览器中输入 http://localhost:8080/WebGoat/attack 登录,如果启动了Webscarab,则在浏览器输入 http://localhost.:8080/WebGoat/attack。初始用户名密码是 guest。也可以在\\WebGoat-5.2\\tomcat\\conf\\tomcat-users.xml 修改用户名与密码。也可以在\\WebGoat-5.2\\tomcat\\conf\\server_80.xml 文件中修改端口。

三、WebGoat的使用

3.1先修课之Http基础知识

HTTP(Hypertext transfer protocol)-->超文本传输协议,是一种详细规定了浏览器和万维网服务器(www)之间互相通信的规则,通过因特网传送万维网文档

的数据传送协议。运行于OSI模型的应用层,由请求和响应两部分构成。HTTP协议是无状态的协议。无状态指HTTP协议对于事务处理没有记忆力。缺少事务

状态意味着若后续处理需要前面的信息,则必须重传,可能导致每次连接传送的数据量增大。基于事务处理的需要,出现了cookie和session技术。

在浏览器设置中增加一个 localhost 的代理,然后可以启动 WebScarab。

我们需要在“拦截(Intercept)”选项卡中选择“拦截请求(intercept request)”。

在页面输入框中填写上您的名字(“Your Name”)后,单击【Go!】按钮提交数据。在 WebScarab 的新窗口中,我们可以找到参数“person”。

3.2HTTP 拆分

攻击者在向 Web 服务器正常输入的请求中加入恶意代码,受到攻击的应用不会检查 CR (回车,也可表示为 或\\r)和 LF(换行,也可表示为 或\\n)。这些字符不仅使攻击 者控制应用程序打算发送的响应头和响应体,而且还使他们能够完全在其控制下创造更多的 答复。 HTTP 拆分攻击配合缓存污染一起使用,能使效果达到最大化。缓存污染攻击的目标是 使缓存污染,欺骗缓存,使其相信使用 HTTP 拆分劫持的页面是一个很正常的页面,是一个 服务器的副本。攻击发生时,使用 HTTP 拆分攻击,加上最后修改添加的部分:请求头,并 设置它为将来的日期。这将迫使浏览器发送 If ‐ Modified‐ Since 请求头,这使攻击者有机会 拦截服务器的答复,并代之以一个“304 不修改”答复。

用户需要使用 LF, 由于输入内容未作验证您可以插入任何 HTTP 语法,回车和换行符。 随便输入一个语言名称提交看看数据都是怎么交互的。请确认 WebScarab 的请求拦截 和返回拦截功能已经启用。

语言框输入“en”,并提交数据。

3.3访问控制缺陷

在一个基于角色的访问控制方案中,角色代表了一组访问权限和特权。一个用户可以被 分配一个或多个角色。一个基于角色的访问控制方案通常有两个部分组成:角色权限管理和 角色分配。一个被破坏的基于角色的访问控制方案可能允许用户执行不允许他/她的被分配 的角色,或以某种方式允许特权升级到未经授权的角色的访问。

先选择一个用户,再选择一个资源,然后点击【Check Access】,出现页面如下图所示:

在 Select resource 选项中选中下一个资源 Time Card Entry,然后是点击【Check

Access】,出现页面如下所示:

3.4绕过基于路径的访问控制方案

在一个基于路径的访问控制方案中,攻击者可以通过提供相对路径信息遍历路径。因此, 攻击者可以使用相对路径访问那些通常任何人都不能直接访问或直接请求就会被拒绝的文 件。

选中“Choose the file to view”列表下的任何一个文件,然后点击【View File】,用 WebScarab 工具截获向服务器发送的请求,如图所示:

3.5基于角色的访问控制

在一个基于角色访问控制的方案中,角色代表一组访问权限和特权。一个用户可以被分

配一个或多个角色,一个基于角色的访问控制通常包括两个部分:角色权限管理和角色分配。 一个被破坏的基于角色的访问控制方案,可能允许用户以没有分配他/她的角色或以某种方 式获得的未经授权的角色进行访问。

3.6小实验:客户端过滤

服务端只向客户端发送其只能访问到的数据。在本课程中,服务端向客户端发送了过多 的数据,由此产生了一个严重的访问控制问题。

通过【Select user】下拉菜单查询其它数据。在有返回数据的时候使用 Firebug 或 WebScarab 查看源代码或返回数据。找到 Neville 的薪水信息。

四、总结

收获不小,以前直接看书,没有实战,理解方面差很多,还看不进去。有了测试平台后,联系实战,对于知识的理解有很大的帮助。

课程设置有点问题,有时候检测通过方法过于单一。由于平台是英文,所以顺带锻炼英语了。对于自己从未接触过得东西,完成起来问题很大。如果是熟悉的知识,则能很轻松的完成。比如说XML我就没用过,导致那个过滤的代码不会写。查了资料,过于片面,也没有解决问题。Access Control Flaws 中的 Remote Admin Access 不懂怎么找到 admin=true 的。很多训练需要自己仔细读一下源码,或者现场学一下,可以解决。答案方法很简单,但为什么这么做还需要自己好好掂量掂量。

四、总结

收获不小,以前直接看书,没有实战,理解方面差很多,还看不进去。有了测试平台后,联系实战,对于知识的理解有很大的帮助。

课程设置有点问题,有时候检测通过方法过于单一。由于平台是英文,所以顺带锻炼英语了。对于自己从未接触过得东西,完成起来问题很大。如果是熟悉的知识,则能很轻松的完成。比如说XML我就没用过,导致那个过滤的代码不会写。查了资料,过于片面,也没有解决问题。Access Control Flaws 中的 Remote Admin Access 不懂怎么找到 admin=true 的。很多训练需要自己仔细读一下源码,或者现场学一下,可以解决。答案方法很简单,但为什么这么做还需要自己好好掂量掂量。

本文来源:https://www.bwwdw.com/article/3mg8.html

Top