WEBGOAT靶场—XSS
WEBGOAT靶场—XSS

WEBGOAT靶场—XSS

2.打开两个tab页面看看cookie是否相同:

F12打开开发者工具(部分电脑是Fn+F12),输入alert(document.cookie)查看cookie发现相同,输入yes即可

7.找到容易受攻击的字段

提交使用burpsuite抓包看看提交了哪些参数

分别提交了:QTY1=1&QTY2=1&QTY3=1&QTY4=1&field1=4128%203214%200002%201999&field2=111

在网页中挨个修改为<script>alert(“XSS”)</script>测试一遍

看看哪些弹出提示框

发现第一个字段存在xss漏洞

10.查找dom型xss漏洞

根据提示源代码中存在一个开发留下的测试代码,所有先查找路由

根据提示找到路由文件,在goatapp.js根据注释发现路由文件

打开路由文件可以使用ctrl+F查找关于test的字眼,看看是否存在题目所说的test代码的路由:发现一个testRoute()函数应该就是用来给测试函数传递参数的路由文件。可以看出this.lessonController.testHandler(param)应该就是那个题目中所说开发遗留下的测试函数。

lessonController找到testHandler(param)这个函数,发现该函数,先在控制台打印”test handler”,之后向lessonContentView.showTestParam(param)函数传递参数

找到lessonContentView.showTestParam(param)这个函数看看,发现有一个JS内置函数this.$el.find(‘.lesson-content’).html(‘test:’ + param)上网搜搜这个函数是干什么的

showTestParam: function (param) { this.$el.find(‘.lesson-content’).html(‘test:’ + param); },
根据提供的代码段,这是一个 JavaScript 函数 showTestParam 的定义。该函数通过传入一个参数 param,然后将其值作为 HTML 内容插入到类为 lesson-content 的元素中
在这段代码中,需要注意以下几点:
函数名称为 showTestParam,它接受一个参数 param。
使用了 this.$el.find(‘.lesson-content’) 来选取类为 lesson-content 的元素。
将 ‘test:’ + param 作为 HTML 内容插入到选取的元素中。
这段代码看起来是用来在页面上展示传入的参数值。但是需要注意的是,直接将参数值插入到 HTML 中可能存在安全风险,因为未经过滤的参数值可能包含恶意脚本,导致 XSS(跨站脚本攻击)漏洞。因此,在实际应用中,应该对参数值进行适当的转义或过滤,以防止潜在的安全问题。

根据xss产生原因:恶意脚本注入到html文件中成为html文件的一部分,被浏览器认为是可信代码而导致浏览器执行恶意脚本

所以根据刚才lessonContentView.showTestParam(param)传递参数的一系列过程,只要我们向该函数传入一个恶意脚本,就可以就行xss攻击。

那么如何向lessonContentView.showTestParam(param)传递参数,直接找到谁最开始向这个过程传递参数就可以了。

我们最前面是在找路由文件,路由文件负责把url中的参数传递到对应的函数中。显然就是这个最开始的路由函数向内传递参数的。那么怎么向该函数传递参数呢

我们看看这个函数如何声明的,按ctrl+f直接查找该函数,发现在最开始声明路由时是将test/参数作为传递参数的格式

确定是否存在漏洞

接下俩只需要构造这样的url:http://127.0.0.1:8082/WebGoat/start.mvc#test/<script>alert(“XSS”)</script>,在进行url编码

编码后:http://127.0.0.1:8082/WebGoat/start.mvc#test/%3Cscript%3Ealert(%22XSS%22)%3C%2Fscript%3E

发现执行了注入的脚本,确定漏洞确实存在,根据题目给的格式向题目提交路由即可:

11.根据刚才找到漏洞执行代码

构造url:http://127.0.0.1:8082/WebGoat/start.mvc#test/<script>alert(webgoat.customjs.phoneHome())</script>进行url编码

http://127.0.0.1:8082/WebGoat/start.mvc#test/%3Cscript%3Ealert(webgoat.customjs.phoneHome())%3C%2Fscript%3E

发现执行了代码,点击确认后,查看控制台输出

提交随机码即可

12.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注