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

负载均衡反向代理下的webshell上传+apache漏洞

目录

  • 一、负载均衡反向代理下的webshell上传
    • 1、nginx 负载均衡
    • 2、搭建环境
    • 3、负载均衡下的 WebShell连接的难点总结
      • 难点一、需要在每一台节点的相同位置都上传相同内容的 WebShell
      • 难点二、无法预测下次的请求交给哪台机器去执行。
      • 难点三、下载文件时,可能会出现飘逸,导致下载失败。
      • 难点四、目标机器不能出外网
    • 总结
    • 4、解决方法
      • 方法一、关机/停服
      • 方法二、判断是否执行
      • 方法三、`在Web层做 HTTP 流量转发`
        • 1.创建 antproxy.jsp 脚本
        • 2.修改 Shell 配置, 将 URL 部分填写为 antproxy.jsp 的地址
        • 3. 测试执行命令, 查看 IP
  • 二、apache漏洞
    • 1、Apache HTTPD 换行解析漏洞(环境没搭建成功)
    • 2、Apache HTTPD 多后缀解析漏洞
    • 3、Apache Solr 远程命令执行漏洞(没写完)
    • 4、Apache HTTP 服务器的路径穿越和文件泄露漏洞
    • 5、Apache SSI 远程命令执行漏洞

一、负载均衡反向代理下的webshell上传

1、nginx 负载均衡

负载均衡策略策略
轮询请求顺序逐一分配
权重按照权重大小分配
ip_hash根据客户端IP分配
URL_hash根据URL分配
least_conn根据连接数分配

下来我简单介绍几种负载均衡的策略

  1. 轮询
    轮询:nginx默认就是轮询其权重都默认为1,服务器处理请求的顺序:ABABABABAB…
upstream mysvr { server 192.168.137.131; server 192.168.137.136;       
}

注意:

  • 在轮询中,如果服务器down掉了,会自动剔除该服务器。
  • 缺省配置就是轮询策略。
  • 此策略适合服务器配置相当,无状态且短平快的服务使用。
  1. weight
    跟据配置的权重的大小而分发给不同服务器不同数量的请求
upstream mysvr { server 192.168.137.131 weihet = 100; server 192.168.137.136 weihet = 200;
}
  1. ip_hash
    ip_hash:nginx会让相同的客户端ip请求相同的服务器
upstream mysvr { server 192.168.137.131; server 192.168.137.136;ip_hash;
}

2、搭建环境

github下载
在这里插入图片描述

cd /ant/loadbalance/loadbalance-jsp
docker-compose up  -d

这里我搭建环境的时候出了点问题,不知道为什么dockers-compose up -d 执行不了, 然后我我把docker-compose 删了重新安装发现还是不行,然后我恢复快照重新搭建环境,最后解决办法是卸载docker 重新安装docker和docker-compose。

cd /usr/local/bin/
#下载docker-compose
wget https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-Linux-x86_64
#重命名
rename docker-compose-Linux-x86_64 docker-compose docker-compose-Linux-x86_64
#给执行权限
chmod +x /usr/local/bin/docker-compose

上述下载方式有问题,由于compose更新了,Docker Compose V2 是 Docker Compose 的主要版本碰撞版本。它在Golang中完全重写了(V1是用Python编写的)。撰写 V2 的安装说明与 V1 不同。V2 不再是独立的二进制文件,必须调整安装脚本。
然后我们采用下列方式重新安装docker

#在 Linux上 安装 Docker
curl -sSL https://get.daocloud.io/docker | sh
#安装 Docker Compose
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.16.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#给予执行权限
chmod +x /usr/local/bin/docker-compose

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

