XSS简介与应用

01 XSS简介

XSS原理介绍

  1. 介绍
    XSS(cross site scripting)跨站脚本攻击,发生在服务器

    恶意攻击者往web页面里插入恶意script代码,当用户浏览该页面时,代码就会被执行

  2. 实现过程

    1. 攻击者将恶意代码插入到服务器
    2. 其他用户无防备的情况下访问服务器
    3. 服务器将含有恶意代码的网页响应发送给客户端
    4. 用户的客户端中执行了恶意代码
  3. 可能存在XSS的地方
    留言板,聊天室,搜索等
    如果用户的输入能在网页上显示,就很可能存在XSS
    如果在URL中提交的参数值,在页面中显示,很有可能就存在XSS
    如果在表单中提交的参数值,在页面中显示,很有可能就存在XSS如果HTTP自定义头中提交的参数,在页面中显示,很有可能就存在XSS
    可以通过burpsuite抓包,修改HTTP头插入XSS

  4. XSS的危害

    1. 盗取用户账号
    2. 盗取用户cookie
    3. 劫持用户会话,执行其他操作
    4. 进行跳转、弹窗等
    5. 传播蠕虫

XSS分类

  1. 反射型XSS
    又称非持续型XSS,往往具有一次性,常发生在输入框中
    用户输入xss脚本
    如果出现弹窗,就说明存在XSS
    常用探测方式:

    • alert 弹出框
    • confirm 确认框
    • prompt 输入框
  2. 存储型XSS
    又称持久型XSS,攻击脚本存储在目标服务器等数据库中,隐蔽性强,常常发生在留言板中
    如用户在留言板中输入
    其他用户访问留言板时就会出现弹窗并显示cookie值

  3. DOM型XSS
    DOM全称Document Object Model,使用DOM动态访问更新文档的内容、结构及样式

    攻击者的payload修改受害浏览器页面的DOM树,修改是在本地执行的,不会上传到服务器,因此DOM XSS难以检测

    服务器不会处理攻击者脚本,而是用户浏览器处理这个响应时,DOM对象就会处理XSS代码,触发XSS漏洞

02 XSS应用

XSS攻击方式

  1. 盗取cookie

    其中cookie.php为自己编写的接收cookie的代码

    
    

    通过重定向将用户的cookie发送给攻击者,随后攻击者就可以使用cookie进行下一步攻击,如登录

  2. 篡改链接



  3. 双写绕过
    alert('xss')
  4. 伪协议
    javascript:alert('xss')
    可以用在a标签中
    在旧版本ie中也可以用在img标签中
  5. 利用事件
    windows事件、form事件、keyboard事件、mouse事件、media事件
  6. 大小写绕过
    HTML中不区分大小写,而JS区分大小写
  7. 利用引号
    HTML中对引号不区分,而过滤函数有可能做了区分


  8. 使用斜杠代替空格
  9. 使用空格、tab和回车分隔开关键字
  10. 编码绕过

    atob函数执行base64解码功能
    eval函数将字符串当作程序执行
    也可以使用十六进制、unicode等编码
  11. 关注最新的HTML标签,往往没有被过滤

你可能感兴趣的:(XSS简介与应用)