【攻击与漏洞】-XSS跨站脚本攻击

《白帽子讲安全》吴瀚清  读书笔记

  • XSS简介
    • XSS是客户端web安全中的头号大敌,通常是指黑客通过html注入篡改网页,插入恶意JavaScript脚本,从而才用户浏览网页的时候控制用户浏览器的一种攻击
  • XSS的分类
    • 反射型XSS
    • 存储型XSS
      • 把用户输入的数据保存到服务器端,具有很强的稳定性
    • DOM Based XSS
      • 通过修改页面的DOM结点形成XSS,实际上这也是一种发射型XSS,处于历史原因单独分类,

DOM结点:在 HTML DOM 中,所有事物都是节点。我简单理解为html中的对象

  • XSS防御
    • Httponly
      • 加上httponly之后的cookie将不能被js访问到
    • 输入检查
      • 检查是否输入了特殊字符<>'/等
      • 输入检查必须放在服务器端进行检查,因为在客户端使用js进行的检查很容易被攻击者绕过,目前常用的做法是客户端和服务器端都同时检查。
    • 输出检查
      • 一般来说,除了富文本的输出外,在变量输出到HTML 中时,可以使用编码或者转移的方式来防御XSS

纯文本,只有文字,和基本的标点。富文本,可以有图,可以有各种特殊标点,分段等格式。

  • XSS Payload
    • 攻击者对浏览器植入的恶意脚本成为payload,实际上XSS payload就是javascript脚本。当攻击的功能过于复杂时,可以用远程payload,引诱用户点击访问这个远程payload,避免直接在url参数中写入大量的javascript代码
    • cookie劫持
    • 模拟GET POST请求操作用户浏览器
      • 有时候会设置httponly来防止cookie劫持,或者是设置了cookie与客户端ip绑定,在cookie劫持失效的情况下可以用这个。
    • XSS 钓鱼
      • 用XSS窃取用户密码,可以再页面上伪造一个登录框,当用户点击登录后,用户名和密码都会被传送到远程的XSS服务器上。
    • 识别用户浏览器
      • 通过js脚本读取浏览器的userAgent对象,可以获取到操作系统版本,浏览器版本等等信息,了解到这些信息之后,攻击者便可以实施一次精准的内存攻击。
    • 识别用户安装的软件
    • XSS History Hack
      • 发现用户曾经访问过的网站
    • 获取用户真实ip
      • 一般情况下用户的真实ip都会隐藏在NAT后面,但是js本身并没有提供本地ip的能力,但是如果 客户端安装了java环境,那么XSS就可以通过调用接口来获取ip地址
  • XSS攻击平台
    • Attack-API
    • BeEF
    • XSS-Proxy
  • XSS 蠕虫

蠕虫是无需计算机用户干预即可运行的独立程序,它通过不停地获得网络中存在漏洞的计算机上的部分或全部控制权来进行传播。蠕虫具有传染性、隐蔽性、破坏性等普通病毒的一些共性,但它又是一类特殊的病毒,主要表现在:蠕虫是一种自治的代理程

    • Samy Worm
    • 百度空间蠕虫
  • XSS构造技巧
    • 利用字符编码
    • 绕过长度限制
    • 利用<base>标签

猜你喜欢

转载自blog.csdn.net/qq_39328436/article/details/114240561