渗透测试【一】:渗透测试常见问题

news2024/11/27 10:41:19

渗透测试【一】:渗透测试常见问题

  • 1、问题清单
  • 2、问题现象及解决办法
    • 2.1、点击劫持
    • 2.2、用户枚举
    • 2.3、Springboot未授权访问
    • 2.4、Swagger未授权访问
    • 2.5、Host头注入
    • 2.6、任意文件上传
    • 2.7、敏感路径泄露
    • 2.8、跨域资源共享
    • 2.9、Spring Cloud Gateway RCE
    • 2.10、Content-Security-Policy 头缺失漏洞
    • 2.11、内网IP信息泄露
    • 2.12、Nacos身份认证绕过(QVD-2023-6271)漏洞
    • 2.13、Nacos未授权(CVE-2021-29441)漏洞

1、问题清单

渗透测试碰到的问题清单汇总

序号漏洞名称危险等级
1点击劫持低危
2用户枚举低危
3Springboot未授权访问高危
4Swagger未授权访问中危
5Host头注入中危
6任意文件上传高危
7敏感路径泄露低危
8跨域资源共享中危
9Spring Cloud Gateway RCE高危
10Content-Security-Policy 头缺失漏洞中危
11内网IP信息泄露低危
12Nacos身份认证绕过漏洞高危
13Nacos未授权-cve-2021-29441漏洞高危

2、问题现象及解决办法

2.1、点击劫持

  • 现象:通过点击劫持payload进行检测,看是否可以在页面上覆盖标签。
    • 漏洞URL:http://xxx.xxx.xxx.xxx:8080/login
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="utf-8">
      <title>劫持测试</title>
      </head>
      <body>
      	<iframe src="http://xxx.xxx.xxx.xxx:8080/login" width="500" height="500" frameborder="10" ></iframe>
      </body>
      </html>
      
  • 漏洞危害:攻击者利用该漏洞精心构造web页面引诱客户端增删改查自己的系统信息,点击劫持技术如果结合其他漏洞进行攻击,将突破某些安全措施,实现更大范围的攻击。
    • 安全建议:
      • 1、添加X-Frame-Options机制或使用FrameBusting代码。
  • 处理:
    • 修改nginx配置文件,在http部分添加【add_header X-Frame-Options sameorigin always;】

2.2、用户枚举

  • 现象:攻击者可以通过Burp爆破模块或者web弱口令爆破脚本实施爆破,从而得出用户名密码,完成系统登陆。
    • 漏洞URL:http://xxx.xxx.xxx.xxx:8080/test/auth/login
      • 1、提示用户名存在,密码错误
      • 2、提示用户名不存在
  • 漏洞危害:
    攻击者可以通过尝试登陆网页回复信息判断用户名/账户是否存在,如果网页回复信息如下:
    • • 客户端请求:输入“有效的用户名/错误的密码”-“服务器回答:“密码不正确”
    • • 客户端请求:输入“错误的用户名/错误的密码”-“服务器回答:“用户名不存在”
      通过上述答复,攻击者就能知道第一次请求的是一个有效的用户名,利用该漏洞枚举有效用户列表,通过暴力破解、社工等方式对有效用户进行攻击。
    • 安全建议:在系统登录认证失败时,服务器回复内容统一使用“用户名或密码错误”,而不是直接返回“用户不存在”,“密码错误”等信息。
  • 处理:
    • 统一返回用户名或密码错误

2.3、Springboot未授权访问

  • 现象:攻击者可以通过Springboot未授权界面获取敏感信息从而进行渗透,特别是heapdump文件,下载以后利用解密工具可获取数据库账户密码等敏感信息。
    • 漏洞URL:http://xxx.xxx.xxx.xxx:8080/test/actuator/
  • 漏洞危害:可以获取敏感信息进行深入渗透。
    • 安全建议:建议对该页面进行访问权限设置。
  • 处理:
    • 网关中关闭未授权的url

2.4、Swagger未授权访问

  • 现象:攻击者可以通过Swagger未授权访问页面获取敏感信息从而深入渗透。
    • 漏洞URL:http://xxx.xxx.xxx.xxx:8080/test/v2/api-docs
    • 利用Springboot插件进行扫描,成功获取Springboot未授权页面URL
  • 漏洞危害:可以获取敏感信息进行深入渗透。
    • 安全建议:建议对该页面进行访问权限设置。
  • 处理:
    • 网关中关闭未授权的url

