XSS相关知识

XSS攻击

简介

在这里插入图片描述
XSS(Cross Site Scripting:跨站脚本攻击)是基于客户端的 Web 攻击,和 SQL 注入攻击一样稳居 OWASP 前三,危害极大。
相对于 SQL 注入攻击来说,XSS 攻击的对象是网站的用户,而 SQL 注入攻击的对象是网站服务器。
一般出现在网页中的评论框、留言板、搜索框等用户输入的地方。
XSS 一般是提前埋伏好漏洞陷阱,等着受害者上钩。
漏洞形成主要原因是 Web 服务端没有对脚本文件如

危害

会话劫持,获取用户 Cookie
网页挂马,利用你的浏览器挖矿。

https://www.cnblogs.com/bonelee/p/16497880.html

劫持用户 Web 行为,获取键盘记录。
网站钓鱼,模拟真实网站,获取用户名密码。
XSS DDOS,如:在 A、B、C、…站点执行访问 Z 站点的 XSS 代码。
刷广告、刷流量等

分类

反射型(非持久型)

通过 GET 方式把恶意攻击代码附加在 URL 中,发送给受害人点击后会在受害者的浏览器上执行恶意攻击代码,属于一次性攻击,而且比较容易被发现。
所以通常通过转换成短网址的方式增强攻击的迷惑性。
在这里插入图片描述

存储型(持久型)

通过可以向服务器写入数据的输入框,将恶意攻击代码永久存储在目标服务器的数据库或文件中,任何人浏览页面,服务器都会从数据库将攻击者写入的内容取出并发给前端,前端浏览器收到后就会执行恶意攻击代码,所以每一次访问就相当于一次 XSS 攻击。
在这里插入图片描述

DOM 型

主要利用客户端浏览器 JS 对请求的网页进行 DOM 渲染产生的漏洞。

攻击方法

概述

XSS 攻击者寻找具有 XSS 漏洞的网页,构造脚本(一般是 JavaScript)到 Web 页面,让受害者在不知情的情况下点击链接,即:在有 XSS 漏洞的网页上执行攻击者的 JavaScript 代码。若拿到了管理员的 Cookie,则直接控制整个网站。

Payload 满足的条件

代码位于 “< script> </ script>” 标签中

如:

代码位于 onclick 事件中,此类事件还有 onerror, onload, onfocus, onblur, onchange, onmouseover 等

如:大爷来玩呀!

代码位于超链接的 href 属性中,或者其他类似属性中

如:你相信光吗!?

举例

尝试访问 php 文件

 <?php

 @$content = $_GET['content'];
 if(isset($content)) {
     echo '你输入的内容为:' . $content;
 }
 else {
     echo '请输入 content';
 }

 ?>
 <?php
     
 @$content = $_GET['content'];
 if(isset($content)) {
     echo '你输入的内容为:<input type="text" value="'. $content . '">';
 }
 else {
     echo '请输入 content';
 }
 
 ?>

攻击要点

输入

攻击者向服务器网页输入恶意代码。

输出

服务器将代码输出到浏览器并正常执行。

防护方法

对用户输入的特殊字符进行安全过滤和转义

<>
引号
on 事件
script

不仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行
对输出到页面的数据进行相应的编码转换,如 HTML 实体编码、JS 编码等

htmlspecialchars():将特殊字符转换成实体编码

关闭浏览器自动密码填写功能,防止被钓鱼页面/表单调取账号密码
使用 WAF 拦截攻击代码
  • 25
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值