XSS 漏洞详解

XSS 漏洞详解

文章目录

  • XSS 漏洞详解
    • 漏洞描述
    • 漏洞原理
    • 漏洞场景
    • 漏洞评级
    • 漏洞危害
    • 漏洞验证
    • 漏洞利用
    • 防御方案
    • 典型案例

漏洞描述

XSS全名叫Cross Site Scripting(跨站脚本攻击)因为简写和css同名所以改名为XSS,该漏洞主要利用javascript可以控制html,css,浏览器的行为从而恶意利用,当开发人员未对输入的内容进行过滤或编码时,恶意用户在能向网页提交信息的地方输入构造好的js恶意代码,从而触发XSS

漏洞原理

xss是对用户浏览器进行攻击的,当攻击者在能够触发xss漏洞的地方输入构造好的恶意js代码上传到服务器,在客户机浏览器进行访问被注入xss的网页时,浏览器就会解析并执行这段恶意代码就会遭受到xss攻击

漏洞场景

XSS漏洞一般发生的地方:

  • url传递参数的地方
  • 能收集用户输入的地方

漏洞评级

漏洞等级:高危

漏洞危害

  • 恶意弹窗广告,刷流量:攻击者可以利用XSS漏洞在受害者的浏览器中显示恶意广告或弹窗,从而扰乱用户体验并可能导致流量损失
  • 重定向流量:攻击者可以利用XSS漏洞将用户重定向到恶意网站,从而窃取用户的个人信息、敏感数据或者进行其他恶意操作
  • 盗取用户的cookie信息
  • 劫持用户会话执行任意操作
  • 传播蠕虫病毒
    等…

漏洞验证

利用存储型XSS获取cms 网站后台管理员Cookie攻击者登录后台
攻击机开启http服务
在这里插入图片描述
访问cms网站在留言板进行留言并插入储存型xss注入

在这里插入图片描述
在这里插入图片描述
注入成功模拟目标机管理原进行登录
在这里插入图片描述
登陆成功访问留言管理页面
在这里插入图片描述
返回http服务查看cookie已经获取到了
在这里插入图片描述
将他写入到浏览器就可以直接登录了
document.cookie=“username=admin”
document.cookie=“userid=1”
document.cookie=“PHPSESSID=fhs6pphep0ru6b74kclkugl7s5”
在这里插入图片描述
直接访问管理员页面登录成功
在这里插入图片描述

漏洞利用

  • 反射型xss
    • 非持久性、参数型的跨站脚本,不会一直存在的,反射型xss代码在web应用参数中比如搜索型
  • 储存型xss
    • 持久性跨站脚本。持久性体现在 XSS 代码不是在某个参数(变量)中,而是写进数据库或文件等可以永久保存数据的介质中。存储型XSS 通常发生在留言板等地方,可以在留言板位置进行留言,将恶意代码写进数据库中
  • DOM型xss
    • DOM 型 XSS 是一种XSS 攻击,其中攻击的代码是由于修改受害者浏览器页面的 DOM 树而执行的。特殊的地方就是攻击代码(payload)在浏览器本地修改 DOM 树而执行,并不会将 paylod 上传到服务器,这也使得 DOM 型 XSS 比较难以检测。

防御方案

  • 输入过滤和转义:对用户输入的数据进行严格的过滤和转义,确保所有用户输入都不包含恶意脚本。可以使用HTML编码、JavaScript编码等技术来对用户输入进行转义,从而防止恶意脚本的执行。

  • 内容安全策略(CSP):CSP是一种在HTTP头部中设置的策略,可以指定浏览器只能加载特定来源的资源,从而减少XSS攻击的可能性。

  • 验证和白名单:对用户输入的数据进行验证,并只接受符合特定格式和规则的数据。可以使用白名单机制,只允许特定类型的标记和内容通过输入。

  • HttpOnly标记:在设置cookie时,使用HttpOnly标记,使得cookie只能通过HTTP协议传输,而无法通过JavaScript访问,从而减少XSS攻击对cookie的影响。

  • 安全审计和漏洞扫描:定期对Web应用程序进行安全审计和漏洞扫描,及时发现和修复潜在的XSS漏洞。

  • 教育和培训:对开发人员和网站管理员进行安全意识培训,教导他们如何编写安全的代码和如何防范XSS攻击。

综合运用这些防御方案,可以有效降低XSS攻击的风险,保护Web应用程序和用户的安全

典型案例

  • Samy蠕虫:2005年,一名黑客Samy Kamkar通过MySpace社交网络站点上的XSS漏洞,成功注入恶意脚本代码,从而创建了一个名为“Samy”的用户,并在他的个人资料中添加了恶意JavaScript代码。当其他用户访问Samy的个人资料时,他们的个人资料也会被感染,并将自己的个人资料中的恶意代码注入到其他用户的个人资料中,从而形成了一个蠕虫式攻击。

  • Stealing Cookies:攻击者可以通过注入恶意脚本代码,窃取用户的cookie信息,从而获取用户的身份验证信息,进而访问用户的账户和个人数据。

  • XSS Keylogger:攻击者可以通过注入恶意脚本代码,记录用户在输入框中输入的所有内容,包括用户名和密码等敏感信息,从而窃取用户的账户和个人数据。

  • Clickjacking:攻击者可以通过注入恶意脚本代码,将用户点击的链接覆盖在一个透明的iframe中,从而欺骗用户点击了一个看似无害的链接,实际上却是执行了恶意操作。

这些案例都展示了XSS攻击的危害性和可怕性,强调了对Web应用程序进行安全审计和漏洞扫描的重要性,以及对开发人员和网站管理员进行安全意识培训的必要性。

你可能感兴趣的:(xss,漏洞,xss,十大漏洞,渗透,web安全)