宇宙安全声明
⚠⚠⚠由于相关题目稀缺难以收集,以下为部分题解。题目可能会缺失,欢迎也恳请有资源者补充相关题目。同时因为没法验证答案,可能存在错误,如有问题敬请批评指正。PHP反序列化。构造以下代码。得到payload。常规Pwn题目,典型的板子题目。检查checksec和seccomp,查看伪代码。注意到No PIE,这对解题有用。虽然没有过滤execve,但是直接执行execve("/bin/sh", 0, 0)是不可行的。因为执行中同样适用read被禁用的规则,而执行必然调用read。符合以下特征。对于符合此类特征的题目,直接使用模板即可。与此类似的题目例如NepCTF 2025 smallbox。【参考1、参考2】区别是原题的子进程可执行地址是由mmap固定分配的,而此题的子进程可执行地址可借用原始代码段(回顾:No PIE)。整体逻辑较为简单,但有部分要点需要强调。Q1: 为什么使用汇编获取pid?在本题中,pid是被直接输出的,因此可以通过io获取。但是考虑到通用性,有时题目不会输出pid,但以上结果可能被暂存在堆栈或寄存器中,因此使用汇编获取。此外,若采用将pid嵌入汇编源码的方式,由于asm每次汇编需要时间,而相同代码汇编可以利用缓存,为提高效率,防止超时,使用固定寄存器也是合理的。Q2: 为什么前置b"\x90" * 2,并跳转到fork_exec_addr + 2?原题中没有体现这点,不完成这一操作也可打通。但此题有相当大概率不行。关键原因在于是否存在系统调用。原题是死循环,未涉及系统调用。而本题则包含系统调用。这到底意味着什么呢?这里涉及到Linux代码追溯至0.12版本(1992年,非常早,当时Linux还是按版本而非补丁发布)开始引入的代码行为。例如本题,如果中断在系统调用之间,则会回退2字节,例如原题,如果不中断在系统调用之间,则无此烦恼。为了使得代码通用,我们前置b"\x90" * 2,并跳转到fork_exec_addr + 2。【参考】经典RSA题目。关注到n1和n2有最大公因数p,然后可得到q1、q2。得到前半部分结果flag="flag{d963aed3-87d3"。好的,题目也不知道哪里拼来改的,我也不知道给出的r是个啥。也就是给出N、e、enc、g要求m。此题为共素数RSA。【参考】直接使用文章中的脚本。先简单计算下相关的参数,判断符合文章“1.3.3. 已知 g”一节中“g < a + b”的情况。稍微扩大范围。得到p、q后直接解密即可。得到后半部分结果-11f0-88f5-7cb56648c636}。简单Reverse题目。换表Base64。流量分析题目,套娃公钥密码。开幕雷击。上传了木马shell.php。题目把密码rebeyond给我们了。提前准备CyberChef解密请求体。提前准备CyberChef解密响应体。使用过滤器http.request.method == POST && http.request.uri contains shell.php,结果如下。遇到混淆流量,追踪HTTP流可能会有问题,故追踪TCP流。逐条分析,主要包括连接验证流量、系统信息流量、列举目录流量、下载文件流量(下载文件为/Users/g0fl1er/website/train/upload/d41d8cd98f00b204e9800998ecf8427e/data.zip,保存文件后续分析)、校验文件流量(文件哈希c8f82d835a75f23c)。data.zip内容如下。hint.txtpublickey1.pempublickey2.pem使用以下CyberChef recipe。得到:在PEM中,上面的为模数,下面的为指数。或者使用脚本也可自动解析这一点。在Misc题目里面塞Crypto题目是令人无语的。已知n1、n2、e。小伙伴们可能会问,能解?嘿,还别说,出题人设计了n1、n2有相同的d。别问,问就是出题人也没说,问就是做题经验,反正我没有。【参考】先用SageMath跑出d。直接用上述文章中的脚本。再根据n、e、d求出p、q。借用不知何处找来的脚本。按照hint.txt计算即可。咱也不知道他的p、q分别是啥。一般认为p > q吧……简单Misc题目。修复PNG图片宽高。修复后:图中可见flag。由于是资源整合文章,照搬照抄了众多脚本,许多来源已经不可考。总有一天我要不做脚本小子/(ㄒoㄒ)/以下列出我能够找到ID的,按照首次出现在本文的顺序排序。<?php
---
来源: 看雪论坛
原文链接: https://bbs.kanxue.com/thread-289412.htm
[原创]网络安全行业职业技能大赛部分题解
254 浏览
1 回复
感谢分享????