upload-labs靶场学习笔记1-21关

2023-11-08

目录

 

Pass-01(前端验证)

Pass-02(MIME验证)

Pass-03(黑名单验证,特殊后缀)

 Pass-04(黑名单验证,.htaccess重写解析绕过上传)

 Pass-05(黑名单验证,.user.ini.点空格点)

 Pass-06(黑名单,大小写绕过)

 Pass-07(黑名单验证,空格绕过)

 Pass-08(黑名单验证,点号绕过)

 Pass-09(. NTFS 交换数据流::$DATA 绕过上传)

 Pass-10(黑名单)

Pass-11(黑名单验证,双写后缀名绕过上传) 

 Pass-12(目录可控%00 截断绕过上传)

 Pass-13(目录可控 POST 绕过上传 00截断)

 Pass-14(图片马unpack)

 Pass-15(图片检测函数getimagesize绕过上传,图片马)

 Pass-16(exif_imagetype图片马)

Pass-17(二次渲染绕过)

Pass-18(文件上传条件竞争漏洞绕过一)

Pass-19(文件上传条件竞争漏洞绕过二)

Pass-20(文件名可控绕过上传)

 Pass-21(数组绕过上传)

总结:文件上传的防御方法


 

Pass-01(前端验证)

因为第一关是通过客户端js前端校验,只需要删除checkFile()函数把值改成true即可。然后上传,即可成功上传php文件。

 

复制图片地址然后打开蚁剑连接获取网站webshell

Pass-02(MIME验证)

查看源码,分析后台php代码通过content-type对文件判断类型,content-type在客户端可以被修改,所以存在绕过风险。首先进行submit提交判断,再检测文件类型如果是image/jpeg或者image/png即允许上传。

 上传php文件并用bp抓包,修改content-type为image/jpeg,再上传即可。

复制图片地址然后打开蚁剑连接获取网站webshell

Pass-03(黑名单验证,特殊后缀)

本人题目用的环境是php5.4.45nts版本

分析源码,本题是通过黑名单验证,验证不全可以通过php3、php5、phtml,pht等绕过,前提应该修改php配置文件,改一下httpd.conf文件里的#AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php .php .phtml .php5 .php3,去掉#号。我用的是phpstudy,修改完配置记得重启phpstudy服务。然后修改拓展名上传1.php3文件,上传成功。

关于AddType命令的作用解释

AddType 指令 作用:在给定的文件扩展名与特定的内容类型之间建立映射 语法:AddType MIME-type extension
[extension] …
AddType指令在给定的文件扩展名与特定的内容类型之间建立映射关系。MIME-type指明了包含extension扩展名的文件的媒体类型。
AddType 是与类型表相关的,描述的是扩展名与文件类型之间的关系。

复制图片地址然后打开蚁剑连接获取网站webshell

 Pass-04(黑名单验证,.htaccess重写解析绕过上传)

上传模块,黑名单过滤了所有的能执行的后缀名,如果允许上传.htaccess。htaccess 文件的作用是 可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定 义错误页面、改变你的文件扩展名、封禁特定 IP 地址的用户、只允许特定 IP 地 址的用户、禁止目录列表,以及使用其他文件作为 index 文件等一些功能。 在 htaccess 里写入 SetHandler application/x-httpd-php 则可以文件重写成 php 文 件。要 htaccess 的规则生效 则需要在 apache 开启 rewrite 重写模块,因为 apache 是多数都开启这个模块,所以规则一般都生效。

分析源码, 过滤了如下后缀名:.php",".php5",".php4",".php3",".php2","php1",".html",".htm",".phtml",".pht",". pHp",".pHp5",".pHp4",".pHp3",".pHp2","pHp1",".Html",".Htm",".pHtml",".jsp",".jsp a",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHt ml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa", ".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf"但是没有过滤.htacess后缀名。

在.htacess文件里写入

先上传.htacess文件然后再上传1.jpg文件,访问1.jpg目录解析为php代码

复制图片地址然后打开蚁剑连接获取网站webshell

 

 Pass-05(黑名单验证,.user.ini.点空格点)

 

查看源码,该过滤的都被过滤了只有.ini没有被过滤,查看提示

 百度查询.ini

