目录
题目2:Try It! Using Chrome or Firefox
题目10:Ientify Potential for DOM-Based XSS
XSS简介
XSS(Cross-Site Scripting),跨站脚本攻击,是通过在Web页面中插入可执行的代码,在用户浏览页面时代码被执行,从而达到攻击目的。
XSS主要分为三类:
- 反射型XSS
- 存储型XSS
- 基于DOM的XSS
XSS攻击通常通过页面上的输入框,搜索框等等可以输入的位置实现。例如在某个输入框中:<script>alert(1)</script>
如果网页没有做好XSS防护,那么这段JS代码就可能被执行。通过插入恶意代码,攻击者可以盗取cookies,重定向网页等等。
推荐一篇非常详细的XSS介绍:跨站脚本漏洞(XSS)基础讲解 - 简书
题目2:Try It! Using Chrome or Firefox
答案:yes
按照指示,打开一个新标签页进入和本页相同的地址,将题目中的代码分别复制到地址栏(javascript:需要手动重新打),就可以看到弹窗了。
我刚开始用Firefox不知道为什么没有弹窗,换成Chrome就有了。
题目7:Try It! Reflected XSS
点击一下UpdateCart,会发现下方将credit cart number显示出来了,那么credit cart number的输入框应该是一个攻击点。将题目里的代码语句复制到这里:
完成
题目10:Ientify Potential for DOM-Based XSS
这道题要我们找到他的test路径。上手没有头绪,随便输了个路径点提交,发现回显里有提示:
No, look at the example. Check the GoatRouter.js file. It should be pretty easy to determine.
OK,打开调试器去看代码。
里面有一句:'test/:param': 'testRoute'
那么答案就是:start.mvc#test/
还有另外一种思路。题目中说了WebGoat是用Backbone作为框架的(WebGoat uses backbone as its primary javascript library),那么我们可以去搜集资料,找这个框架下的路径是怎么构造的。
题目11:Try It! DOM-Based XSS
题目里已经有提醒让我们利用上一题中找到的测试路径。好的,那么先尝试直接把函数贴到路径后面执行一下:
可以看到没有调用函数,而是直接回显了。
那么再试一下在网页框里用<script>标签:
没有回显,说明很可能执行了,再打开控制台,发现结果已经出来了。末尾的数字就是答案。
题目13:又是这只衣架猫
既然已经说了在评论框中调用,那就先试试效果吧。
结果发现执行了,并且以后每次刷新,都会有这个弹窗。(如果你不想以后每次打开XSS题都有这个弹窗就别试。这是后话QAQ。)
因为它每次刷新都出现,我们判断这一段代码(评论)是被存储了起来。那么直接用<script>调用题目要求的函数吧。在评论框输入:
<script>webgoat.customjs.phoneHome()</script>
完成。