【BP靶场portswigger-服务端7】访问控制漏洞和权限提升-11个实验(全)

news2024/11/29 7:41:20

  

前言:

介绍: 

博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。

殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书等。

擅长:对于技术、工具、漏洞原理、黑产打击的研究。

C站缘:C站的前辈,引领我度过了一个又一个技术的瓶颈期、迷茫期。


导读:

面向读者:对于网络安全方面的学者。 

本文知识点(读者自测): 

(1)纵向权限提升、不受保护的功能、基于参数的访问控制方法、平台配置错误导致访问控制中断、横向权限提升(√)

(2)、横向到纵向权限提升、不安全的直接对象引用、、多步骤流程中的访问控制漏洞、基于引用的访问控制、基于位置的访问控制(√)


目录

一、访问控制

1、定义:

2、危害

3、垂直访问控制

4、水平访问控制

5、上下文相关的访问控制

二、破坏访问控制的示例

1、纵向权限提升

2、不受保护的功能

        实验1:不受保护的管理功能

        实验2:不受保护的管理功能,URL不可预测

3、基于参数的访问控制方法

        实验3:由请求参数控制的用户角色

        实验4:可以在用户配置文件中修改用户角色

4、平台配置错误导致访问控制中断

        实验10:可以绕过基于URL的访问控制

        实验11:可以绕过基于方法的访问控制

5、横向权限提升

        实验5:由请求参数控制的用户ID

        实验6:用户ID由请求参数控制,用户ID不可预测 

        实验7:用户ID由请求参数控制,重定向时发生数据泄漏 

6、横向到纵向权限提升

        实验8:用户ID由密码泄露的请求参数控制

7、不安全的直接对象引用

        实验9:不安全的直接对象引用

8、多步骤流程中的访问控制漏洞

        实验10:多步骤流程,其中一个步骤没有访问控制 

9、基于引用的访问控制

        实验11:基于引用的访问控制 

10、基于位置的访问控制


一、访问控制

1、定义:

1、访问控制(或授权)是对谁可以执行尝试的操作或访问他们请求的资源施加约束。在Web应用程序的上下文中,访问控制取决于身份验证和会话管理:

(1)身份验证可识别用户并确认他们的身份
(2)会话管理标识该用户正在发出哪些后续HTTP请求
(3)访问控制确定是否允许用户执行他们尝试执行的操作


2、危害

1、破坏访问控制是一种常见的安全漏洞,通常是严重的安全漏洞。访问控制的设计和管理是一个复杂的动态问题,它将业务、组织和法律的约束应用于技术实现。访问控制设计决策必须由人而不是技术来做出,并且出错的可能性很高。


2、从用户的角度来看,访问控制可分为:垂直访问控制、水平访问控制、上下文相关的访问控制


3、垂直访问控制

1、原理:垂直访问控制是限制对其他类型用户不可用的敏感功能的访问的机制。

————

2、危害:利用垂直访问控制,不同类型的用户可以访问不同的应用程序功能。如管理员可以修改或删除任何用户的帐户,而普通用户则无权执行这些操作。垂直访问控制可以是安全模型的更细粒度的实现,这些安全模型被设计用于强制执行业务策略,如职责分离和最小特权。 


4、水平访问控制

1、原理:水平访问控制是将对资源的访问限制到被特别允许访问那些资源的用户的机制。

————

2、危害:通过水平访问控制,不同的用户可以访问同一类型的资源子集。例如,银行应用程序将允许用户查看交易并从自己的帐户进行支付,但不允许任何其他用户的帐户。 
 


5、上下文相关的访问控制

1、原理:上下文相关的访问控制根据应用程序的状态或用户与应用程序的交互来限制对功能和资源的访问。

————

2、危害:上下文相关的访问控制可防止用户以错误的顺序执行操作。如零售网站可能会阻止用户在付款后修改其购物车的内容。 



二、破坏访问控制的示例

1、纵向权限提升