环境搭建完成,现在我们的整体框架如下图
nginx 反向代理到两台内网服务器上,Node1 和 Node2 均是 tomcat 8 ,在内网中开放了 8080 端口,他们两个之间可以互相通信,我们在外部是没法直接访问到的。
在这里插入图片描述
然后我们进入docker-nginx 查看一下nginx 配置。
做了轮询的负载均衡策略。
在这里插入图片描述
假定在真实的业务系统上,存在一个 RCE 漏洞,可以让我们获取 WebShell。
上传我们的一句话木马。
尝试用蚁剑登录
在这里插入图片描述
成功连接目标,因为两台节点都在相同的位置存在 ant.jsp,所以连接的时候也没出现什么异常。

3、负载均衡下的 WebShell连接的难点总结

难点一、需要在每一台节点的相同位置都上传相同内容的 WebShell

假如说node1上有ant.jsp,node2上没有,这就会出现一会连接失败,一会连接正常的问题
我们进入node2删除ant.jsp
在这里插入图片描述
一旦有一台机器上没有,那么在请求轮到这台机器上的时候,就会出现 404 错误,影响使用。还好负载均衡的策略是轮询,还存在一定的规律,如果是其他策略,更难以把控。
在这里插入图片描述

难点二、无法预测下次的请求交给哪台机器去执行。

在这里插入图片描述
由于难点一测试时删除了 node2的ant.jsp,我们重新copy一下
docker cp ant.jsp 46c0af8b0ca3:/usr/local/tomcat/webapps/ROOT/ant.jsp
由于nginx服务器上配置了 轮询负载均衡,所以我们无法下次的请求交给哪台机器去执行,有点飘忽不定。
在这里插入图片描述

难点三、下载文件时,可能会出现飘逸,导致下载失败。

由于 antSword 上传文件时,采用的分片上传方式,把一个文件分成了多次HTTP请求发送给了目标,导致两台节点上,各一半,而且这一半到底是怎么组合的,取决于 LBS 算法

难点四、目标机器不能出外网

目标机器不能出外网,要想深入,只能使用 reGeorg/HTTPAbs 等 HTTP Tunnel,但隧道随时可能断开连接,tunnel 脚本全部都会失效。
1、reGeorg内网渗透工具
ReGeorg可以称为内网代理。实际上,它可以起到代理的作用
在这里插入图片描述
模拟上图的场景
主机A、主机B、攻击者
假如主机A上运行了Web服务,且IP或者端口映射到公网,可以被外部人员访问,主机B是在外网访问不到的。攻击者通过漏洞在主机A上传了Webshell,但同时又出于某些限制并未能得到主机A的主机权限也无法反弹shell,那么他这个时候,也是无法通过常规方法反弹shell或者直接登录主机A从而访问到主机B的。

ReGeorg就在这个时候起了作用,攻击者已经有了主机A的webshell权限(即可以在web服务器中上传文件),而主机A可以和主机B通信。那么在主机A上安装reGeorg工具,使得攻击者发出的请求以及目标机器的响应经过A的http转发,达到攻击者可以和主机B进行通信的效果。
2、ab(http)与abs(https)压测工具
ab全称为:apache bench
ab是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。

总结

看似四个难点,归根结底是由于nginx,上配置了负载均衡的问题,我们无法预测,管控下一次请求在那台服务器上,所以导致了这一系列问题,下面我们介绍一些解决办法。

4、解决方法

方法一、关机/停服

关掉其中一台机器,这种行为最不推荐,但如果你不在乎关掉服务器的损失当我没说。这种方法影响业务,不建议尝试,测试除外。

方法二、判断是否执行

既然无法预测下一次是哪台机器去执行,我们可以在Shell 执行 Payload 之前,判断要不要执行。
创建shell 脚本

MYIP = `ifconfig | grep "inet 172" | awk "{print $2}"`
if [ $MYIP == "172.18.0.3" ];thenecho = "aaaaaaaa"ifconfig
elseecho = "bbbbbbbb"
fi

在这里插入图片描述
蚁剑不知道出现莫名的问题
在这里插入图片描述