user.ini : 自 PHP 5.3.0 起,PHP 支持基于每个目录的 .htaccess 风格的 INI 文件。此类文件仅被
   CGI/FastCGI SAPI 处理。此功能使得 PECL 的 htscanner 扩展作废。如果使用 Apache,则用
   .htaccess 文件有同样效果。
   
   除了主 php.ini 之外,PHP 还会在每个目录下扫描 INI 文件,从被执行的 PHP 文件所在目录开始一直上升到 web
   根目录($_SERVER['DOCUMENT_ROOT'] 所指定的)。如果被执行的 PHP 文件在 web 根目录之外,则只扫描该目录。
   
   在 .user.ini 风格的 INI 文件中只有具有 PHP_INI_PERDIR 和 PHP_INI_USER 模式的 INI
   设置可被识别。
   
   两个新的 INI 指令,user_ini.filename 和 user_ini.cache_ttl 控制着用户 INI 文件的使用。
   
   user_ini.filename 设定了 PHP 会在每个目录下搜寻的文件名;如果设定为空字符串则 PHP 不会搜寻。默认值是
   .user.ini。
   
   user_ini.cache_ttl 控制着重新读取用户 INI 文件的间隔时间。默认是 300 秒(5 分钟)。

php.ini 是php配置文件,.user.ini也会被当成配置文件执行,从而导致php文件解析漏洞

引发.user.ini需要三个条件,

服务器脚本语言为PHP  

服务器使用CGI/FastCGI模式  

上传目录下要有可执行的php文件

什么是CGI/FastCGI模式呢?我也不知道,所以百度了一下。

什么是 CGI
       CGI 的全称为“通用网关接口”(Common Gateway Interface),为 HTTP 服务器与其他机器上的程序服务通信交流的一种工具, CGI 程序须运行在网络服务器上。
   
       传统 CGI 接口方式的主要缺点是性能较差,因为每次 HTTP 服务器遇到动态程序时都需要重新启动解析器来执行解析,之后结果才会被返回给 HTTP
       服务器。这在处理高并发访问时几乎是不可用的,因此就诞生了 FastCGI。另外,传统的 CGI 接口方式安全性也很差,故而现在已经很少被使用了。
什么是 FastCGI
       FastCGI 是一个可伸缩地、高速地在 HTTP 服务器和动态服务脚本语言间通信的接口(在 Linux 下, FastCGI 接口即为 socket,这个socket 可以是文件 socket,也可以是IP socket),主要优点是把动态语言和 HTTP
   服务器分离开来。多数流行的 HTTP 服务器都支持 FastCGI,包括 Apache 、 Nginx 和 Lighttpd 等。
   
   同时,FastCGI也被许多脚本语言所支持,例如当前比较流行的脚本语言PHP。FastCGI 接口采用的是C/S架构,它可以将 HTTP 服务器和脚本服务器分开,同时还能在脚本解析服务器上启动一个或多个脚本来解析守护进程。当 HTTP
   服务器遇到动态程序时,可以将其直接交付给 FastCGI 进程来执行,然后将得到结果返回给浏览器。这种方式可以让 HTTP
   服务器专一地处理静态请求,或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高整个应用系统的性能。

我们的环境满足CGI条件,然后创建一个.user.ini文件并上传上去

.user.ini文件里的意思是:所有的php文件都自动包含666.jpg文件。.user.ini相当于一个用户自定义的php.ini,然后上传123.jpg文件,内含一句话木马。

 

 

将这里的300改为5,重启phpstudy服务等待5s,复制图片地址连接蚁剑获取webshell。

 

 Pass-06(黑名单,大小写绕过)

查看源码没有对大小写进行严格过滤,可以通过大小写方式绕过黑名单。把php改为Php即可绕过上传, 复制图片地址连接蚁剑获取webshell。

 Pass-07(黑名单验证,空格绕过)

查看源码,没有去空格函数trim(),可以通过加空格绕过。 

bp抓包,在1.php后面加一个空格,放包即可上传。

复制图片地址连接蚁剑获取webshell。

 Pass-08(黑名单验证,点号绕过)

在 windows 中文件后缀名. 系统会自动忽略.所以 shell.php. 像 shell.php 的效果一 样。所以可以在文件名后面机上.绕过。

 

同样是黑名单过滤,但是可以加点.php.绕过。

用bp抓包,修改文件名为1.php.然后上传。

 

 然后复制图片地址连接蚁剑获取webshell。

 Pass-09(. NTFS 交换数据流::$DATA 绕过上传)