如果用户可以访问不允许其访问的功能,则这是垂直权限提升。如一个非管理员用户实际上可以访问一个管理页面,在那里他们可以删除用户帐户,那么这就是垂直权限提升


2、不受保护的功能

1、最基本的情况是,当应用程序不对敏感功能实施任何保护时,会出现垂直权限提升。如管理功能可能从管理员的欢迎页面链接,而不是从用户的欢迎页面链接。然而用户可能仅仅能够通过直接浏览到相关的管理URL来访问管理功能
 


2、示例:

如某个网站可能在以下URL上托管敏感功能:

https://insecure-website.com/admin

事实上,任何用户都可以访问该功能,而不仅仅是在其用户界面中具有指向该功能的链接的管理用户。在某些情况下,管理URL可能会在其他位置公开,如robots.txt文件:

https://insecure-website.com/robots.txt

即使URL没有在任何地方公开,攻击者也可以使用单词列表强行找到敏感功能的位置


涉及实验:

实验1:不受保护的管理功能


3、隐藏的接口

在某些情况下,敏感功能没有得到可靠的保护,而是通过提供一个不可预测的URL来隐藏:所谓的模糊安全。仅仅隐藏敏感功能并不能提供有效的访问控制,因为用户仍然可能以各种方式发现模糊的URL。

如在以下URL承载管理功能的应用程序:

https://insecure-website.com/administrator-panel-yb556

这可能无法被攻击者直接猜到。但应用程序仍可能将URL泄漏给用户。如URL可能在JavaScript中公开,JavaScript基于用户的角色构造用户界面:
 

<script>
var isAdmin = false;
if (isAdmin) {
	...
	var adminPanelTag = document.createElement('a');
	adminPanelTag.setAttribute('https://insecure-website.com/administrator-panel-yb556');
	adminPanelTag.innerText = 'Admin panel';
	...
}
</script>

如果用户是管理员用户,此脚本将向用户的UI添加链接。但包含URL的脚本对所有用户都可见,而不管其角色如何。 


涉及实验:

实验2:不受保护的管理功能,URL不可预测

实验1:不受保护的管理功能

信息:

本实验有一个未受保护的管理面板。

通过删除用户carlos解决实验


part1:

将/robots. txt加到URL后查看robots.txt文件

Disallow行显示了管理面板的路径


part2:

在主URL后加上/administrator-panel以加载管理面板

删除carlos完成实验

实验2:不受保护的管理功能,URL不可预测

信息:

本实验有一个未受保护的管理面板。它位于一个不可预测的位置,但该位置在应用程序中的某个地方公开。

通过访问管理面板并使用它删除用户carlos来解决实验


part1:

使用Burp Suite或Web浏览器的开发工具查看实验主页的源代码。

(Ctrl+U查看源码)注意到它包含一些JavaScript,公开了管理面板的URL

会有一个是否是admin的检测

检测成功则跳转


part2:

加载管理面板并删除carlos

 

3、基于参数的访问控制方法

1、某些应用程序在登录时确定用户的访问权限或角色,然后将此信息存储在用户可控制的位置,如隐藏字段、cookie或预设查询字符串参数。应用程序根据提交的值做出后续访问控制决策

例如:
https://insecure-website.com/login/home.jsp?admin=true
https://insecure-website.com/login/home.jsp?role=1

这种方法从根本上讲是不安全的,因为用户可以简单地修改值并获得对他们未被授权的功能(如管理功能)的访问权限
 


2、涉及实验:

实验3:由请求参数控制的用户角色

实验4:可以在用户配置文件中修改用户角色

实验3:由请求参数控制的用户角色

信息:

本实验在/admin下有一个管理面板,用于识别使用可伪造Cookie的管理员。

通过访问管理面板并使用它删除用户carlos来解决实验

已有账号:wiener:peter


part1:

浏览到/admin,发现您无法访问管理面板


part2:

在Burp代理监听(完整的登陆流程中,在HTTP历史记录中可以发现有一个admin身份的验证)

