记录一次有意思的XSS (2)

记录一次有意思的XSS

 

发现self['doc'+'ument']就是document

我们构造地址:******/index/appInfo?appId=784&url=xss';self['doc'%2b'ument'].body.innerHTML=111//

记录一次有意思的XSS

 

其实写到这里,我们回顾发现我们现在已经可以做很多我们想做的事情了,我们可以通过js修改一个 界面内容,通过js实现一个任意跳转等。

  但是我们本能的觉得xss必须得弹个框框,这是我们普遍对xss的认知,现在我就只想弹窗?我该怎么做?

  在过滤了括号,一些弹窗的函数后,我发现我已经很难让他弹窗了。。我思考了很久都无法做到弹窗。。后来请教大佬得到了一种弹窗的方法,为我xss学习又一次打开新的世界:

  思路1:通过函数劫持弹窗 :

  查看源码我们发现在下面一行调用了jq的attr属性操作函数,这里我们能否进行函数的劫持?对attr函数进行劫持,劫持他变成alert呢?

  这样不就能弹窗了?

  因为alert被过滤了,所以我们要用self['al'+'ert']替代绕过:

  我们尝试构造这样一个地址:******/index/appInfo?appId=784&url=xss';jQuery['attr']=this['al'%2b'ert']//

    

记录一次有意思的XSS

 

我们查看 源代码:

  

 

    

记录一次有意思的XSS

 

 

下面是我对函数劫持的分析:

  

记录一次有意思的XSS

 

 

  弹窗思路2:

  使用#xss payload的方法  

  使用window.location.hash然后外部定位就不会造成任何拦截了 :

  因为过滤很多关键字,我们构造如下地址:

  ******/index/appInfo?appId=784&url=xss%27;location=this.location.hash.slice%601%60;//#javascript:alert('xss')

  

记录一次有意思的XSS

 

就可以造成弹窗,这里过滤了()我尝试%28%29一样是空白页,尝试把括号改成``还是空白页,当我编码``为%60的时候发现没有拦截,程序自动decode了。故导致xss:

记录一次有意思的XSS

 

 

先写到这里,这次xss的绕过让我收获了很多,为我以后xss研究打开了新的大门,总结 了一些宝贵的经验,从前辈师傅那里学到了更深层的东西

比如说想玩好xss,一定要学好javascript基础!马上要过年了,特此 写这篇文章 留念下。新的一年有更多的困难和挑战等着我,更多的基础知识需要掌握!加油!

 

 

  

 

 

  

 

 

 

 

  

 

 

  

 

  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfpws.html