如果后缀名没有对::$DATA 进行判断,利用 windows 系统 NTFS 特征可以绕过上 传。

补充知识:php在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持"::$DATA"之前的文件名 他的目的就是不检查后缀名。
 

 查看源码,没有对::DATA过滤,可以用::DATA过滤。

接着用bp抓包然后修改文件后缀名::$DATA即可上传成功。

 

  然后复制图片地址连接蚁剑获取webshell。记得删除::$DATA。

 Pass-10(黑名单)

分析源码,构造后缀名绕过黑名单,

filen​ame=deldot(file_name)操作去除文件名末尾的点,构造后缀绕过黑名单

补充知识:deldot()函数从后向前检测,当检测到末尾的第一个点时会继续它的检测,但是遇到空格会停下来

 可以用.php. .进行绕过。

上传php文件并用bp抓包,修改后缀名为.php. .两点之间带空格,然后上传。

 然后复制图片地址连接蚁剑获取webshell。

Pass-11(黑名单验证,双写后缀名绕过上传) 

在上传模块,有的代码会把黑名单的后缀名替换成空,例如 a.php 会把 php 替换 成空,但是可以使用双写绕过例如 asaspp,pphphp,即可绕过上传。

 分析源码,就是上述替换成空的情况。我们可以进行双写后缀名进行绕过。

同样是bp抓包,修改后缀名为1.pphphp。放包即可成功上传。

  然后复制图片地址连接蚁剑获取webshell。

 Pass-12(目录可控%00 截断绕过上传)

以上都是一些黑名单被绕过的,如果黑名单上传检测后,没有限定后缀名,绕过 的方法很多,与黑名单相对的就是白名单,使用白名单验证会相对比较安全,因 为只允许指定的文件后缀名。但是如果有可控的参数目录,也存在被绕过的风险。

 代码中使用白名单限制上传的文件后缀名,只允许指定的图片格式。但是 $_GET['save_path']服务器接受客户端的值,这个值可被客户端修改。所以会留下 安全问题。

可以使用%00截断的条件:

当 magic_quotes_gpc关闭的情况下,可以用%00 对目录或者文件名进行截断。
php 版本小于 5.3.4

原理:php的一些函数的底层是C语言,而move_uploaded_file就是其中之一,遇到0x00会截断,0x表示16进制,URL中%00解码成16进制就是0x00。

放包之后,  然后复制图片地址连接蚁剑获取webshell。

 Pass-13(目录可控 POST 绕过上传 00截断)

上面是 GET 请求的,可以直接在 url 输入%00 即可截断,但是在 post 下直接注 入%00 是不行的,需要把%00 解码变成空白符,截断才有效。才能把目录截断 成文件名。

 补充知识:POST不会对里面的数据自动解码,需要在Hex中修改。

 原理同get,在此不赘述了,只不过请求变成POST请求。

+号的Hex是2b,把2b改成00。

 然后放包,复制图片地址连接蚁剑获取webshell。

 Pass-14(图片马unpack)

有的文件上传,上传时候会检测头文件,不同的文件,头文件也不尽相同。常见 的文件上传图片头检测 它检测图片是两个字节的长度,如果不是图片的格式, 会禁止上传。 

常见的文件头
 JPEG (jpg),文件头:FFD8FF
 PNG (png),文件头:89504E47
 GIF (gif),文件头:47494638
 TIFF (tif),文件头:49492A00
 Windows Bitmap (bmp),文件头:424D

制作图片一句话,使用 copy 1.gif/b+moon.php shell.php 将 php 文件附加再 jpg 图片上,直接上传即可。

copy 1.jpg/b+1.php shell.jpg

 上传成功之后,利用文件包含漏洞执行php代码。

 点击文件包含漏洞 ,get传图片目录参数。

 

 复制图片地址连接蚁剑获取webshell。

 Pass-15(图片检测函数getimagesize绕过上传,图片马)

查看代码

 getimagesize 是获取图片的大小,如果头文件不是图片会报错直接可以用图片马 绕过检测。

图片马制作如上一关,直接上传并用文件包含漏洞即可。

最后再复制图片地址连接蚁剑。

 Pass-16(exif_imagetype图片马)

知识补充: exif_imagetype()读取一个图像的第一个字节并检查其后缀名。
返回值与getimage()函数返回的索引2相同,但是速度比getimage快得多。需要开启php_exif模块。