使用BP拦截并将cookie Admin=false改为Admin=true

(第二个跳转到/my-account的数据包)


改为true后关闭拦截,完成并提交登录页面

每次点击的时候都拦截请求

每一步都要修改为true


part3:

完成实验 

点击删除,然后再改为true

 

实验4:可以在用户配置文件中修改用户角色

信息:

本实验在/admin下有一个管理面板。只有角色标识为2的登录用户才能访问。

通过访问管理面板并使用它删除用户carlos来解决实验

已有账号:wiener:peter


part1:

使用提供的凭据登录并访问您的帐户页面
使用提供的功能更新与帐户关联的电子邮件地址(有一个更新接口,尝试更新其他内容)


更新邮箱,并查看数据包

查看返回的数据包发现我们只修改了这么多参数中的其一


part2:

将电子邮件提交请求发送到repeater重发

增加参数将”roleid“:2添加到请求正文的JSON中,响应中已变为2


part3:

完成实验
浏览到/admin并删除carlos

 

 

 

4、平台配置错误导致访问控制中断

1、一些应用程序通过基于用户角色限制对特定URL和HTTP方法的访问,在平台层强制执行访问控制。

如应用程序可能配置如下规则:
DENY: POST, /admin/deleteUser, managers

规则拒绝访问后URL上的方法/admin/deleteUser,适用于管理员组中的用户(在这种情况下,各种事情都可能出错,导致访问控制绕过)


2、一些应用程序框架支持各种非标准HTTP头,这些头可用于覆盖原始请求中的URL

如X-Original-URL和X-Rewrite-URL

如果网站使用严格的前端控制来限制基于URL的访问,但应用程序允许通过请求标头覆盖URL,则可能使用如下请求绕过访问控制:

POST / HTTP/1.1
X-Original-URL: /admin/deleteUser
...

3、另一种攻击可能与请求中使用的HTTP方法有关。上述前端控件根据URL和HTTP方法限制访问。某些网站在执行操作时允许使用其他HTTP请求方法。如果攻击者可以使用GET(或其他)方法对受限URL执行操作,那么他们就可以绕过在平台层实现的访问控制。 


4、涉及实验:

实验10:可以绕过基于URL的访问控制
实验11:可以绕过基于方法的访问控制

实验10:可以绕过基于URL的访问控制

信息:

此网站在/admin处有一个未经身份验证的管理面板,但前端系统已配置为阻止对该路径的外部访问。但后端应用程序构建在支持X-Original-URL标头的框架上。

要解决实验问题,访问管理面板并删除用户carlos

已有账号:wiener:peter


part1:

尝试加载/admin并观察是否被阻止

(响应非常简单,表明可能来自前端系统)


part2:

发送请求到repeater

将请求行中的URL更改为/并添加HTTP标头X-Original-URL:/invalid

注意到应用程序返回“未找到”响应(表明后端系统正在处理来自X-Original-URL头的URL)



将X-Original-URL标头的值更改为/admin,并放包

然后退回主页,现在可以访问管理页面了


part3:
要删除用户卡洛斯(可能要等很久)

添加?username=carlos设置为真实的的查询字符串,并将X-Original-URL路径更改为/admin/delete

?username=carlos
X-Original-URL:/admin/delete

(抓一个包修改,或者重发后刷新)

 实验完成

实验11:可以绕过基于方法的访问控制

信息:

本实验部分基于HTTP请求方法实现访问控制,可以通过使用凭据administrator:admin登录来熟悉管理面板(利用有缺陷的访问控制将自己提升为管理员)

已有账号:wiener/peter


part1:

使用管理员凭据登录(administrator:admin)


浏览到管理面板,提升carlos,然后将HTTP请求发送到Burp Repeater


part2:
打开一个私有/匿名浏览器窗口,然后使用非管理员凭据登录(wiener/peter)


尝试通过将非管理员用户的会话cookie复制到现有的BurpRepeater请求中来重新提升卡洛斯,并观察到响应显示为“Unauthorized”(未经授权)


