WebGoat8 M17 XSS 答案、题解

时间:2024-03-26 19:50:06

目录

XSS简介

题目2:Try It! Using Chrome or Firefox

题目7:Try It! Reflected XSS

题目10:Ientify Potential for DOM-Based XSS

题目11:Try It! DOM-Based XSS

题目13:又是这只衣架猫


 

 

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的输入框应该是一个攻击点。将题目里的代码语句复制到这里:

WebGoat8 M17 XSS 答案、题解

完成

 

 

题目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,打开调试器去看代码。

WebGoat8 M17 XSS 答案、题解

里面有一句:'test/:param': 'testRoute'

 

那么答案就是:start.mvc#test/

 

还有另外一种思路。题目中说了WebGoat是用Backbone作为框架的(WebGoat uses backbone as its primary javascript library),那么我们可以去搜集资料,找这个框架下的路径是怎么构造的。

 

 

题目11:Try It! DOM-Based XSS

题目里已经有提醒让我们利用上一题中找到的测试路径。好的,那么先尝试直接把函数贴到路径后面执行一下:

WebGoat8 M17 XSS 答案、题解

可以看到没有调用函数,而是直接回显了。

 

那么再试一下在网页框里用<script>标签:

WebGoat8 M17 XSS 答案、题解

没有回显,说明很可能执行了,再打开控制台,发现结果已经出来了。末尾的数字就是答案。

 

 

 

题目13:又是这只衣架猫

既然已经说了在评论框中调用,那就先试试效果吧。

WebGoat8 M17 XSS 答案、题解

结果发现执行了,并且以后每次刷新,都会有这个弹窗。(如果你不想以后每次打开XSS题都有这个弹窗就别试。这是后话QAQ。)

WebGoat8 M17 XSS 答案、题解

因为它每次刷新都出现,我们判断这一段代码(评论)是被存储了起来。那么直接用<script>调用题目要求的函数吧。在评论框输入:

<script>webgoat.customjs.phoneHome()</script>

 

WebGoat8 M17 XSS 答案、题解

完成。