方法三、在Web层做 HTTP 流量转发

我们用 AntSword 没法直接访问 LBSNode1 内网IP(172.23.0.2)的 18080 端口,但是有人能访问呀,除了 nginx 能访问之外,LBSNode2 这台机器也是可以访问 Node1 这台机器的 18080 端口
在这里插入图片描述
我们的目的是:所有的数据包都能发给「LBSNode 1」这台机器。
如上图所示,我们可以在node2上做数据转发,整合数据后转发给node1
首先:我们通过nginx,直接访问node1,
其次:我们把请求发给Node2,Node2 上面的 /antproxy.jsp 把请求重组之后,传给了 Node1 的 /ant.jsp,成功执行。

1.创建 antproxy.jsp 脚本

修改数据转发的目标地址
在这里插入图片描述
注意
不要使用上传功能,上传功能会分片上传,导致分散在不同 Node 上。
要保证每一台 Node 上都有相同路径的 antproxy.jsp,保证每一台都上传了脚本

2.修改 Shell 配置, 将 URL 部分填写为 antproxy.jsp 的地址

在这里插入图片描述
在这里插入图片描述
这里转发的目标地址,我第一次改成172.18.0.2:18080,出现蚁剑连接不上的问题,然后改成172.18.0.2:8080,就可以连接成功。
在这里插入图片描述

3. 测试执行命令, 查看 IP

在这里插入图片描述
这个方法有个缺点,需要目标Node1和 Node2之间内网互通,如果不互通,就无法解决问题。

二、apache漏洞

1、Apache HTTPD 换行解析漏洞(环境没搭建成功)

Apache HTTPD 换行解析漏洞(CVE-2017-15715)
影响版本:2.4.0~2.4.29
影响说明:Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。在解析PHP时,1.php\x0a将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。

在这里插入图片描述
在1.php后面插入一个\x0A,php会解析成1.php%0a,从而成功解析
在这里插入图片描述

2、Apache HTTPD 多后缀解析漏洞

Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令。比如,如下配置文件:

AddType text/html .html
AddLanguage zh-CN .cn

其给.html后缀增加了media-type,值为text/html;给.cn后缀增加了语言,值为zh-CN。此时,如果用户请求文件index.cn.html,他将返回一个中文的html页面。
意思就是说只要文件后缀中包含了 html、php的文件,他就可以被解析成相应的文件.

以上就是Apache多后缀的特性。如果运维人员给.php后缀增加了处理器:

AddHandler application/x-httpd-php .php
那么,在有多个后缀的情况下,只要一个文件含有.php后缀的文件即将被识别成PHP文件.
漏洞复现
环境运行后,访问http://192.1`68.137.131/uploadfiles/apache.php.jpeg即可发现,phpinfo被执行了,该文件被解析为php文件。
我们就可以利用Apache解析漏洞进行getshell。
在这里插入图片描述
在这里插入图片描述

3、Apache Solr 远程命令执行漏洞(没写完)

Apache Solr 远程命令执行漏洞(CVE-2019-0193)
影响版本:Apache Solr < 8.2.0 的版本
影响说明:Apache Solr 是一个开源的搜索服务器。Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现。此次漏洞出现在Apache Solr的DataImportHandler,该模块是一个可选但常用的模块,用于从数据库和其他源中提取数据。它具有一个功能,其中所有的DIH配置都可以通过外部请求的dataConfig参数来设置。由于DIH配置可以包含脚本,因此攻击者可以通过构造危险的请求,从而造成远程命令执行。
在Apache Solr < 8.2.0 的版本中, DataImportHandler的dataConfig参数为用户可控,攻击者可通过构造恶意的dataConfig脚本交由转换器(Transformers)进行解析,而Solr在解析的过程中并未对用户输入的脚本进行检查,导致攻击者可在Solr服务器上执行任意代码。