将方法从POST更改为POSTX,并观察响应更改为“missing parameter”(缺少参数)


通过右键单击并选择“更改请求方法”,将请求转换为使用GET方法


part3:

将username参数更改为我们的用户名并重新发送请求(wiener)

 

 (如果没完成实验,就刷新一下页面)

 

 

 

5、横向权限提升

1、原理:当用户能够访问属于另一个用户的资源而不是他们自己的资源时,就会出现横向权限提升。如一个员工应该只能访问自己的雇佣和工资单记录,但实际上也可以访问其他员工的记录,那么这就是横向权限提升。


2、水平权限提升攻击可能使用与垂直权限提升类似的利用方法。

如用户通常可以使用如下URL访问自己的帐户页面:
https://insecure-website.com/myaccount?id=123
(如果攻击者将id参数值修改为另一个用户的值,那么攻击者就可能获得对另一个用户的帐户页面以及相关数据和函数的访问权限)

涉及实验:

实验5:由请求参数控制的用户ID 


3、在某些应用程序中,可利用参数不具有可预测的值。如应用程序可以使用全局唯一标识符(GUID)来标识用户,而不是使用递增的数字。在这里,攻击者可能无法猜测或预测其他用户的标识符。但属于其他用户的GUID可能会在引用用户的应用程序中的其他地方公开,例如用户消息或评论

————

涉及实验:

实验6:用户ID由请求参数控制,用户ID不可预测 


4、在某些情况下,应用程序会检测到用户何时不被允许访问资源,并返回到登录页的重定向。但包含重定向的响应仍可能包含属于目标用户的某些敏感数据,因此攻击仍会成功。 

————

涉及实验:

实验7:用户ID由请求参数控制,重定向时发生数据泄漏 

实验5:由请求参数控制的用户ID

信息:

本实验的用户帐户页面上存在一个横向权限提升漏洞。

要解决实验问题,获取用户carlos的API密钥并将其作为解决方案提交
已有账号:wiener:peter


part1:

使用已有账号登陆

分析HTTP历史记录中数据包,无特殊参数

再次点击My account

 分析数据包,URL在“id”参数中包含用户名


part2:

发送请求到repeater,将“id”参数更改为carlos
检索并提交卡洛斯的API密钥

 

 

 

 

实验6:用户ID由请求参数控制,用户ID不可预测 

信息:

这个实验室在用户账户页面上有一个水平的权限提升漏洞,但是用 GUID 来识别用户

已有账号:wiener:peter


part1:

找一篇 Carlos 的博文。

单击 Carlos 并观察 URL 包含他的用户 ID。记下这个 ID。

 


part2:

使用已有账号登录并访问

wiener:peter

登陆后再次点击My account,分析数据包


part3:

完成实验

将“ ID”参数更改为保存的用户 ID。检索并提交 API 密钥。

如果卡住,就刷新一下页面

 

 

实验7:用户ID由请求参数控制,重定向时发生数据泄漏 

该实验室包含一个访问控制漏洞,其中敏感信息在重定向响应的主体中泄露。

要解决该实验室的问题,获取用户 Carlos 的 API 密钥,并将其作为解决方案提交。

已有账号:wiener:peter


part1:

使用提供的凭据登录并访问您的帐户页面。

再次点击My account,分析数据包

发现通过参数名传参的参数


part2:

发送到bp的repeater

将“ id”参数更改为 Carlos

(虽然响应现在将重定向到主页,但是它有一个主体,其中包含属于 Carlos 的 API 密钥)

提交 API 密钥

 

6、横向到纵向权限提升

1、危害:一般水平权限提升攻击可以通过危害更高权限的用户而转变为垂直权限提升。如横向升级可能允许攻击者重置或捕获属于其他用户的密码。如果攻击者以管理用户为目标并危害其帐户,则他们可以获得管理访问权限,从而执行垂直权限提升。