道理还是同上一关,制作图片马上传即可获取webshell。

Pass-17(二次渲染绕过)

有些图片上传,会对上传的图片进行二次渲染后在保存,体积可能会更小,图片 会模糊一些,但是符合网站的需求。例如新闻图片封面等可能需要二次渲染,因 为原图片占用的体积更大。访问的人数太多时候会占用,很大带宽。二次渲染后 的图片内容会减少,如果里面包含后门代码,可能会被省略。导致上传的图片马, 恶意代码被清除。首先判断图片是否允许上传 gif,gif 图片在二次渲染后,与原图片差别不会太大。 所以二次渲染攻击最好用 git 图片马。 制作图片马 将原图片上传,下载渲染后的图片进行对比,找相同处,覆盖字符串,填写一句 话后门,或者恶意指令。

用hxd对比上传前后的图片,找到前后编码不变的地方,插入php代码或者一句话。

原图片与渲染后的图片这个位置的字符串没有改变所在原图片这里替换成直接上传即可。

然后利用文件包含漏洞连接蚁剑。

Pass-18(文件上传条件竞争漏洞绕过一)

在文件上传时,如果逻辑不对,会造成很大危害,例如文件上传时,用 move_uploaded_file 把上传的临时文件移动到指定目录,接着再用 rename 文件 设置为图片格式,如果在 rename 之前 move_uploaded_file 这个步骤 如果这个文 件可被客户端访问,这样我们也可以获取一个 webshell。

 采用白名单上传,$upload_file = UPLOAD_PATH . '/' . $file_name; 设置上传路径, 后缀名没有限定为图片类型,接着 move_uploaded_file($temp_file, $upload_file) 将图片移动指定的目录,接着使用 rename 重名为图片类型。在重名之前如果被 浏览器访问,可以得到一个 webshell。

 上传 php 后门脚本,上传之后用 burpsutie 设置访问,线程建议体提高一些。 抓包上传 php 文件 设置变量不停的提交这包

 需要知道 php 的访问路径,抓包 不停的提交访问。 首先提交访问上传后的 php 路径 第二提交上传的文件的数据包即可。

 可以看到页面返回 200 证明上传成功

Pass-19(文件上传条件竞争漏洞绕过二)

这一关与上一关相似,不过是上传的不是php文件而是图片马,先制作图片马,然后步骤跟上一关相似。在此不作赘述。

Pass-20(文件名可控绕过上传)

文件上传时,文件名的可被客户端修改控制,会导致漏洞产生。

查看代码

 采用黑名单限制上传文件,但是 $_POST['save_name']文件是可控的,可被客户端 任意修改,造成安全漏洞.

文件名攻击的方法主要有两种

1.上传文件,文件吗采用%00 截断,抓包解码例如 moon.php%00.php 截断后 moon.php 或者使用/. 2.与中间的漏洞配合使用 例如 iis6.0 上传 1.php;1.jpg apache 上传 1.php.a 也 能解析文件 a.asp;1.jpg 解析成 asp

%00 截断 需要 gpc 关闭 抓包 解码 提交即可 截断文件名 php 版本小于 5.3.4

 

 Pass-21(数组绕过上传)

有的文件上传,如果支持数组上传或者数组命名。如果逻辑写的有问题会造成安 全隐患,导致不可预期的上传。这种上传攻击,它是属于攻击者白盒审计后发现 的漏洞居多。

查看代码

 首先检测文件类型,看到可控参数 save_name 如果不是数组如果后缀名不是图 片禁止上传。 如果是数组绕过图片类型检测 接着处理数组。 首先 一个例子的处理。 如果是两个参数 拼接字符串是 xx.php/.png

 构造上传表单,设置数组上传。从代码中,可以知道第二个数组必须大于 1 即可 第二个数组的值就获取不了,字符串拼接起来就是 moon.php/. 就能上传

 这题确实没搞懂。

总结:文件上传的防御方法

服务器端使用白名单防御,修复 web 中间件的漏洞,禁止客户端存在可控参 数,存放文件目录禁止脚本执行,限制后缀名 一定要设置图片格式 jpg、gif 、 png 文件名随机的,不可预测。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

