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

1. 原理

XSS漏洞产生原理

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

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

网络安全笔记 -- XSS跨站(原理、分类、WAF绕过、安全修复)_第1张图片

XSS漏洞危害影响

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



2. 分类

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

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

2.1 反射型XSS(GET)

测试平台:pikachu

  1. 启动靶场
    网络安全笔记 -- XSS跨站(原理、分类、WAF绕过、安全修复)_第2张图片
  2. 随机输入一个名字,查看结果,因此考虑输入一段脚本,看是否能被执行

网络安全笔记 -- XSS跨站(原理、分类、WAF绕过、安全修复)_第3张图片

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

网络安全笔记 -- XSS跨站(原理、分类、WAF绕过、安全修复)_第4张图片网络安全笔记 -- XSS跨站(原理、分类、WAF绕过、安全修复)_第5张图片

  1. 输入一段脚本,提交,页面脚本执行

网络安全笔记 -- XSS跨站(原理、分类、WAF绕过、安全修复)_第6张图片


2.2 存储型XSS

测试平台:pikachu

  1. 启动靶场
    网络安全笔记 -- XSS跨站(原理、分类、WAF绕过、安全修复)_第7张图片
  2. 在留言板中随便写入一些数据,观察

网络安全笔记 -- XSS跨站(原理、分类、WAF绕过、安全修复)_第8张图片

  1. 在留言板中输入:,脚本执行

网络安全笔记 -- XSS跨站(原理、分类、WAF绕过、安全修复)_第9张图片

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

2.2 DOM型XSS

测试平台:pikachu

  1. 启动靶场
    网络安全笔记 -- XSS跨站(原理、分类、WAF绕过、安全修复)_第10张图片
  2. 随机输入值,提交后查看页面,点击“what do you see?”,页面会根据输入的值跳转到相应的页面
    网络安全笔记 -- XSS跨站(原理、分类、WAF绕过、安全修复)_第11张图片
    网络安全笔记 -- XSS跨站(原理、分类、WAF绕过、安全修复)_第12张图片
  3. 输入: #’ οnclick=“alert(2)”>

网络安全笔记 -- XSS跨站(原理、分类、WAF绕过、安全修复)_第13张图片
4. 查看源代码如下:

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


"<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= src="http://xxx.com"#12@#1634%>

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

特殊符号干扰

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

提交方式更改

get方式改成post方式

加密解密算法

参考文章

Java%0a%0d%09script: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

你可能感兴趣的:(网络安全,web安全,xss,安全)