如攻击者可能能够使用已经描述的横向权限提升的参数篡改技术获得对另一个用户帐户页的访问权限:

https://insecure-website.com/myaccount?id=456

如果目标用户是应用程序管理员,则攻击者将获得对管理帐户页的访问权限。此页可能会泄漏管理员密码或提供更改密码的方法,或者可能提供对特权功能的直接访问。


2、涉及实验:

实验8:用户ID由密码泄露的请求参数控制

实验8:用户ID由密码泄露的请求参数控制

信息:

这个实验室有一个用户账户页面,其中包含当前用户的现有密码,预先填写了一个掩码输入

要解决这个实验室,检索管理员的密码,然后用它来删除 Carlos。

已有账号:wiener:peter


part1:

使用提供的凭据登录并访问用户帐户页面。

发现页面会包含自己密码,再次点击My account,分析数据包

发现通过参数名传参的参数


part2:

发送到repeater

将 URL 中的“ id”参数更改为管理员,并找到管理员密码


part3:

登陆管理员账户,删除 Carlos

iq8szu44yky140pdvu4b

 

 

7、不安全的直接对象引用

1、不安全直接对象引用(IDOR)是访问控制漏洞的一个子类。当应用程序使用用户提供的输入直接访问对象,并且攻击者可以修改输入以获得未经授权的访问时,就会出现IDOR。它因出现在OWASP 2007 Top Ten中而流行,尽管它只是许多可能导致绕过访问控制的实现错误中的一个例子


2、涉及实验:
实验9:不安全的直接对象引用

实验9:不安全的直接对象引用

信息:

这个实验室将用户聊天记录直接存储在服务器的文件系统中,并使用静态 URL 检索它们。

找到用户 Carlos 的密码,登陆他们的账户,解决实验室


part1:

选择 Live chat 选项卡。发送一条消息,然后选择 View transcript。

 再次点击

分析HTTP历史记录

检查 URL 并观察到文本是分配给文件名的文本文件,其中包含一个递增的数字。


 part2:

将文件名更改为1.txt 并查看文本

注意聊天记录中的密码。


part3:

返回到主实验室页面,并使用被盗凭证登录。

carlos
jsj56afvshbm5ozfl4qg

 

8、多步骤流程中的访问控制漏洞

1、许多网站通过一系列步骤实现重要功能。当需要捕获各种输入或选项时,或者当用户需要在执行操作之前查看和确认细节时,通常会执行此操作。

如更新用户详细信息的管理功能可能涉及以下步骤:
1、加载包含特定用户详细信息的表单。
2、提交更改
3、查看更改并确认。 

2、有时网站会对其中一些步骤实施严格的访问控制,但忽略其他步骤。如假设访问控制已正确应用于第一步和第二步,但未应用于第三步。实际上,网站假设用户只有在他们已经完成了被适当控制的第一步骤的情况下才将到达步骤3。在这里,攻击者可以跳过前两个步骤,直接提交包含所需参数的第三个步骤的请求,从而获得对函数的未授权访问。
 


3、涉及实验:

实验10:多步骤流程,其中一个步骤没有访问控制 

实验10:多步骤流程,其中一个步骤没有访问控制 

信息:

这个实验室有一个管理面板,它有一个有缺陷的改变用户角色的多步骤过程(可以通过使用凭据administrator: admin 登录来熟悉管理面板)

要解决实验室问题,使用凭据 wiener: peter 登录,并利用存在缺陷的访问控制来提升自己成为管理员


part:

使用管理凭据登录

浏览到管理面板,提升carlos,并将确认 HTTP 请求发送到bp的repeater

流程一:

流程二:


part2: 

打开一个私有/匿名浏览器窗口,并使用非管理员凭证登录。

 获取非管理员cookie


part3:

将非管理员用户的会话 cookie 复制到现有的转发请求中,将用户名更改为已有的用户名,然后重放

流程一:(会有鉴权)

提示未经授权

流程二:(提权成功)

302跳转和原始数据一致

 