solr 工作机制
1.solr是在lucene工具包的基础之上进行了封装,并且以web服务的形式对外提供索引功能
2.业务系统需要使用到索引的功能(建索引,查索引)时,只要发出http请求,并将返回数据进行解析即可

Solr DataImportHandler
Solr DataImportHandler可以批量把数据导入到索引库中.

DataImportHandler有如下功能:1、读取关系数据库中数据或文本数据2、根据配置从xml(http/file方式)读取与建立索引数据3、根据配置聚合来自多个列和表的数据来构建Solr文档4、使用文档更新Solr(更新索引、文档数据库等)5、根据配置进行完全导入的功能(full-import,完全导入每次运行时会创建整个索引)6、检测插入/更新字段并执行增量导入(delta-import,对增加或者被修改的字段进行导入)7、调度full-import与delta-import8、可以插入任何类型的数据源(ftp,scp等)和其他用户可选格式(JSON,csv等)

这里有前辈做的一张图,来帮助我们理解。
blog.csdnimg.cn/df1442e424df4aaeacb022ac319418be.png)
Core:索引库,其中包含chema.xml/managed-schemaschema.xml是模式文件的传统名称,可以由使用该模式的用户手动编辑,managed-schema是Solr默认使用的模式文件的名称,它支持在运行时动态更改,data-config文件可配置为xml形式或通过请求参数传递(在dataimport开启debug模式时可通过dataConfig参数传递)
漏洞利用的前提条件: Solr有一个具有dataimport功能的core,这个功能需要在这个core对应的配置文件中指定节点的class属性为,solrconfig.xmlrequestHandlersolr.DataImportHandler
在这里插入图片描述
且Solr未开启认证(默认未开启认证),在这种情况下,Solr Admin UI上的操作是不需要登录凭据的。

开启认证可通过编辑配置文件:server/solr-webapp/webapp/WEB-INF/web.xml
复现漏洞
搭建环境
在这里插入图片描述
运行环境

docker-compose up -d
docker-compose exec solr bash bin/solr create_core -c test -d example/example-DIH/solr/db

访问http://192.168.137.131:8983/即可查看到Apache solr的管理页面,无需登录
在这里插入图片描述

4、Apache HTTP 服务器的路径穿越和文件泄露漏洞

Apache HTTP 服务器 2.4.49 中的路径穿越和文件泄露漏洞 (CVE-2021-41773)
影响版本:2.4.49
影响说明:在 Apache HTTP Server 2.4.49 中对路径规范化所做的更改中发现一个缺陷。攻击者可以使用路径遍历攻击将 URL 映射到预期文档根目录之外的文件。
如果这些目录之外的文件不受通常的默认配置“要求全部拒绝”的保护,则这些请求可以成功。如果还为这些别名路径启用了 CGI 脚本,则可能允许远程执行代码。
漏洞复现

curl -v --path-as-is http://your-ip:8080/icons/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd

在这里插入图片描述
/%2e%2e/ 就是/…/ ,且icons目录存在,执行命令后,就行当于返回到根目录下执行/etc/passwd
如果在服务器上启用 mods cgi 或 cgid 的话,此路径遍历漏洞将允许任意命令执行:

curl -v --data "echo;id" 'http://your-ip:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh'

在这里插入图片描述
什么是cgi?
CGI的全称是Common Gateway Interface,通用网关接口。粗略地说,CGI就是位于服务器端的处理网页请求的程序。CGI程序本身是服务器操作系统上的一个简单的应用程序,它接受输入进行处理并输出内容,这些输入输出都又通过Web服务器软件(比如apache)处理,最终完成需要的功能。
在这里插入图片描述

5、Apache SSI 远程命令执行漏洞

影响说明:在测试任意文件上传漏洞的时候,目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,并利用<!–#exec cmd=“id” -->语法执行任意命令。
漏洞复现
环境启动后,访问http://192.168.137.140:8080/upload.php,即可看到一个上传表单。
然后我们上传一个1.shtml文件