2.5、Host头注入

  • 现象:攻击者通过伪造HTTP请求的Host头信息,来欺骗服务器,让服务器误以为请求来自攻击者指定的合法网站,从而达到攻击的目的。

    • 漏洞URL:http://xxx.xxx.xxx.xxx:8080/test/auth/login
      • 存在Host头注入漏洞(通过修改host头为X.X.X.X,仍然正常回显)
      • 在这里插入图片描述
  • 漏洞危害:攻击者通过伪造HTTP请求的Host头信息,来欺骗服务器,让服务器误以为请求来自攻击者指定的合法网站,从而达到攻击的目的。。

    • 安全建议:
      1、更新注入检查规则
      需要对网站服务器进行漏洞检测,及时更新注入检查规则。可以使用安全扫描工具对网站的防护技术进行评估,在发现风险之后及时补全,并对Web应用程序代码进行深入分析。平时需要及时关注最新的漏洞信息,将反黑客技术应用到实际工作中。
      2、禁止空主机头请求
      检测到攻击者用这种方式开始攻击您的服务器,处理的方法之一是在 Web 服务器级别拒绝所有空主机名请求。当处理空主机头的请求时,Web 服务器就可以完成了根据请求内容进行针对性验证。
      3、采用反向代理
      采用具有 Web 特征的反向代理,这种方法能够限制入侵者使用受感染的 HTTP 包伪造主机名连接到前端Web服务。反向代理可以识别非正常HTTP流量,并将其纠正为正常HTTP流量。
      4、集中化实行访问控制
      使用集中化访问控制造成的巨大的风险是不太可能避免的。使用集中化客户端访问控制方案显然可以大大减少 Web 服务器要像递归扫描,缓存或服务器负载平衡器等组件 proxy(代理服务器),这些操作通常只能在特殊的条件下完成。
      5、安装合适的安全工具和软件
      最重要的是,必须安装合适的安全工具和软件来完善安全机制,以保证服务器的稳定性和安全性,免受 host 主机头攻击的危害。安装web应用防火墙、网络防火墙、安全漏洞扫描、入侵检测等安全工具和软件,对系统进行全面的安全检测,及时发现潜在的风险。
  • 处理:nginx.conf增加如下内容

# host头注入漏洞修复 start
if ($http_Host !~* "(xxx.xxx.xxx.xx1:8080|xxx.xxx.xxx.xx2:8080)")
 {
 	return 403;
 }
 # host头注入漏洞修复 end

2.6、任意文件上传

  • 现象:攻击者可以文件上传接口,构造恶意shell完成木马文件上传,从而完成对服务器的控制。
    • 漏洞URL:http://xxx.xxx.xxx.xxx:8080/test/auth/login
  • 漏洞危害:攻击者可以文件上传接口,构造恶意shell完成木马文件上传,从而完成对服务器的控制。
    • 安全建议:
      1)服务器端将文件上传目录直接设置为不可执行。
      2)文件类型检查:建议使用白名单方式(比黑名单更可靠),并结合MIME Type、后缀检查等方式(文件类型做白名单限制)。此外对于图片的处理可以使用压缩函数或resize函数,处理图片的同时破坏其包含的HTML代码。
      3)使用随机数改写文件名和文件路径,使得用户不能轻易访问自己上传的文件。
      4)单独设置文件服务器的域名。
      5)验证文件内容,使用正则匹配恶意代码(过滤恶意代码各种绕过方式,如大小写、BASE64编码)限制上传。
      6)修复服务器可能存在的解析漏洞。
      7)严格限制可以修改服务器配置的文件上传如:.htaccess。
      8)隐藏上传文件路径。
      9)升级Web Server。
      10)及时修复Web上传代码。
      11)不能有本地文件包含漏洞。
      12)注意0x00截断攻击(PHP更新到最新版本)
  • 处理:后台校验文件类型。