9、基于引用的访问控制

1、原理:某些网站基于访问控制Referer HTTP请求中提交的标头。该Referer浏览器通常会在请求中添加一个标头,以指示发起请求的页面。


2、示例:如假设某个应用程序在主管理页上强制实施访问控制/admin,但对于子页面,如/admin/deleteUser用户只检查了Referer标题。如果Referer标头包含主/admin URL,则允许该请求。


3、利用:在这种情况下,由于Referer头可以完全由攻击者控制,他们可以伪造对敏感子页的直接请求,提供所需的Referer头,从而获得未经授权的访问


4、涉及实验:

实验11:基于引用的访问控制 

实验11:基于引用的访问控制 

信息:

这个实验根据 Referer 头控制对某些管理功能的访问(可以通过使用凭据administrator: admin 登录来熟悉管理面板)

要解决实验室问题,使用凭据 wiener: peter 登录,并利用存在缺陷的访问控制来提升自己成为管理员


part1:

使用管理凭据登录

浏览到管理面板,提升 Carlos

然后将 HTTP 请求发送到BP的repeater


part2: 

打开一个私有/匿名浏览器窗口,并使用非管理员凭证登录

wiener: peter

在/admin-role?Username = carlos & action = update请求中,如果缺少 Referer 头,请求被视为未授权

将非管理员用户的会话 cookie 复制到现有的 Burp Repeater 请求中,将用户名更改为已有的,然后重放

 和原有数据一样进行了跳转

 

10、基于位置的访问控制

1、一些网站基于用户的地理位置对资源实施访问控制。如这可以应用于州立法或业务限制适用的银行应用或媒体服务。这些访问控制通常可以通过使用Web代理、VPN或操纵客户端地理定位机制来规避。 


网络安全三年之约

First year 

掌握各种原理、不断打新的靶场

目标:edusrc、cnvd 

主页 | 教育漏洞报告平台 (sjtu.edu.cn)https://src.sjtu.edu.cn/https://www.cnvd.org.cnhttps://www.cnvd.org.cn/


second year 

不断学习、提升技术运用技巧,研究各种新平台

开始建立自己的渗透体系

目标:众测平台、企业src应急响应中心 

众测平台URL
漏洞盒子漏洞盒子 | 互联网安全测试众测平台
火线安全平台火线安全平台
漏洞银行BUGBANK 官方网站 | 领先的网络安全漏洞发现品牌 | 开放安全的提出者与倡导者 | 创新的漏洞发现平台
360漏洞众包响应平台360漏洞云漏洞众包响应平台
补天平台(奇安信)补天 - 企业和白帽子共赢的漏洞响应平台,帮助企业建立SRC
春秋云测首页
雷神众测(可信众测,安恒)雷神众测 - BountyTeam
云众可信(启明星辰)云众可信 - 互联网安全服务引领者
ALLSECALLSEC
360众测360众测平台
看雪众测(物联网)https://ce.kanxue.com/
CNVD众测平台网络安全众测平台
工控互联网安全测试平台CNCERT工业互联网安全测试平台
慢雾(区块链)Submit Bug Bounty - SlowMist Zone - Blockchain Ecosystem Security Zone
平安汇聚http://isrc.pingan.com/homePage/index

互联网大厂URL
阿里https://asrc.alibaba.com/#/
腾讯https://security.tencent.com/
百度https://bsrc.baidu.com/v2/#/home
美团https://security.meituan.com/#/home
360https://security.360.cn/
网易https://aq.163.com/
字节跳动https://security.bytedance.com/
京东https://security.jd.com/#/
新浪http://sec.sina.com.cn/
微博https://wsrc.weibo.com/
搜狗http://sec.sogou.com/
金山办公https://security.wps.cn/
有赞https://src.youzan.com/


Third Year 

学习最新的知识,建全自己的渗透体系

目标:参与护网(每一个男孩子心中的梦想) 

时间:一般5月面试,6/7月开始(持续2-3周)