<!--#exec cmd="id" -->

在这里插入图片描述

在这里插入图片描述
然后我们用burpsuite 测试一下
在这里插入图片描述
然后我们修改post 改成我们的1.shtml 运行后成功执行了<!–#exec cmd=“id” -->命令
在这里插入图片描述
上述提到SSI
什么是SSI?
SSI(服务器端包含)是放置在 HTML 页面,并在页面 被服务。它们允许您将动态生成的内容添加到 现有 HTML 页面,而不必提供整个页面 通过CGI程序或其他动态技术。

例如,您可以将指令放入现有 HTML 中 页面,例如:

<!--#echo var="DATE_LOCAL" -->并且,当页面投放时,将评估此片段并将其替换为其值:Tuesday, 15-Jan-2013 19:28:54 EST

各个服务器对SSI命令的支持各有不同,但 #include 和 #exec 是通用的。使用 SSI 的页面文件通常都使用扩展名.shtml,而不是.html 或 .htm,这样以便服务器能够辨认出哪些页面包含SSI指令,这些页面需要先经过服务器处理,翻译执行其中的SSI指令,然后才发送给客户端浏览器。 (当然有些服务器还是支持.html,.htm文件中有SSI指令的)。

如何辨认服务器是否支持SSI?

  1. 拷贝以下HTML内容,保存为文件名test.shtml
<!–#echo var=”DATE_LOCAL” –>
  1. 将这个文件上载到你的服务器上,然后用浏览器浏览服务器上的这个网页。

  2. 如果看到网页显示当前日期,则你的服务器支持 SSI。

相关文章:

负载均衡反向代理下的webshell上传+apache漏洞

目录一、负载均衡反向代理下的webshell上传1、nginx 负载均衡2、搭建环境3、负载均衡下的 WebShell连接的难点总结难点一、需要在每一台节点的相同位置都上传相同内容的 WebShell难点二、无法预测下次的请求交给哪台机器去执行。难点三、下载文件时&#xff0c;可能会出现飘逸&…...

打造安全可信的通信服务,阿里云云通信发布《短信服务安全白皮书》

随着数字化经济的发展&#xff0c;信息保护和数据安全成为企业、个人关注的焦点。近日&#xff0c;阿里云云通信发布《短信服务安全白皮书》&#xff0c;该白皮书包含安全责任共担、安全合规、安全架构三大板块&#xff0c;呈现了阿里云云通信在信息安全保护方面的技术能力、安…...

Python项目实战——外汇牌价(附源码)

前言 几乎每个人都在使用银行卡&#xff0c;今天我们就来爬取某行外汇牌价&#xff0c;获取我们想要的数据。 环境使用 python 3.9pycharm 模块使用 requests 模块介绍 requestsrequests是一个很实用的Python HTTP客户端库&#xff0c;爬虫和测试服务器响应数据时经常会用到&…...

String、StringBuffer、StringBuilder有什么区别?

第5讲 | String、StringBuffer、StringBuilder有什么区别&#xff1f; 今天我会聊聊日常使用的字符串&#xff0c;别看它似乎很简单&#xff0c;但其实字符串几乎在所有编程语言里都是个特殊的存在&#xff0c;因为不管是数量还是体积&#xff0c;字符串都是大多数应用中的重要…...

python基于django+vue的高铁地铁火车订票管理系统

目录 1 绪论 1 1.1课题背景 1 1.2课题研究现状 1 1.3初步设计方法与实施方案 2 1.4本文研究内容 2 2 系统开发环境 4 2.1 使用工具简介 4 2.2 环境配置 4 2.4 MySQL数据库 5 2.5 框架介绍 5 3 系统分析 6 3.1系统可行性分析 6 3.1.1经济可行性 6 3.1.2技术可行性 6 3.1.3运行可…...

全栈自动化测试技术笔记(一):前期调研怎么做