2.7、敏感路径泄露

  • 现象:攻击者可以通过上传任意文件,从而获取上传根目录路径,进而进行深入渗透。
    • 漏洞URL:http://xxx.xxx.xxx.xxx:8080/test/auth/login
  • 漏洞危害:攻击者精心构造报错页面,通过详细报错信息提取敏感数据包内容,从而有针对性的进行利用。例如报错页面泄露系统信息,中间件版本为攻击者提供更多的攻击途径和方法,攻击者利用报错页面泄露的敏感文件物理路径,执行文件包含、读取任意文件等。
    • 安全建议:
      1、编码时增加异常处理模块。
      2、错误及异常的统一收集并处理,禁止直接抛出详细报错信息。
      举例:关闭PHP页面中的错误提示:
      如果有修改php.ini的权限,则在php.ini中找到display_errors
      设置display_errors=On开启PHP错误提示
      设置display_errors=Off关闭PHP错误提示
      如果没有修改php.ini的权限,可以在php页面中增加如下代码
      //关闭PHP错误提示
      ini_set(“display_errors”, “Off”);
      //开启PHP错误提示
      ini_set(“display_errors”, “On”);
      3、报错页面隐藏服务器、中间件指纹信息。
  • 处理:后台返回信息隐藏敏感路径相关信息

2.8、跨域资源共享

  • 现象:目标存在CORS跨资源共享漏洞,对方管理员在没有退出自己所管理的网站的情况下,点击恶意攻击者已经构造好的恶意网站,攻击者可以修改Origin字段为任意指定的值,实现绕过浏览器同源策略的限制,基于CORS漏洞发起恶意请求,实现对目标资源的恶意跨域访问,并读取服务器的响应结果,从而造成服务器的信息泄露

    • 漏洞URL:http://xxx.xxx.xxx.xxx:8080/test/auth/login
    • 在这里插入图片描述
  • 漏洞危害:目标存在CORS跨资源共享漏洞,对方管理员在没有退出自己所管理的网站的情况下,点击恶意攻击者已经构造好的恶意网站,攻击者可以修改Origin字段为任意指定的值,实现绕过浏览器同源策略的限制,基于CORS漏洞发起恶意请求,实现对目标资源的恶意跨域访问,并读取服务器的响应结果,从而造成服务器的信息泄露。

    • 安全建议:
      1、正确配置跨域请求,如果Web资源包含敏感信息,则应在Access-Control-Allow-Origin标头中正确指定来源。
      2、只允许信任的网站。
      3、避免将null列入白名单,避免使用标题Access-Control-Allow-Origin: null。
  • 处理:nginx.conf增加如下内容

# cors 跨域漏洞修复 start
set $allow_cors 0;
if ($http_origin)
{
	set $allow_cors 1;
}
if ($http_origin !~* "(xxx.xxx.xxx.xx1|xxx.xxx.xxx.xx2)")
{
  set $allow_cors "${allow_cors}1";
}
if ($allow_cors = "11"){
  return 403;
}
# cors 跨域漏洞修复 end

2.9、Spring Cloud Gateway RCE

  • 现象:Spring Cloud Gateway是Spring中的一个API网关。其3.1.0及3.0.6版本(包含)以前存在一处SpEL表达式注入漏洞,当攻击者可以访问Actuator API的情况下,将可以利用该漏洞执行任意命令。

    • 漏洞URL:http://xxx.xxx.xxx.xxx:8080/test/actuator/gateway/routes
  • 漏洞危害:Spring Cloud Gateway是Spring中的一个API网关。其3.1.0及3.0.6版本(包含)以前存在一处SpEL表达式注入漏洞,当攻击者可以访问Actuator API的情况下,将可以利用该漏洞执行任意命令。

    • 安全建议:
      1、更新升级Spring Cloud Gateway版本
      2、在不考虑影响业务的情况下禁用actuator接口
      management.endpoint.gateway.enable=false
      
  • 处理:网关关闭actuator接口

2.10、Content-Security-Policy 头缺失漏洞

  • 现象:缺少Content-Security-Policy头会增加网站遭受XSS攻击、数据泄露、点击劫持和恶意内容加载等安全风险的可能性。使用该头可以帮助保护网站免受这些攻击和风险。
    • 漏洞URL:http://xxx.xxx.xxx.xxx:8080/test/auth/login
  • 漏洞危害:缺少Content-Security-Policy头会增加网站遭受XSS攻击、数据泄露、点击劫持和恶意内容加载等安全风险的可能性。使用该头可以帮助保护网站免受这些攻击和风险。
  • 安全建议:
    1、第一种:修改 nginx 配置文件
    在nginx.conf 配置文件中,增加如下配置内容:
    add_header Content-Security-Policy "default-src 'self' localhost:8080 'unsafe-inline' 'unsafe-eval' blob: data: ;";
    