分类:国家级护网、省级护网、市级护网、重大节日护网(如:建党、冬奥等)

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

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

相关文章

【手写 Vue2.x 源码】第十五篇 - 生成 ast 语法树 - 构造树形结构

一&#xff0c;前言 上篇&#xff0c;主要介绍了生成 ast 语法树 - 模板解析部分 使用正则对 html 模板进行解析和处理&#xff0c;匹配到模板中的标签和属性 本篇&#xff0c;生成 ast 语法树 - 构造树形结构 二&#xff0c;构建树形结构 1&#xff0c;需要描述什么 前面…

文本相似度

传统方法 基于TF-IDF、BM25、Jaccord、SimHash、LDA等算法抽取两个文本的词汇、主题等层面的特征&#xff0c;然后使用机器学习模型&#xff08;LR, xgboost&#xff09;训练分类模型优点&#xff1a;可解释性较好缺点&#xff1a;依赖人工寻找特征&#xff0c;泛化能力一般&a…

linux有用技巧:使用ntfs-3g挂载ntfs设备

1.几种文件系统的比较 (1)在linux系统中支持以下文件系统&#xff1a; Ext2 第二扩展文件系统&#xff08;简称 ext2&#xff09;很多年前就已经成为 GNU/Linux 默认的文件系统了。ext2 取代了扩展文件系统(这是 “第二代” 的前身)。它纠正了它前身的一些错误并突破了…

【工具篇】41 # 常用可视化工具集整理(完结)

说明 【跟月影学可视化】学习笔记。 可视化场景主体需求 主体需求示例绘制基本图形根据数据绘制一些二维、三维的几何图形&#xff0c;它们不一定是完整的图表&#xff0c;通常是具有灵活性和视觉冲击力的小图形&#xff0c;例如粒子效果绘制基础图表通常是指绘制常见的饼图…

让开发人员偷懒的正则表达式

正则表达式是一种基于特殊模式符号系统的文本处理系统。简而言之&#xff0c;它为程序员提供了轻松处理和验证字符串的能力。它代表了DRY&#xff08;Dont Repeat Yourself&#xff09;原则的实现&#xff0c;在几乎所有支持的语言中&#xff0c;正则表达式模式根本不会改变形式…

【信管7.2】质量保证与质量控制

质量保证与质量控制项目质量管理的两个核心过程就是实施质量保证和控制质量。关于它们两个的区别我们在上一课已经讲了&#xff0c;实施质量保证其实保证的是过程&#xff0c;就是我们的开发过程是不是遵循了质量计划&#xff0c;也就是说&#xff0c;这是保证过程有质量的一个…

视频录制软件有哪些?4款录制视频软件,免费下载

对于不了解录屏的用户&#xff0c;肯定会有这些视频是如何制作出来的疑惑&#xff1f;其实录制视频一件很容易的事情&#xff0c;只需要找到一个可以在录视频的软件就可以了。哪有什么录制视频软件可以录制的呢&#xff1f;下面小编给大家分享4款就可以录制视频的软件&#xff…

ORB-SLAM3算法和代码学习—跟踪恒速运动模型TrackWithMotionModel()

0总述 跟踪运动模型核心思想&#xff1a;假设在极短时间内&#xff0c;相机的运动相同。设相邻时刻的三帧图像分别为k-2帧&#xff0c;k-1帧&#xff0c;k帧&#xff0c;则认为k-2帧到k-1帧相机的运动T_delta1和k-1帧到k帧相机的运动T_delta2相等&#xff0c;如下图所示。当相…

K8S概述及用途

K8S概述 1.K8S说明 K8S(Kubernetes) 是一个可移植的、可扩展的开源平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。 Kubernetes 这个名字源…

海量数据存储面临的问题

海量数据存储面临的问题海量数据存储面临的问题成本高性能低可扩展性差如何实现分布式文件存储如何支撑高效率的计算分析如何解决海量数据存储的问题如何解决海量数据文件查询便捷问题如何解决大文件传输效率慢的问题如何解决硬件故障数据丢失问题如何解决用户查询视角统一规整…