昨天下午在家整理书架&#xff0c;把很多看完的书清理打包好&#xff0c;预约了公益捐赠机构上门回收。 整理的过程中无意翻出了几年前的工作记事本&#xff0c;里面记录了很多我刚开始做自动化和性能测试时的笔记。 虽然站在现在的角度来看&#xff0c;那个时候无论是技术细…...

专家培养计划

1、先知道一百个关键词 进入一个行业&#xff0c;如果能快速掌握其行业关键词&#xff0c;你会发现&#xff0c;你和专家的距离在迅速缩短。 若不然&#xff0c;可能同事间的日常交流&#xff0c;你都会听得云里雾里&#xff0c;不知所云。 比如做零售&#xff0c;就要了解零售…...

583. 两个字符串的删除操作 72. 编辑距离

583. 两个字符串的删除操作 dp[i][j]:以i-1结尾的word1和j-1结尾的word2 变成相同字符串最少的步骤为dp[i][j] 初始化dp[i][0],dp[0][j]为空字符串和第一个字符匹配的最少步骤&#xff0c;即i/j&#xff0c;删除对应的字符个数。dp[i][0]i,dp[0][j]j; 遍历两个字符串。 若word1…...

[多线程进阶] 常见锁策略

专栏简介: JavaEE从入门到进阶 题目来源: leetcode,牛客,剑指offer. 创作目标: 记录学习JavaEE学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录: 1. 常见的锁策略 1.1 乐观锁 vs 悲观锁 1.2 读写…...

Scala - Idea 项目报错 Cannot resolve symbol XXX

一.引言 Idea 编译 Scala 项目大面积报错 Cannot resolve symbol xxx。 二.Cannot resolve symbol xxx 1.问题描述 Idea 内的 Scala 工程打开后显示下述异常&#xff1a; 即 Scala 常规语法全部失效&#xff0c;代码出现大面积红色报错。 2.尝试解决方法 A.设置 Main Sourc…...

信息化发展与应用的新特点

一、信息化发展与应用二、国家信息化发展战略三、电子政务※四、电子商务五、两化融合&#xff08;工业和信息化&#xff09;六、智慧城市 一、信息化发展与应用 我国在“十三五”规划纲要中&#xff0c;将培育人工智能、移动智能终端、第五代移动通信(5G)先进传感器等作为新…...

软件测试】测试时间不够了,我很慌?项目马上发布了......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 常见的几种情况&…...

MapReduce编程规范

MapReduce编程规范 MapReduce的开发一共有八个步骤,其中Map阶段分为2个步骤&#xff0c;Shuffle阶段4个步骤&#xff0c;Reduce阶段分为2个步骤。 Map阶段2个步骤 设置InputFormat类,将数据切分为Key-Value(K1和V1)对,输入到第二步。 自定义Map逻辑,将第一步的结果转换成另外的…...

Unity 如何实现游戏Avatar角色头部跟随视角转动

文章目录功能简介实现步骤获取看向的位置获取头部的位置修改头部的朝向限制旋转角度超出限制范围时自动回正如何让指定动画不受影响功能简介 如图所示&#xff0c;当相机的视角转动时&#xff0c;Avatar角色的头部会同步转动&#xff0c;看向视角的方向。 实现步骤 获取看向的…...

深度学习优化算法总结

深度学习的优化算法 优化的目标 优化提供了一种最大程度减少深度学习损失函数的方法&#xff0c;但本质上&#xff0c;优化和深度学习的目标不同。 优化关注的是最小化目标&#xff1b;深度学习是在给定有限数据量的情况下寻找合适的模型。 优化算法 gradient descent&#xf…...

CMake详细使用

1、CMake简介CMake是一个用于管理源代码的跨平台构建工具可以方便地根据目标平台和编译工具产生对应的编译文件主要用于C/C语言的构建&#xff0c;但是也可以用于其它编程语言的源代码。如同使用make命令工具解析Makefile文件一样cmake命令工具依赖于一个CMakeLists.txt的文件该…...