upload-labs靶场学习笔记1-21关 的相关文章

  • 【计算机毕业设计】精品课程在线学习系统

    如今社会上各行各业 都喜欢用自己行业的专属软件工作 互联网发展到这个时候 人们已经发现离不开了互联网 新技术的产生 往往能解决一些老技术的弊端问题 因为传统精品课程学习信息管理难度大 容错率低 管理人员处理数据费工费时 所以专门为解决这个难
  • Web 安全漏洞之 OS 命令注入

    什么是 OS 命令注入 上周我们分享了一篇 Web 安全漏洞之 SQL 注入 其原理简单来说就是因为 SQL 是一种结构化字符串语言 攻击者利用可以随意构造语句的漏洞构造了开发者意料之外的语句 而今天要讲的 OS 命令注入其实原理和 SQL
  • 5个步骤,教你瞬间明白线程和线程安全

    记得今年3月份刚来杭州面试的时候 有一家公司的技术总监问了我这样一个问题 你来说说有哪些线程安全的类 我心里一想 这我早都背好了 稀里哗啦说了一大堆 他又接着问 那你再来说说什么是线程安全 然后我就GG了 说真的 我们整天说线程安全 但是对
  • J2EE常见面试题(一)

    StringBuilder和StringBuffer的区别 String 字符串常量 不可变 使用字符串拼接时是不同的2个空间 StringBuffer 字符串变量 可变 线程安全 字符串拼接直接在字符串后追加 StringBuilder
  • 白帽子如何快速挖到人生的第一个漏洞 | 购物站点挖掘商城漏洞

    本文针对人群 很多朋友们接触安全都是通过书籍 网上流传的PDF 亦或是通过论坛里的文章 但可能经过了这样一段时间的学习 了解了一些常见漏洞的原理之后 对于漏洞挖掘还不是很清楚 甚至不明白如何下手 可能你通过 sql labs 初步掌握了sq
  • Android SDK开发艺术探索(五)安全与校验

    一 前言 本篇是Android SDK开发艺术探索系列的第五篇文章 介绍了一些SDK开发中安全方面的知识 包括资源完整性 存储安全 权限校验 传输安全 代码混淆等知识 通过基础的安全配置为SDK保驾护航 探索SDK开发在安全方面的最佳实践
  • 200道网络安全常见面试题合集(附答案解析+配套资料)

    有不少小伙伴面临跳槽或者找工作 本文总结了常见的安全岗位面试题 方便各位复习 祝各位事业顺利 财运亨通 在网络安全的道路上越走越远 所有的资料都整理成了PDF 面试题和答案将会持续更新 因为无论如何也不可能覆盖所有的面试题 php爆绝对路径
  • 远程控制软件安全吗?一文看懂ToDesk、RayLink、TeamViewer、Splashtop相关安全机制_raylink todesk

    目录 一 前言 二 远程控制中的安全威胁 三 国内外远控软件安全机制 ToDesk RayLink Teamviewer Splashtop 四 安全远控预防 一 前言 近期 远程控制话题再一次引起关注 据相关新闻报道 不少不法分子利用远程
  • 小白入门黑客之渗透测试(超详细)基本流程(内附工具)

    经常会收到小伙伴们这样的私信 为什么我总是挖不到漏洞呢 渗透到底是什么样的流程呢 所以全网最详细的渗透测试流程来了 渗透测试其实就是通过一些手段来找到网站 APP 网络服务 软件 服务器等网络设备和应用的漏洞 告诉管理员有哪些漏洞 怎么填补
  • 用CHAT写一份标题为职业教育教师教学能力提升培训总结

    CHAT回复 标题 职业教育教师教学能力提升培训总结 一 活动概述 本次由学校组织的职业教育教师教学能力提升培训于8月15日至8月20日顺利进行 来自全校的60位职业教育教师参与了此次培训 主讲人为享有盛名的教育专家马丁先生 二 培训内容与
  • 网络安全(黑客)自学

    1 网络安全是什么 网络安全可以基于攻击和防御视角来分类 我们经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 2 网络安全市场 一 是市场需求量高 二 则是发展相对成熟入门比较容易 3 所需要的
  • 网络安全:绕过 MSF 的一次渗透测试

    这次渗透的主站是 一个 Discuz 3 4 的搭建 违法招 piao 网站 配置有宝塔 WAF 用 Discuz ML 3 X 的漏洞进行攻击 但是没有成功 发现主站外链会有一个发卡网 引导人们来这充值 是 某某发卡网 而且域名指向也是主
  • 计算机Java项目|基于SSM的微课学习系统

    作者主页 编程指南针 作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智
  • 【网络安全】——区块链安全和共识机制

    区块链安全和共识机制 摘要 区块链技术作为一种分布式去中心化的技术 在无需第三方的情况下 使得未建立信任的交易双方可以达成交易 因此 区块链技术近年来也在金融 医疗 能源等多个行业得到了快速发展 然而 区块链为无信任的网络提供保障的同时 也
  • Cortex-M3与M4权威指南

    处理器类型 所有的ARM Cortex M 处理器是32位的精简指令集处理器 它们有 32位寄存器 32位内部数据路径 32位总线接口 除了32位数据 Cortex M处理器也可以有效地处理器8位和16位数据以及支持许多涉及64位数据的操作
  • 【js学习之路】遍历数组api之 `filter `和 `map`的区别

    一 前言 数组是我们在项目中经常使用的数据类型 今天我们主要简述作用于遍历数组的api filter 和 map 的区别 二 filter和map的共同点 首先 我们主要阐述一下 filter 和 map 的共同点 api的参数都是回调函数
  • 项目文章 | IF=8.4&转录因子Egr-1是脑膜炎型大肠杆菌引起的血脑屏障损伤的关键调节因子

    2024年1月17日华中农业大学动科动医学院陈焕春院士 王湘如教授团队在期刊 Cell Communication and Signaling IF 8 4 发表了题为 Egr 1 is a key regulator of the blo
  • 【安全】简单解析统一身份认证:介绍、原理和实现方法

    深入解析统一身份认证 介绍 原理和实现方法 导语 统一身份认证是什么 统一身份认证的原理 统一身份认证的实现 结语 导语 随着互联网的发展和各种在线服务的普及 用户在不同的应用和平台上需要进行多次身份验证 为了简化用户的登录和减少重复操作
  • 【方法】如何把Excel“只读方式”变成可直接编辑?

    Excel在 只读方式 下 编辑后是无法直接保存原文件的 那如何可以直接编辑原文件呢 下面来一起看看看吧 如果Excel设置的是无密码的 只读方式 那在打开Excel后 会出现对话框 提示 是否以只读方式打开 如果想直接编辑文件 选择 否
  • 网络安全行业热门认证证书合集

    网络安全认证证书 就和学历一样是敲门砖 拿到了可以用不到 但不能没有 技术大牛可以没有证书 但普通人不能没有 1 初级入门 就像学历在职场上展示一个人的基本素养一样 网络安全认证证书可以展示一个人在网络安全领域具备的基本知识和技能 它为初学