2、第二种:通过网页的meta标签
<meta http-equiv=“Content-Security-Policy” content=“style-src ‘self’ ‘unsafe-inline’;script-src ‘self’ ‘unsafe-inline’ ‘unsafe-eval’ https://webapi.amap.com https://restapi.amap.com https://vdata.amap.com https://appx/web-view.min.js;worker-src blob:”>
该指令说明:允许自身css、js和高德地图api、地图数据。
CSP 指令说明:
default-src : 定义针对所有类型(js/image/css/font/ajax/iframe/多媒体等)资源的默认加载策略,如果某类型资源没有单独定义策略,就使用默认的。
script-src : 定义针对 JavaScript 的加载策略。
style-src : 定义针对样式的加载策略。
worker-src:worker脚本。
img-src : 定义针对图片的加载策略。
font-src : 定义针对字体的加载策略。
media-src : 定义针对多媒体的加载策略,例如:音频标签<audio>和视频标签<video>。
object-src : 定义针对插件的加载策略,例如:<object>、<embed>、<applet>。
child-src : 定义针对框架的加载策略,例如: <frame>,<iframe>。
connect-src : 定义针对 Ajax/WebSocket 等请求的加载策略。不允许的情况下,浏览器会模拟一个状态为400的响应。
sandbox : 定义针对 sandbox 的限制,相当于 <iframe>的sandbox属性。
report-uri : 告诉浏览器如果请求的资源不被策略允许时,往哪个地址提交日志信息。
form-action : 定义针对提交的 form 到特定来源的加载策略。
referrer : 定义针对 referrer 的加载策略。
reflected-xss : 定义针对 XSS 过滤器使用策略。

  • 处理:修改nginx配置文件,在http部分添加【Content-Security-Policy “default-src ‘self’ localhost:8080 ‘unsafe-inline’ ‘unsafe-eval’ blob: data: ;”;】

2.11、内网IP信息泄露

  • 现象:对攻击者而言,泄露内部 IP 非常有价值,因为它显示了内部网络的 IP 地址方案。知道内部网络的 IP 地址方案,可以辅助攻击者策划出对内部网络进一步的攻击。比如:攻击者获取边界机shell权限后,利用泄露的内部IP可以刺探企业内网。
    • 漏洞URL:http://xxx.xxx.xxx.xxx:8080/test/druid/basic.json
    • 在这里插入图片描述
  • 漏洞危害:对攻击者而言,泄露内部 IP 非常有价值,因为它显示了内部网络的 IP 地址方案。知道内部网络的 IP 地址方案,可以辅助攻击者策划出对内部网络进一步的攻击。比如:攻击者获取边界机shell权限后,利用泄露的内部IP可以刺探企业内网。
    • 安全建议:
      1、关闭Web 应用程序/服务器中有问题的详细错误消息。
      2、确保内部 IP 信息未留在 HTML/JavaScript 注释中。
      3)、禁止cookie中携带内网IP 。
      4)、限制IP直接访问项目本身。
  • 处理:网关关闭druid接口

2.12、Nacos身份认证绕过(QVD-2023-6271)漏洞

  • 现象:漏洞原理为开源服务管理平台 Nacos在默认配置下未对 token.secret.key 进行修改,导致远程攻击者可以绕过密钥认证进入后台造成系统受控等后果。

  • 处理:修改配置文件application.properties

    • application.config,nacos.core.auth.plugin.nacos.token.secret.key=
    • 将默认值修改为自定义key【自定义key要求:原始密钥长度不低于32字符,推荐配置项设置为base64编码的字符串】
    • Linux上对字符串进行base64编码命令
      • echo "SecretKey_FUCK_XXXXXXXX012345678"|base64
    • 自定义key的原始密钥:
      • SecretKey_FUCK_XXXXXXXX012345678
    • Base64编码之后的字符串
      • U2VjcmV0S2V5X0ZVQ0tfWFhYWFhYWFgwMTIzNDU2NzgK
    • 修改后
      • application.config,nacos.core.auth.plugin.nacos.token.secret.key=U2VjcmV0S2V5X0ZVQ0tfWFhYWFhYWFgwMTIzNDU2NzgK
  • 特别注意

    • application.conf修改完后不要重启nacos,直接在nacos页面修改一次密码。
    • 如果未修改密码重启nacos,会导致登录户名密码错误。