pyhon把程序打包为whl

首先需要一个库&#xff1a;setuptools如果是conda环境的话&#xff0c;这个包是自带的&#xff0c;不需要另外安装。首先把需要打包的py文件放在一个文件夹内&#xff08;我的文件夹名为coordTrans&#xff0c;记住这个名字&#xff0c;后面要用&#xff09;。同时&#xff0c…

dll修复工具下载,dll修复工具注意事项

Dll文件的缺失相信很多人都遇见过吧&#xff0c;只要缺失了一个这样的dll文件&#xff0c;我们的游戏或者软件程序就启动不了了&#xff0c;所以我们就需要去修复它&#xff0c;目前修复有几种方法&#xff0c;最简单的&#xff0c;最适合电脑小白的&#xff0c;那就是dll修复工…

Vue3——第四章(响应式基础:reactive、ref)

一、用reactive()声明响应式状态 我们可以使用 reactive() 函数创建一个响应式对象或数组&#xff1a; 响应式对象其实是 JavaScript Proxy&#xff0c;其行为表现与一般对象相似。不同之处在于 Vue 能够跟踪对响应式对象属性的访问与更改操作。 要在组件模板中使用响应式状…

java后端第六阶段:SpringMVC

1、Spring IoC&#xff08;Inversion of Controller&#xff09;控制反转 使用对象时&#xff0c;由主动new产生对象转换为由外部提供对象&#xff0c;此过程中对象中创建控制权由程序转移到外部&#xff0c;此思想称为控制反转 Spring技术对IoC思想进行了实现 Spring提供了一…

第四十九讲:神州路由器IPv6 OSPFv3和RIPng路由的配置

神州路由器支持IPv6的内部网关路由协议常用的有OPSFv3和RIPng。 实验拓扑图如下所示 配置要求&#xff1a;在两台路由器上启用IPv6 routing&#xff0c; 在接口上配子ipv6协议后&#xff0c;通过配置RIPng和OSPFv3相关命令&#xff0c;观察学习到的路由。 配置步骤&#xff1…

产品试用记录

某产品试用记录 还可以选屏哦

【PWA学习】3. 让你的 WebApp 离线可用

引言 PWA 其中一个令人着迷的能力就是离线(offline)可用 即使在离线状态下&#xff0c;依然可以访问的 PWA离线只是它的一种功能表现而已&#xff0c;具体说来&#xff0c;它可以&#xff1a; 让我们的Web App在无网(offline)情况下可以访问&#xff0c;甚至使用部分功能&#…

Redis哨兵模式搭建

以下配置机器部署ip为 a、b、c&#xff0c;其中a为master节点 需提前创建 /app/user/oms/redis/data 目录 1.1上传 redis-5.0.5.zip 到对应目录&#xff0c;解压 unzip redis-5.0.5.zip # 生成 redis-5.0.5 目录 1.2 修改配置文件 maxclients 10000 #20000 &#xff0…

接口测试实战| GET/POST 请求区别详解

在日常的工作当中&#xff0c;HTTP 请求中使用最多的就是 GET 和 POST 这两种请求方式。深度掌握这两种请求方式的原理以及异同之处&#xff0c;也是之后做接口测试一个重要基础。GET、POST 的区别总结请求行的 method 不同&#xff1b;POST 可以附加 div&#xff0c;可以支持 …

概率论【离散型二维变量与连续性二维变量(下)】--猴博士爱讲课

6.连续型二维变量&#xff08;下&#xff09; 1/7 求边缘分布函数 边缘概率密度 边缘概率密度 2/7 求边缘密度函数 边缘概率密度 3/7 判断连续型二维变量的独立性 F(x,y) Fx(X) * Fy(Y)那么X、Y互相独立 f(x,y) fx(X) * fy(Y)那么X、Y互相独立 这种题目带入验证就可以了 先求…