【数据结构与算法】前缀树的实现

&#x1f320;作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《数据结构与算法要啸着学》 &#x1f387;座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录&#x1f449;…...

canvas 制作2048

效果展示 对UI不满意可以自行调整&#xff0c;这里只是说一下游戏的逻辑&#xff0c;具体的API调用不做过多展示。 玩法分析 2048 的玩法非常简单&#xff0c;通过键盘的按下&#xff0c;所有的数字都向着同一个方向移动&#xff0c;如果出现两个相同的数字&#xff0c;就将…...

playwright: 全局修改页面等待超时时间

等待超时时间默认是30s, 可以通过以下几个方法设置&#xff1a; browser_context.set_default_navigation_timeout()browser_context.set_default_timeout()page.set_default_navigation_timeout()page.set_default_timeout() set_default_navigation_timeout set_default_n…...

C++类和对象(中)

✨个人主页&#xff1a; Yohifo &#x1f389;所属专栏&#xff1a; C修行之路 &#x1f38a;每篇一句&#xff1a; 图片来源 I do not believe in taking the right decision. I take a decision and make it right. 我不相信什么正确的决定。我都是先做决定&#xff0c;然后把…...

Docker安装EalasticSearch、Kibana,安装Elasticvue插件

使用Docker快速安装部署ES和Kibana的前提&#xff1a;首先需要确保已经安装了Docker环境。 如果没有安装Docker的话&#xff0c;先在Linux上安装Docker。 有了Docker环境后&#xff0c;就可以使用Docker安装部署ES和Kibana了 一、安装ES 1、拉取EalasticSearch镜像 docker p…...

算法训练营 day39 贪心算法 无重叠区间 划分字母区间 合并区间

算法训练营 day39 贪心算法 无重叠区间 划分字母区间 合并区间 无重叠区间 435. 无重叠区间 - 力扣&#xff08;LeetCode&#xff09; 给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量&#xff0c;使剩余区间互…...

c/c++开发,无可避免的文件访问开发案例

一、缓存文件系统 ANSI C标准中的C语言库提供了fopen, fclose, fread, fwrite, fgetc, fgets, fputc, fputs, freopen, fseek, ftell, rewind等标准函数&#xff0c;这些函数在不同的操作系统中应该调用不同的内核API&#xff0c;从而支持开发者跨平台实现对文件的访问。 在Lin…...

MySQL学习笔记

MySQL学习笔记一、基础配置二、数据库操作三、表的操作1.创建表2.表选项3.查看表4.修改表5.删除表6.复制表7.检查优化修复表四、数据操作基础增删改查五、字符集编码六、数据类型&#xff08;列类型&#xff09;1.数值类型2.字符串类型3.日期时间类型4.枚举和集合七、列属性&am…...

ccs导入工程失败的处理方法

文章目录当导入CCS新工程时出现下述错误怎么办&#xff1f;方法一 从TI官网下载安装包进行安装&#xff0c;下载链接&#xff1a;软件下载完成 安装路径为上面的文件夹点击安装完成后&#xff0c;导入安装路径&#xff0c;并点击Refresh按钮&#xff0c;依据路径进行更新&#…...

探针台常见的故障及解决方法

症状、 可能原因、 解决方法 移动样品后画面变模糊 —显微镜不垂直&#xff0c;调垂直显微镜 样品台不水平 —调水平样品台 显微镜视场亮度不足&#xff0c;边缘切割或看不到像—转换器不在定位位置上 把转换器转到定位位置上 管镜转盘不在定位位置上 —把管镜转盘转到定…...

域内资源探测

