跨站脚本攻击XSS

XSS

  • 攻击web客户端
  • 客户端脚本语言
    • 弹窗告警、广告
    • Javascript
    • 在浏览器中执行
  • XSS(cross-site scripting)
    • 通过web站点漏洞,向客户端交付恶意脚本代码,实现对客户端的攻击目的
    • 注入客户端脚本代码
    • 盗取cookie
    • 重定向

使用场景

  • 直接嵌入html:<script>alert('XSS');<script>
  • 元素标签事件:<body onload=alert('XSS')>
  • 图片标签:<img src="javascript+alert(XSS);">
  • 其它标签:<iframe>,<div>,<link>
  • DOM对象,篡改页面内容

攻击参与方

  • 攻击者
  • 被攻击者
  • 漏洞站点
  • 第三方站点

漏洞形成根源

  • 服务器对用户提交数据过滤不严
  • 提交给服务器的脚本被直接返回给其它客户端执行
  • 脚本在客户端执行恶意操作

漏洞类型

  • 存储型
  • 反射型(结合社会工程学攻击方式)
  • DOM型

漏洞Poc

  • <script>alert(‘xss’)</script>
  • <a href=””onclick=alert(‘xss’)>type</a>
  • <img src=http://1.1.1.1/a.jpg onerror=alert(‘xss’)>

exp

BEEF(Browser exploitation framework)

  • 浏览器攻击面

    • 应用普遍转移到B/S架构,浏览器成为统一客户端程序
    • 结合社会工程学方法对浏览器进行攻击
    • 攻击浏览器用户
    • 通过注入JS的脚本,利用浏览器攻击其他网站
  • 浏览器漏洞利用框架

    • 生成、交付payload
    • Ruby语言编写
    • 服务器端:管理hooked客户端
    • 客户端:运行于客户端浏览器的Js脚本(hook)
  • 攻击手段

    • 利用网站xss漏洞实现攻击
    • 诱使客户端访问含有hook的伪造站点
    • 结合中间人攻击注入hook脚本
  • 常见用途

    • 键盘记录器
    • 网络扫描
    • 浏览器信息收集
    • 绑定shell
    • 与metasploit集成

操作

  • Commands:命令模块
    • 绿色:适用,且执行结果对客户端不可见
    • 红色:表示模块不适用当前用户,有些红色模块也可正常执行
    • 橙色:模块可用,但对用户可见,比如申请执行Java,申请打开相机
    • 灰色:模块未在目标浏览器上测试过