ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:1.84MB ,
资源ID:10790785      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10790785.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(WebGoat实验.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

WebGoat实验.docx

1、WebGoat实验WebGoat学习报告五瞿靖东2015/12/1版本号:WebGoat 5.413、不安全的配置(Insecure Configuration)强制浏览(How to Exploit Forced Browsing)技术原理(How It works)强制浏览是黑客用来访问获取那些没有被引用,但仍然允许被访问的资源的技术。一种方法是操纵浏览器中的URL,删除结尾部分,直到找到一个不受保护的目录。总体目标(General Goals)你的目标是尝试猜测“config”界面的URL。“config”的URL 只提供给维护人员。该应用程序没有做垂直权限检查。操作方法(Solutio

2、ns)如果你想访问一个受限制的页面,你需要能够猜测URL 访问页面,如“/admin”。尝试使用/WebGoat/config, /WebGoat/configuration, /WebGoat/conf,最后发现conf 能够成功访问。14 不安全的存储(Insecure Storage)技术原理(How It works)熟悉一些经常使用的编码,包含有Base64编码,实体编码,基于密码的加密, MD5 hash , SHA-256 hash, Unicode编码,URL编码,十六进制编码, Rot13编码,XOR和密码编码,双unicode编码,双URL编码Base64是网络上最常见的用

3、于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045RFC2049,上面有MIME的详细规范。Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GHash是一种特殊的算法,MD5就是其中常用的一种。它的算法的特征是不可逆性,并且才计算的时候所有的数据都参与了运算,其中任何一个数据变化了都会导致计算出来的Hash值完全不同,所以通常用来校验数据是否正确或用作身份验证。 常见的,论坛里面用户

4、的密码是经过MD5等Hash算法算出来的Hash值进行保存的。 在通常的网络下载中,会带有一个Hash值,这个值是用来校验你下载的文件是否损坏并保证尚未被别人篡改的。操作方法(Solutions)输入一些文字 比如是qjd 然后按go在下面我们看到了一些编码的和一些解码的文字 那样我们就把内容输进去15 恶意执行(Malicious Execution)技术原理(How It works)脚本后门属于典型的恶意文件。总体目标(General Goals)下面的表单允许你上传图片文件,图片上传后显示在当前页面。互联网上的各种论坛或社交网站很容易找到此类应用。该功能容易被恶意文件执行漏洞利用。为了

5、通过本课程,你需要上传一个恶意文件。为证明你的文件能够被执行,它必须能够创建另一个名为guest.txt 的文件。操作方法(Solutions)第一步是在服务器上创建一个可以运行的文件,该文件运行后会出创建guest.txt。为完成该步骤,我们使用了Java 中createNewFile()命令。创建一个.jsp 后缀的文件hacker.jsp,其代码如下:%内为JSP 代码。该段代码功能是创建一个guest.ext 文件。其中filepath 需要你自己填写成一个指定的路径,注意Windows 下文件分隔符中字符需要通过转义。Linux 系统下分隔符为“/”。当前测试环境中位置为:D:工具W

6、ebGoatWebGoat-5.4tomcatwebappsWebGoatmfe_targetwebgoat.txt接下来上传恶意jsp 文件,并找出该文件的位置,从而访问并执行该文件。通过图片上传按钮,提交并上传“图片文件”hacker.jsp。访问该URL:http:/localhost:8080/WebGoat/uploads/hacker.jsp,执行恶意文件。访问该URL 会看到一个空白页面,刷新课程页面,本课程通过(guest.txt 文件已经被创建)。16 参数篡改(Parameter Tampering)(1)绕过HTML字段限制(Bypass HTML Field Restr

7、ictions)技术原理(How It works)很多浏览器辅助工具都支持修改HTML或JavaScript 代码,也支持手动提交HTTP 数据。总体目标(General Goals)向网站发送超出预期的输入信息。在该练习中,你的任务是破坏客户端校验并向网站发送非法输入信息,包括部分被禁用的字段。6 个字段必须同时验证。操作方法(Solutions)要通过本节课程,你需要在6 个字段中提交非法字符(斜杠、单引号等)。其中有三个字段涉及到切换或下来,我们将通过Webscarab 中断并修改请求。我们还需要向禁用的字段写入非法数据。这里有两种方式可以实现:通过Firebug 插件启用或通过Web

8、scarab 修改。打开Firebug,找到form 表单包含的几个字段,如:disabledinput。删除属性disabled。此时页面上的禁用按钮已经实效,控件被激活处于可用状态。 当你完成输入添加后,记下来是提交验证输入。为每个字段设置不允许的非法字符,确保至少有5 个字段的长度超过了系统原先设定的限制。完成修改后,提交数据,通过本课程。(2)利用隐藏字段(Exploit Hidden Fields)技术原理(How It works)开发人员在加载信息的页面上使用隐藏字段来跟踪、登录、定价等。虽然这是一种方便且易于开发的机制,他们往往不验证从隐藏字段收到的信息。本课程中,我们将了解如

9、何找到和修改隐藏字段以便宜的价格购买产品。总体目标(General Goals)你需要利用隐藏字段,使用错误的价格购买产品。操作方法(Solutions)开启WebScarab直接修改交易额。(3)利用未检查的Email(Exploit Unchecked Email)技术原理(How It works)验证所有的输入信息总是不错的做法。多数网站都允许一个非验证的用户给“朋友”发送e-mail。对垃圾邮件发送者来说,这是一个绝佳的机制,可以利用公司的邮件服务器来发送电子邮件。总体目标(General Goals)发送一封令人讨厌的E-mail。操作方法(Solutions)发送一封包含跨站脚本

10、攻击代码的邮件。输入alert(XSS),发送邮件,实现跨站脚本攻击。也可以通过WebScarab 修改相应的字段,向其他人发送恶意邮件。(4)绕过客户端JavaScript 校验(Bypass Client SideJavaScript Validation)技术原理(How It works)很多浏览器辅助工具都支持修改HTML或JavaScript 代码,也支持手动提交HTTP 数据。总体目标(General Goals)在这个练习中,每个输入框中有不同的输入要求,你要做的就是绕过客户端验证机制破坏这些规则,输入不允许输入的字符。操作方法(Solutions)正常提交一次数据,并使用We

11、bScarab 拦截。17 会话管理缺陷(Session Management Flaws)(1)会话劫持(Hijack a Session)技术原理(How It works)开发人员在开发他们的自有会话ID 时经常忘记整合的复杂性和随机性,这些因素对安全来说是必须的。如果用户的特定的会话ID 不具备复杂和随机性,那么应用程序很容易受到基于会话的暴力攻击的威胁。总体目标(General Goals)本课程的目标是尝试访问一个其他用户的会话(该会话已经过服务器认证)。我们尝试预测WEAKID 的数值。WEAKID 用于区别WebGoat 中不同用户(经过认证的或匿名的)。操作方法(Soluti

12、ons)这个课程就是说因为这个Web应用用来生成会话标识的算法不够随机,所以很容易被预测,从而要求我们发现会话标识生成的规律并且使用暴力破解的办法找到一个有效的会话标识。这里我们使用WebScarab作为代理来观察浏览器和服务器之间的数据通信。先随便输入一点东西来观察浏览器发送给服务器的请求。从上图可以看到有个WEAKID的Cookie,这就是我们的攻击目标,我们使用WebScarab的会话标识分析功能来分析这个会话标识。在 WebScarab上点击“SessionID Analysis”这个Tab页面,然后在“Collection”子页面的“Previous Requests”的下拉菜单中选

13、取我们需要分析的那个请求,如下图所示:然后我们需要使WebScarab意识到Cookie里面的WEAKID这个参数是会话标识。我们知道如果客户端发送给Web服务器的请求里面没有会话标识的话,服务器会从新生成一个新的会话标识并通过Cookie返回给客户端,利用这个特性,我们可以使WebScarab通过分析服务器返回的Cookie的办法来识别会话标识。这里我们删除现有的这个参数,然后点击Test按钮让WebScarab进行分析。弹出类似如下的对话框表示WebScarab已经成功的识别出了会话标识的参数。然后在取样数量这里我们输入稍微大点的数字,比如50,然后点击“Fetch”按钮,WebScara

14、b就会自动从服务器上获取50个会话标识的样例。下面我们进入“SessionID Analysis”下的“Analysis”子页面,在“Session Identifier”下拉菜单中选择这个参数后可以看到WebScarab获取的这些会话标识。我们可以看到这些会话标识是非常有规律的,是被短横线分割的2部分,前一部分是每次加1的有序排列的数字,后一部分也是不断增加的有序排列的数字,我们可以猜测后一部分应该是时间戳再进一步仔细观察后可以发现有些特别的地方,如上图所示,会话标记第一部分的数字跳了一个。这说明中间跳掉的会话标记是被别的用户使用了,我们的目标就是找到这个会话标识。在我们这个例子中,根据我们

15、发现的会话标识生成的规律,中间跳掉的这个会话标识的值应该是在12266-1449319737470到12268-1449319737570之间。下面我们使用WebScarab的模糊测试的功能来试图找到这个会话标识。我们先把相应的请求添加到模糊测试的模板里面。在WebScarab的“Summary”页面中,选择目标请求后,右键菜单中可以看到“Use as fuzz template”的菜单项,点击这个菜单项就可以把这个请求作为模糊测试的基础模板。然后进入WebScarab的“Fuzzer”页面。会发现系统已经自动帮我们分析出了所有可以做模糊测试的参数。点击下面的“Source”按钮添加模糊测试的

16、源。在弹出的对话框中,给这个源起一个名字比如“ForWeakID”输入到“Description”里面,然后我们使用正则表达式的方式来添加我们需要测试的数据,输入这样的正则表达式:12267-14493197374-50-90-9,然后点击“Add”按钮。注意这里我们输入的数据会使WebScarab测试从12267-1449319737400到12267-1449319737599的值,略微有些扩大范围,这是因为WebScarab只支持基本正则表达式,我们略微扩大一点测试的数据范围,可以把这个正则表达式写得简单一点。然后关闭弹出的对话框,再为Cookie里面的WEAKID选择我们添加的源,就可

17、以点击“Start”按钮开始运行了。结果的分析还是需要人工进行,我们需要知道输入有效地会话标识之后服务器会返回怎样的数据。在WebGoat里面我们知道一旦提交了正确的数据给服务器,服务器返回的数据里面会包含“Congratulations”的消息,所以我们只需要检查看哪个请求的返回有包含这样的信息就好。这时候我们实际上也已经完成这个课程了。刷新一下课程,就可以看到课程完成的标记。(2)认证Cookie 欺骗(Spoof an Authentication Cookie)技术原理(How It works)如果验证cookie 正确,一些应用程序会允许一个用户自动登录到他们的网站。如果能够获得生

18、成cookie 的算法,有时cookie 的值是可以猜到的。有时候cookie 可能是通过跨站攻击截获的。在这一课中,我们的目的是了解身份验证cookie 的方式,并指导你学习突破这种身份验证cookie 的方法。Cookie 存储在客户端,可随时被篡改用于特别用途。总体目标(General Goals) 本节课程的目标是绕过认证检查。操作方法(Solutions)请确认在WebGoat 中开启了“Show Cookies”功能。你需要在WebScarab 中禁用Injectknow cookies into requests,否则WebScarab 将会一直截获你的旧的cookie,而不是新

19、的截获。以 webgoat/webgoat 登录 点击“Refresh”,这会刷新显示我们的AuthCookie。你现在使用的身份验证是这个 cookie,而不是像上面的参数验证。你会得到“AuthCookie”cookie,值为65432ubphcfx。然后退出登录,以“aspectaspect”登录。点击“Refresh”,显示新的“AuthCookie”。现在你有一个新的值。这是一个英文字母的换位。每个字母都是用户名倒过来,并被替换为它后面的,如T-U,A-B。因此如果以用户“alice”登录,cookie 会将用户名倒转为“ecila”,然后每个字母向后一位,最终结果为“fdjmb”以

20、用户名alice 登录,通过WebScarab 截获请求。在已经存在的JSESSIONID 后面添加“;AuthCookie=65432fdjmb”结果是没有输入密码,即可以 alice 进行登录了。(3)会话固定(Session Fixation)技术原理(How It works)服务器通过每个用户的唯一的Session ID 来确认其合法性。如果用户已登录,并且授权他不必重新验证授权时,当他重新登录应用系统时,他的Session ID 依然是被认为合法的。在一些程序中,可能会在GET-REQUEST 请求中传递Session ID。这就是攻击的起点。一个攻击者可以用一个选定的Sessio

21、n ID 给受害人发送一个超链接。例如,这里有一个准备好的邮件,它看起来像是一个从应用程序管理员发来的官方邮件。如果受害者点击了这个链接,并且该受害者以攻击者指定的ID 登录了系统;那么攻击者可以不经授权直接使用与受害者相同的ID 访问该页面。总体目标(General Goals)本节课程有多个步骤,你需要同时扮演攻击者和受害者两个角色。完成该课程后,你将理解会话固定的原理;同时也将理解使用GET 请求传递Session ID 是个很糟糕的主意!操作方法(Solutions)第一步:给Jane 发送一封邮件,这个邮件看起来像是Goat Hills Financial 发来的包含一个Sessio

22、n ID 的链接。邮件已经准备好了,你只需要在连接中加入一个Session ID。你可以通过向链接中加入&SID=WHATEVER.当然WHATEVER 可以用其他字符代替。这个链接可以是这样: 点击确定后提交,第一步完成。第二步:现在你是第一步中的收件人Jane。这一步很简单,你只需要点击“Goat HillsFinancial”。第三步:你已经到了“Goat Hills Financial”的登录界面。以Jane/tarzan 登录。第四步:现在你是黑客 Joe。已经有一个准备好的链接,单击后登录到“Goat HillsFinancial”页面,当然在现实中,这会有些不同。登录后你会在浏览

23、器中看到你的SID 是“NOVALIDSESSION”,将这个ID 改成“12245”,然后回车。18 Web 服务(Web Services)(1)创建SOAP 请求(Create a SOAP Request)技术原理(How It works)SOAP 通讯过程中,HTTP Content 部分一般是XML 内容。总体目标(General Goals)尝试用浏览器或者WebService 工具连接WSDL。WebService 的URL 地址是:http:/localhost:8080/WebGoat/services/SoapRequestWSDL 通常可被视为在web 服务请求结束处

24、加入一个WSDL。点击页面上的“WebGoatWSDL”,或者在上面的请求后面加上“?WSDL”即可。http:/localhost:8080/WebGoat/services/SoapRequest?WSDL发起两种以上的SOAP 操作请求以完成本节课程。操作方法(Solutions)第一步,我们要得到在WSDL 中定义了几个操作。访问“WebGoat WSDL”的URL 查看Webservices 描述定义语言文件。进入WSDL 文件页面,可以看到一共有四个。在页面中输入4,进入下一步。现在我们需要回答的问题是在“getFirstNameRequest”中“id”的类型是什么。从图中可以看

25、到,答案是“int”。输入后进入第三步。截取请求并调用任何方法,发送一个有效SOAP(简单对象访问协议)请求的有效的账户。启动WebScarab,确保“Intercept requests”“Intercept responses”被选中POST 改为:POST http:/localhost:8080/WebGoat/services/SoapRequest HTTP/1.1Content-Type 改为text/xml修改HTTP Content 代码,最后格式如下: 从SOAPAction 头到打开的XML 标记之间不能有空格,这一点非常重要,否则会引发一个错误信息。 使用SOAP 参数

26、更新HTTP request,响应内容是Joe即可。 返回数据包有错,http状态为500,表示服务器内部出错,可能是webgoat文件受损。理论上重复以上操作,使用新的Operation:getLastName,即可通关。(2)WSDL 扫描(WSDL Scanning)总体目标(General Goals)本页面是Web Service 的API。查看WSDL 文件,并尝试获取客户的其它信息,如:信用卡号码。操作方法(Solutions)启动WebScarab,任意选择后点提交 使用 WebScarab 截获请求,并将其中的“field=getLastName”改为“field=getCr

27、editCard”点击“Accept Changes”后提交数据,返回信息里能够看到getCreditCard 字段的信息。(3)Web Service SAX 注入(Web Service SAX Injection)总体目标(General Goals)有些Web 界面在后台使用Web Services。如果前端所有输入验证都依赖Web Services,那么它可能会破坏Web 界面发送数据的XML 内容。本节课程中,你需要修改除了用户101 以外的另一个用户的密码。.操作方法(Solutions)SAX 解析器会解析任何格式正常的XML 文件,例如:匹配到有效的标记符号及闭合符号即认为正

28、确。当你向原有的XML 文件中添加新的changePAssword 元素时,如果id 和password 等标记都正确,那么解析器将很乐意帮你去修改另一个userid 的密码。在课程页面密码框中输入一个密码,开启WebScarab。点击“Go!”按钮提交数据,在WebScarab 拦截的请求中修改XML 文件,在password选项中添加如下代码:test102qjd 成功为uid为102的用户修改密码为“qjd”(4)Web Service SQL 注入(Web Service SQL Injection)总体目标(General Goals)查看WSDL 文件,并尝试获取多个客户的信用卡帐

29、号。你在屏幕上无法看到返回数据。完成该课程后,刷新页面,左侧将创先绿色通过标识。操作方法(Solutions) 在 WebScarab 中,你可以从顶部的下拉框中选择WSDL。WebScarab 将解析XML 文件,所以你可以选择调用的操作。然后你可以输入一个调用的参数值。在“vaule”输入1 or 1=1,点执行,会弹出一个基本身份验证框,输入用户名guest,密码guest,然后点OK,点“Execute”,即可返回所有结果。如果没有弹出,可以再WebScarab 的“Tools Credentials”中选择。你需要选中“Ask when required”。(需要先打开WSDL 文件

30、,就能在WebScarab的WebServices 中看到相应的内容了。) 仍然返回500,服务器内部出错。理论上双击 value,设置数值为1 or 1=1,点击【execute】按钮提交数据。幸运的话,你将看到多个客户的信用卡信息,完成本课程。19挑战(Challenge)总体目标(General Goals)你的任务是破坏身份验证方案,从数据库中盗取所有的信用卡信息,然后破坏这个网站。你需要利用你在其他课程中学到的技术。要破坏的主页是“webgoat_challenge_guest.jsp”页面。操作方法(Solutions) 先到localhost:8080/WebGoat/sourc

31、e?source = true看源码找到用户名和口令分别为:youaretheweakestlink和goodbye 启动Webscarab作为代理,cookie中发现user=eW91YXJldGhld2Vha2VzdGxpbms=是用户名youaretheweakestlink的Base64散列。这里尝试cookie注入,将youaretheweakestlinkor1=1装换Base64:eW91YXJldGhld2Vha2VzdGxpbmsnIG9yICcxJz0nMQ=提交之后成功获取所有信用卡信息最后一步,我们需要修改webgoat_challenge_webgoat.jsp文件的内容。我们可

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1