✅作者简介&#xff1a;CSDN内容合伙人、信息安全专业在校大学生&#x1f3c6; &#x1f525;系列专栏 &#xff1a;内网安全 &#x1f4c3;新人博主 &#xff1a;欢迎点赞收藏关注&#xff0c;会回访&#xff01; &#x1f4ac;舞台再大&#xff0c;你不上台&#xff0c;永远是…...

c# 将数据导出到EXCEL文件

第一步&#xff1a;项目中加入引用。 在鼠标右击项目&#xff0c;点击【添加】弹出菜单列表&#xff0c;选择【项目引用】弹出【引用管理器】对话框&#xff0c;选择【COM】-【Microsoft Excel 16.0 Object Library】&#xff0c;如图所示&#xff1a; 第二步&#xff0c;编辑…...

微服务 分片 运维管理

微服务 分片 运维管理分片分片的概念分片案例环境搭建案例改造成任务分片Dataflow类型调度代码示例运维管理事件追踪运维平台搭建步骤使用步骤分片 分片的概念 当只有一台机器的情况下&#xff0c;给定时任务分片四个&#xff0c;在机器A启动四个线程&#xff0c;分别处理四个…...

批量占满TEMP表空间问题处理与排查

批量占满TEMP表空间问题处理与排查应急处置问题排查查看占用TEMP表空间高的SQL获取目标SQL执行计划方法一&#xff1a;EXPLAIN PLAN FOR方法二&#xff1a;DBMS_XPLAN.DISPLAY_CURSOR方法三&#xff1a;DBMS_XPLAN.DISPLAY_AWR方法四&#xff1a;AUTOTRACE数据库跑批任务占满TE…...

网站开发公司创业/嘉兴seo外包公司

把部分视图转换为html字符串&#xff0c;你可以参考下面的方法&#xff1a; public static string RenderPartialViewToString(Controller controller, string viewName, object model){controller.ViewData.Model model;try{using (StringWriter sw new StringWriter()){Vie…...

国外的建筑设计案例网站/营销模式有哪些 新型

原文地址为&#xff1a; R语言数据文件读写R语言数据储存与读取 1 首先用getwd() 获得当前目录&#xff0c;用setwd("C:/data")设定当前目录 2 数据保存 创建数据框d >d <- data.frame(obs c(1, 2, 3), treat c("A", "B", "A&qu…...

烟台网站建设诚信臻动传媒/怎么去推广自己的网站

一、相关内存概念在这篇笔记开始之前&#xff0c;我们需要对以下概念有所了解。1.操作系统中的栈和堆注&#xff1a;这里所说的堆和栈与数据结构中的堆和栈不是一回事。我们先来看看一个由C/C/OBJC编译的程序占用内存分布的结构&#xff1a;C:C:OBJC编译的程序占用内存分布的结…...

网站建站制作价格/网站的seo优化报告

像任何其他产品一样&#xff0c;钟表设计代表了设计师的才华。人们厌倦了经典的钟表&#xff0c;出现在每一个房子&#xff0c;看起来都是相同的。这就是为什么一群有才华的设计师尽最大努力改变这一点&#xff0c;他们的创作都很优秀。相信你会很期待这些类型的时钟挂在墙上是…...

wordpress内容页主题修改/百度站长平台链接

一、RabbitMQ简述与其docker安装 这里主要讲解实战整合rabbitMQ&#xff0c;了解RabbitMQ简述与其docker安装请点击&#xff1a;传送门 二、springboot整合rabbitMQ 1.新建springboot项目 2.pom:主要添加以下两个依赖 <dependency><groupId>org.springframework.bo…...

建设银行网站的登录验证程序安全吗/广州网站优化公司

“ 摘要:本文主要讲述基于代价的优化器中代价估算模型的设计。主要内容如下:概述查询代价估算单表扫描代价索引两表连接算法Mysql代价模型的实现方式结论”01—概述基于代价的优化器引擎可能面临的问题和挑战如下。从可选的单表扫描方式中&#xff0c;挑选什么样的单表扫描方式…...