2.13、Nacos未授权(CVE-2021-29441)漏洞

  • 现象:利用上述漏洞添加用户

    • http://xxx.xxx.xxx.xxx:8848/nacos/v1/auth/users?username=crow&password=crow
    • curl -XPOST -d “username=crow&password=crow” “http://xxx.xxx.xxx.xxx:8848/nacos/v1/auth/users”
  • 处理:修改配置文件application.properties

    1、 将nacos.core.auth.enabled=false改为true
    2、将nacos.core.auth.enable.userAgentAuthWhite=true 改为false
    3、nacos.core.auth.server.identity.key=自定义的值
      nacos.core.auth.server.identity.value=自定义的值
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1254739.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java多线程一

1、什么是线程 线程&#xff08;Thread&#xff09;是一条程序内部的一条执行流程。 程序中如果只有一条执行流程&#xff0c;那这个程序就是单线程的程序。 2、什么是多线程 多线程&#xff08;multithreading&#xff09;&#xff0c;是指从软件或者硬件上实现多个线程并发执…

如何快速搭建一个大模型?简单的UI实现

&#x1f525;博客主页&#xff1a;真的睡不醒 &#x1f680;系列专栏&#xff1a;深度学习环境搭建、环境配置问题解决、自然语言处理、语音信号处理、项目开发 &#x1f498;每日语录&#xff1a;相信自己&#xff0c;一路风景一路歌&#xff0c;人生之美&#xff0c;正在于…

DataGrip 2023.2.3(IDE数据库开发)

DataGrip是一款数据库集成开发环境&#xff08;IDE&#xff09;&#xff0c;用于数据库管理和开发。 DataGrip提供了许多强大的功能&#xff0c;如SQL语句编辑、数据库连接管理、数据导入和导出、数据库比较和同步等等。它支持多种数据库&#xff0c;如MySQL、PostgreSQL、Ora…

Python教程:DataFrame数据中使用resample计算月线平均值

在pandas库中&#xff0c;DataFrame可以使用resample()方法来对时间序列数据进行重采样。重采样是将原始数据按照指定的频率进行重新组织&#xff0c;以便进行更细粒度的分析或转换。下面是一个示例&#xff0c;演示如何使用resample()方法&#xff1a; # Author : 小红牛 # 微…

陶陶摘苹果、跳跃游戏

1. 陶陶摘苹果 题目描述&#xff1a; 陶陶家的院子里有一棵苹果树&#xff0c;每到秋天树上就会结出 10 个苹果。苹果成熟的时候&#xff0c;陶陶就会跑去摘苹果。陶陶有个 30 厘米高的板凳&#xff0c;当她不能直接用手摘到苹果的时候&#xff0c;就会踩到板凳上再试试。 现在…

人力资源管理后台 === 登陆+主页鉴权

目录 1. 分析登录流程 2. Vuex中用户模块的实现 3.Vue-cli代理解决跨域 4.axios封装 5.环境区分 6. 登录联调 7.主页权限验证-鉴权 1. 分析登录流程 传统思路都是登录校验通过之后&#xff0c;直接调用接口&#xff0c;获取token之后&#xff0c;跳转到主页。 vue-elemen…

概念解析 | 玻尔兹曼机

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:玻尔兹曼机。 概念解析 | 玻尔兹曼机 引言 随着人工智能技术的飞速发展,玻尔兹曼机作为一种重要的生成模型,受到了广泛的关注。 背景介绍 玻尔兹曼机(Boltzmann Machine)是一…

vs2019中出现Debug Error的原因

一般出现这种错误表示你的某个变量没有正确赋值&#xff0c;或者说本身在你的C程序中加了assert断言&#xff0c;assert的作用是先计算表达式expression,如果其值为假&#xff0c;那么它会打印一条错误信息 #include<assert.h> void assert(int expression); 例子&…

【23-24 秋学期】NNDL 作业8 卷积 导数 反向传播

习题5-2 证明宽卷积具有交换性&#xff0c; 即公式(5.13)&#xff0e; 图像X和卷积核W的宽卷积定义如下&#xff1a; 要证明&#xff1a;当图像X和卷积核W有固定长度时,他们的宽卷积具有满足交换性&#xff0c;如下&#xff1a; 设二维图像为&#xff1a;&#xff0c;也就是…

