Loading

XSS

XSS是什么

XSS攻击通常是通过利用网页开发是留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上可以包括Java、VBScript、Flash或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限、私密网页内容、会话和cookie等各种内容。

XSS(Cross Site Scripting)缩写为css,但这会与层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。因此将跨站脚本攻击缩写为XSS

跨站脚本攻击(XSS),是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。

攻击者可以使用户在浏览器中执行其预定义的恶意脚本,其导致的危害可想而知,如劫持用户会话,插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器、繁殖XSS蠕虫,甚至破坏网站、修改路由器配置信息等。

主要分为三种类型:

  • 反射型

  • 存储型

  • DOM型

XSS危害

  • 盗取cookie

  • 盗取账户

  • 恶意软件下载

  • 键盘记录

反射型XSS

应用程序或API包括未经验证和未经转义的用户输入,直接作为HTML输出的一部分。一个成功的攻击可以让攻击者在受害者的浏览器中执行任意的HTML和Javascript。

特定:非持久化,必须用户点击带有特定参数的链接才能触发。 影响范围:仅执行脚本的用户。

<script>alert("xss")</script>

 

  • 诱导用户点击跳转到其他页面

<script>alert("点击此处修复");location.href="https://www.baidu.com"</script>
  • 获取cookie

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

短链接生成https://www.985.so/

</p><script>alert("xss")</script><p>

反射型xss的限制与防御

  • 危害范围相对较小

  • 多为一次点击触发一次

对陌生的链接,不要随意点开

存储型XSS

存储型XSS是指应用程序通过web请求获取不可信赖的数据,在未检验数据是否存在xss代码的情况下,便将其存入数据库。当下一次从数据库中获取该数据时程序也为对其进行过滤,页面再次执行xss代码,存储型xss可以持续攻击用户。

存储型XSS出现位置

  • 留言板

  • 评论区

  • 博客

beef-xss

http://192.168.26.146:3000/ui/authentication beef/admin

 

 

DOM型XSS

DOM模型用一个逻辑树来表示一个文档,每个分支的终点都是一个节点,每个节点都包含这对象,DOM的方法让你可以用特定方式操作这个树,用这些方法你可以改变文档的结构、样式或者内容。

DOM型XSS其实是一种特殊类型的反射型XSS,通过JS操作DOM树动态地输出数据到页面,而不依赖将数据提交给服务器端,它是基于DOM文档对象模型的一种漏洞。

<html>
    <body>
        <script>
            document.write("<script>alert(0)<\/script>");
        </script>
    </body>
</html>    
http://192.168.26.129:81/vulnerabilities/xss_d/?default=<script>alert("xss")</script>

与反射型XSS的异同点和危害

  • 同: 都是没有控制好输入,并且把JavaScript脚本输入作为输出插入到HTML页面。

  • 异: 反射型XSS是经过后端语言后,页面音乐后端输出生效。DOM XSS是经过JS对DOM树直接操作后插入到页面。

危害性: 前后端分离,不经过WAF的检测

 

posted @ 2018-05-07 14:41  KubeSec  阅读(4454)  评论(0编辑  收藏  举报