安全测试基础知识

简介: 安全测试基础知识

常见安全问题


跨站脚本攻击XSS

跨站请求伪造攻击CSRF

前端Cookies安全性

点击劫持攻击

传输过程安全问题

用户密码安全问题

SQL注入攻击

 

XSS(Cross Site Scripting)跨站脚本攻击介绍


什么是XSS

web攻击的一种,通过对网页注入可执行代码(html代码或JS代码)成功被浏览器执行


实施XSS攻击具备的条件

  1. 需要向web页面能够注入恶意代码(输入框、url)
  2. 恶意代码能够被浏览器成功执行


XSS攻击原理

用户传入的数据被当做是程序,所以会执行程序


XSS能干嘛

  • 获取页面数据:通过document即可获取指定元素的值,如获取用户名称、手机号、住址等【偷取网站任意数据包括用户资料】
  • 获取cookies:通过document.cookies可以获取网站当前的所有cookies,盗取当前登录用户的登录态,从而冒充被盗用户登录网站甚至后台管理系统【偷取用户密码和登录态】
  • 劫持前端逻辑:可以修改某个操作的反馈内容,譬如点击某个按钮本来应该只提交一个请求,但通过XSS脚本可篡改该请求地址,然后用户提交的信息发送到攻击者封装的接口;或可改变用户跳转的页面【欺骗用户,流量劫持】
  • 发送请求:攻击者可以让用户在不知情的情况下发送某个请求收集用户信息


XSS攻击方式

  • 反射型XSS:用户访问一个被攻击者篡改后的链接时,被植入的脚本会被用户浏览器执行,也称非持久型因为是一次性,仅对当次的页面访问产生影响
  • 反射型XSS场景:带有XSS脚本的链接转成的短链;【在url后跟xss脚本】,网址跳转
  • 存储型XSS:包含XSS攻击脚本的内容会被存储到服务器端,也称持久型,用户读取到内容时会自动执行脚本
  • 存储型XSS场景:其他用户查看别人发布的留言、评论,管理员发布的公告,黑客发布的博客文章;反馈功能,投诉功能,聊天记录功能


image.png


XSS攻击注入点

  • HTML节点内容:动态生成,包含用户输入的内容,从而包含XSS脚本
  • HTML属性:像img的src、输入框的value等需要用户自行输入的地方
  • JS代码:某个JS代码需要用户传值进入
  • 富文本:富文本编辑框本身保存的内容就包含html标签,用户可输入XSS脚本


潜在注入点

判断输入点是否可以成功把数据注入到页面内容,对于提交数据内容但是不输出到页面的输入点是没有必要进行Fuzzing的,因为即使可以提交攻击代码,也不会产生XSS;

Fuzzing:模拟XSS攻击,模糊测试挖漏洞最常用的一种手段,不断尝试的过程

Payload:相当于测试用例

标签属性中: 如<a href="注入位置">test</a>,       Payload:"></a><script>alert(0)</script><a  href="

标签事件中: <img href="a.jpg" onload="注入位置">,   Payload:alert(0)

防御XSS攻击

  1. 浏览器自带防御,X-XSS-Protection,主要防御反射型XSS攻击,如参数出现在HTML内容和属性
  2. 对html内容进行转义,譬如将【<>】转义成&lt; &gt; 存入数据库时即转义,或显示时转义
  3. 对html属性中的双引号和单引号【"" ''】转义成&quto; &apos;
  4. CSP1(Content SecurityPolicy)内容安全策略,用于指定哪些内容可执行

 

CSRF(Cross Site Request Forgy)跨站请求伪造


通俗易懂的理解CSRF

  1. 用户访问的网站对恶意网站发出了一些请求,且这些请求是用户不知情的情况下完成的
  2. 攻击者盗用受信任用户的身份,以他的名义向第三方网站发送恶意请求,对于服务器来说这个请求时合法的


CSRF攻击原理

image.png


CSRF是如何攻击的?又如何防御

  1. 站点B向站点A发送请求
  2. 请求带站点Acookies
  3. 不访问站点A前端
  4. referer为站点B


CSRF攻击危害

  1. 利用用户登录态
  2. 用户不知情
  3. 完成业务请求(盗取用户资金、冒充用户发帖背锅)
  4. 造成蠕虫攻击
相关文章
|
12月前
|
人工智能 自然语言处理 Java
我和我的通义灵码
本文介绍了阿里云的AI代码助手——通义灵码,从个人版和企业版两个方面详细阐述了其功能和使用方法。作者作为一名Java开发工程师,分享了自己使用通义灵码的经验,包括代码生成、智能问答等功能,以及如何通过@workspace、@terminal和#team docs等命令提高开发效率。文章还提到了企业版的特色功能,如企业知识库的配置和代码优化,展示了通义灵码如何帮助企业提高代码质量和开发效率。
|
存储 前端开发 关系型数据库
社区医疗系统平台的设计与实现
本次毕业项目我将开发一个社区医疗系统平台,来服务本社区的所有的居民。实现让居民看病不再困难,不再排队的问题,让居民感受到社区的服务很到位!本社区医疗系统平台将采用最流行的B/S结构和SSM框架做为项目的架构,使用IDEA工具进行编码,采用主流的MySql数据库存储数据。社区医疗系统主要有超级管理员、社区医生和患者三个角色。超级管理员可以对本系统中所有的数据进行操作。医生角色对患者进行接诊、添加病历等操作。患者可以在线预约和浏览社区医院的相关信息。此系统有效的减少了大量的人力投入和工作效率以及社区患者的看病效
453 0
社区医疗系统平台的设计与实现
|
应用服务中间件 nginx
nginx location匹配规则
location匹配命令 ~      #波浪线表示执行一个正则匹配,区分大小写 ~*    #表示执行一个正则匹配,不区分大小写 ^~    #^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录 =      #进行普通字符精确匹配 @     #"@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files location 匹配的优先级(与location在配置文件中的顺序无关) = 精确匹配会第一个被处理。
922 0
|
C++ Windows
玩转Windows服务系列——无COM接口Windows服务启动失败原因及解决方案
原文:玩转Windows服务系列——无COM接口Windows服务启动失败原因及解决方案 将VS创建的Windows服务项目编译生成的程序,通过命令行 “服务.exe -Service”注册为Windows服务后,就可以通过服务管理器进行管理了。
1151 0
|
5天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
16天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1315 5
|
2天前
|
监控 JavaScript Java
基于大模型技术的反欺诈知识问答系统
随着互联网与金融科技发展,网络欺诈频发,构建高效反欺诈平台成为迫切需求。本文基于Java、Vue.js、Spring Boot与MySQL技术,设计实现集欺诈识别、宣传教育、用户互动于一体的反欺诈系统,提升公众防范意识,助力企业合规与用户权益保护。
|
15天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1367 87