【华为OD】B\C卷真题 100%通过:找城市 多叉树实现 python源码

【华为OD】B\C卷真题 100%通过:找城市 多叉树实现 python源码 目录 题目描述&#xff1a; 示例1 示例2 解题思路&#xff1a; 代码实现&#xff1a; 题目描述&#xff1a; 一张地图上有n个城市&#xff0c;城市和城市之间有且只有一条道路相连&#xff1a;要么直接相连&…

Android设计模式--桥接模式

闻正言&#xff0c;行正道&#xff0c;左右前后皆正人 一&#xff0c;定义 将抽象部分与实现部分分离&#xff0c;使它们都可以独立地进行变化 二&#xff0c;使用场景 从模式的定义中&#xff0c;我们大致可以了解到&#xff0c;这里的桥接的作用其实就是连接抽象部分与实现…

如何提高API性能

下图给出了提高API性能的5个常用技巧 分页 当结果很大时&#xff0c;这是一种常见的优化。结果会流回客户端以提高服务响应能力。 异步日志记录 同步日志记录每次调用都会处理磁盘&#xff0c;并且会降低系统速度。异步日志记录首先将日志发送到无锁缓冲区并立即返回。日志将…

肾合胶囊 | 冬不养肾春易病,若出现了这六大表现,小心是肾虚!

冬季作为一年中最寒冷的季节&#xff0c;自然万物皆静谧闭藏&#xff0c;而肾具有潜藏、封藏、闭藏精气的特点&#xff0c;是封藏之本&#xff0c;肾的脏腑特性与冬季相通应&#xff0c;所以在冬季更应该重视养肾。 而现在正值初冬&#xff0c;正是开始养肾的最佳时间。此时培…

2018年3月26日 Go生态洞察:Go包版本管理提案分析

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

Java核心知识点整理大全16-笔记

Java核心知识点整理大全-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全2-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全3-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全4-笔记-CSDN博客 Java核心知识点整理大全5-笔记-CSDN博客 Java核心知识点整理大全6…

4/5G互操作 EPSFB讲解

今天我们来讲一下4/5G之间之间互操作&#xff0c;以及5G的EPSFB是基于什么实现的~ 目录 4/5G互操作 重选 切换 基于覆盖的切换 基于业务的切换 两个面试问题 想要加快4G切换5G的速度&#xff0c;调哪个参数怎么调高效&#xff1f; 想要减慢5G切换4G的速度调哪个参数怎…

STM32 F1 串口空闲中断 + DMA实现数据发送

DMA实现数据发送 文章目录 DMA实现数据发送前言一、DMA二、代码编写1.DMA2.USART3.main 前言 当你遇到通信数据量大的时候&#xff0c;可以使用 空闲中断 DMA 的方案来减轻 CPU 的压力。 或者 在进行stm32开发时&#xff0c;有时会遇到这种情况&#xff1a;需要在设备间进行数…

字符串原地旋转

记录一下做的练习题 字符串原地旋转&#xff1a;五 三 mat [[1,2,3],[3,4,5],[4,5,6]] tag0 total 0 for i in mat:total total i[tag]tag 1 print(total) 四 X [[12,7,3],[4,5,6],[7,8,9]] Y [[5,8,1],[6,7,3],[4,5,9]] res [[0,0,0],[0,0,0],[0,0,0]] for i in rang…

2024年天津天狮学院市场营销专业《管理学》考试大纲

2024年天津天狮学院专升本市场营销专业高职升本入学考试《管理学》考试大纲 一、考试性质 《管理学》专业课程考试是天津天狮学院市场营销专业高职升本入学考试的必考科 目之一&#xff0c;其性质是考核学生是否达到了升入本科继续学习的要求而进行的选拔性考试。《管理学》考…

STM32 默认时钟更改 +debug调试

STM32时钟 文章目录 STM32时钟前言一、修改系统时钟二、DEBUG 前言 为什么我们要改STM32的时钟呢&#xff0c;打个比方在做SPI驱动的时候&#xff0c;需要16M的时钟&#xff0c;但是stm32默认是72的分频分不出来&#xff0c;这个时候我们就要改系统时钟了&#xff0c;那么怎么…