随机推荐

  • 我的Substance Designer 学习笔记02-PBR材质学习理解

    首先定义PBR Physics based rendering 基于物理的渲染 由来 2012年迪士尼公司在技术论坛发布的文章 讲述自己作品的制作流程 2014年被某大佬提出简化版本的制作流程 优化后只用5中材质通道 BSDF 双向散射率分
  • C++实验02(02)华氏温度转换为摄氏温度

    题目描述 编写一个函数convert 把华氏温度转换为摄氏温度 转换公式为 C F 32 5 9 要求用内联函数实现 在main 中调用该函数 说明 F为double型 输入描述 华氏温度 输出描述 摄氏温度 输入样例 100 输出样例 华
  • 单线双线多线服务器有哪些区别

    单线双线多线服务器有哪些区别 服务器托管是我们现在当下比较常用的一种方式 越来越多的企业及站长 他们都会选择服务器托管 这不仅可以减少企业的维护时间成本 也可以让网站或者平台能够得到更多的专业技术支持 那么 在服务器托管中 我们经常会遇到单
  • jenkins+fastlane+git+cocoapods实现iOS持续集成踩坑记录

    前提 本项目在配置jenkins前已配置安装fastlane并自动上传蒲公英 关于fastlane的使用不在本文讨论范围之内 安装Jenkins jenkins有几种方式安装 一种是去官网下载dmg安装包 还可以下载 war文件 通过执行命
  • 整理一下react的知识点之redux-devtools-extension基本使用(持续更新)

    1 下载相关包 npm i redux react redux redux thunk redux devtools extension 2 安装react开发工具 chrome浏览器插件 3 安装redux的开发工具 chrome浏览器插
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • 如何用ChatGPT辅助写论文

    ChatGPT先进功能创造了巨大的需求 该AI工具在推出后的两个月内就积累了超过1亿用户 最突出的功能之一是它能够在几秒钟内编写各种文本 包括歌曲 诗歌 睡前故事和散文 但是ChatGPT可以做的不仅仅是写一篇文章 更有用的是它如何帮助指导
  • 什么是IOC和DI?DI是如何实现的?

    什么是IOC和DI DI是如何实现的 IOC Inversion of Control 叫控制反转 DI Dependency Injection 叫依赖注入 是对IOC更简单的诠释 IOC 控制反转是把传统上由程序代码直接操控的对象的调用
  • IDEA上传代码到Gitee

    提示 这里可以使IDEA上传代码到Gitee 需要自己手动操作 目录 前言 一 打开Gitee官网 进行注册登录 1 登录进去找到右上角添加仓库 进行所示图操作 二 启动IDEA 1 IDEA关联Gitee 2 找到git下载好git程序
  • SPI协议的verilog实现:利用spi协议配置寄存器

    状态机状态跳转图 因常常需要对寄存器进行配置 因而学习了V3学院的视频课 利用spi协议对寄存器进行配置 在此做个记录 以便日后回顾 上图为状态机状态转移图 需要先将需要配置的寄存器的信息存放在ROM中 然后将数据读出来 通过SPI协议发送
  • Vue3快速入门教程

    学某个新技能时 大多数人倾向于 一开始就从头到尾完整学一遍 甚至有人翻来覆去重复学很多遍也达不到熟记于心 我个人认为 这不是最好的办法 我的建议的是 面向需求 or 面向问题来学习 最开始你可能不了解你要实现的效果会涉及哪些技术知识点 那么
  • 六十七.深度优先遍历C语言实现(有向图)

    include
  • ApplicationContext类继承设计

    先上类图 BeanFactory是Spring IoC的核心接口 BeanFactory相关的类设计可以看做是Spring的核心骨骼 为整个框架设计了一个基本的核心架构 但只有骨骼 没有血肉 也是不完整的 这样一个核心的骨架难以在实际开发中
  • 【知识蒸馏】Knowledge Review

    GiantPandaCV引言 知识回顾 KR 发现学生网络深层可以通过利用教师网络浅层特征进行学习 基于此提出了回顾机制 包括ABF和HCL两个模块 可以在很多分类任务上得到一致性的提升 摘要 知识蒸馏通过将知识从教师网络传递到学生网络 但
  • 【无关技术·朋友圈朝花朝拾】月相

    月相 月相是以日月黄经差度数 以下的度数就是日月黄经差值 来算的 农历每一天的月相都有自己的专门名字 详情请看https baike baidu com item 月相是日月黄经差度数 以下的度数就是日月黄经差值 来算的 共划分八种 新月
  • Java集合之LinedList

    LinedList类实现了List接口 他提供了 双向的 链表数据结构 在该链表中的每一个元素除了存储本身的内容之外还存储指向前一个元素的指针和指向后一个元素的指针 下图展示了一个包含三个元素的双向链表 每个链表都有一个头部 头部指向第一个
  • Jdk8 foreach语法需要break怎么办?

    forEach里的return只相当于continue 没有break语法 在这里我总结了3种解决方案供你选择 exception filter anyMatch forEach里的return只相当于continue 没有break语法
  • 【Unity】让动画系统支持相对坐标

    假如你有一个很简单的动画 并且需要应用到许多物体上 但如果你挂载同一个动画到两个物体上 就会这样 解决方案 仅测试过 legacy 动画 挂载此脚本到物体上 using System Collections using System Col
  • 新手小白学影视剪辑50天日入500,她的方法秘籍全在这里了!【覃小龙课堂】

    hi 我是您的老朋友 覃小龙 您可以称呼我为覃总 今天给您带来的主题干货是一位女学员的总结 新手小白学影视剪辑50天日入500 她的方法秘籍全在这里了 做视频剪辑无论新手老手 无非就是这几点 1 怎么样才能不侵权 过审核发布 2 怎么样才能
  • upload-labs靶场学习笔记1-21关

    目录 Pass 01 前端验证 Pass 02 MIME验证 Pass 03 黑名单验证 特殊后缀 Pass 04 黑名单验证 htaccess重写解析绕过上传 Pass 05 黑名单验证 user ini 点空格点 Pass 06 黑名单