ISCTF赛后总结

初涉CTF:一次比赛的反思与学习总结
作为新手参加CTF比赛,主要涉及Web、Crypto、Reverse和Misc等领域。在Web中依赖队友,Crypto通过交叉解密获取flag,Android和Misc题目通过逆向和解码技术解题。Pwn方面,学习了栈溢出和利用,但还需加强基础知识。总结下来,发现自己在pwn和逆向分析方面还需大量练习,未来将重点提升这些技能。

学了一个月的菜鸡,第一次打ctf比赛,感觉自己实在太菜了,总结总结经验。

Web

跟着队友混,队友Web贼强,Web全AK.

CRYPTO

弯弯曲曲的路

不合格的pwn手竟然拿到密码题的一血。。。

题目描述:一只古典的蓝鲨从一条路的尽头上下上下上的走过了弯弯曲曲的小路上,并且经过了5棵树还有5个银行。

打开下载的文件,文件名为zip格式提示用zip格式打开解压缩。

 根据题目描述,应该是5组,每组5个

 分组后仔细观察,发现flag是交叉式的。

ISCTF{Welc0nne_@To_I5CTF}

rsa

这道题做了半天没做出来,用了RSAtools失败了,用知乎上一位大神的方法做出来是一堆奇怪的东西

转载自知乎--CTF---RSA解密学习指南(二) - 醉清风的文章 - 知乎 https://zhuanlan.zhihu.com/p/76017554

 

 ANDROID

猜数字

打开app发现做题要做很久。。用ida打开,找到了分散的flag

Reverse

简单的re

ida打开,发现一个奇怪的函数叫catflag,点进去找到flag

Reverse-Easy_JAR

这道题一开始摸不着头脑为啥是jar,后来知道还有个逆向叫java逆向。用java逆向工具打开伪代码即可得到flag。

MISC

女神的嘲讽

Ook解码

 Brainfuck/Ook! Obfuscation/Encoding [splitbrain.org]在线Ook解码网站

看上去应该是base64解码,

 你下载的真的是图片吗?

解压后记事本打开

 

发现有个文件叫I_am_here,PS打开啥也没找到,上网搜了搜尝试用网上的方法

需要安装binwalk 和foremost

sudo apt install binwalk

binwalk跑一下发现多个图片

binwalk 文件名

foremost

sudo apt install foremost

用法和binwalk相同,分立后得到一张迪迦奥特曼的照片,上有flag

Misc签到

base64解码

我裂开了

用PS工具合并图层,得到flag

简单图片隐写术

txt文本文档打开,在末尾发现flag

登录流量分析

这道题要用到wireshark分析pcapng文件,追踪http流,从中寻找得到flag

easy_osint

百度识图解一下,找到一个地方叫金碧广场。。

Welcome To ISCTF World

我的世界打开。。。找到flag

PWN

作为一个菜鸡pwner,这次比赛让我意识到了自己的pwn有多菜,pwn门槛之高,还有pwn输出在一个队伍中的重要作用。

好吧我菜,我只打出来2道题目

杰哥的nc

 传入/bin/sh命令

这里的scanf("%s,&cmd")与scanf("%s,cmd")不同,前者是取地址,所以需要的就是把/bin/sh命令写入地址然后执行。

 救救小肥鲨吧

32位IDA打开help_my_shark,找到main函数

main函数中的func函数调用了-559038737这个参数

打开func函数

gets函数是很常见的栈溢出漏洞,函数调用结束时返回的result值,决定了是否能 控制靶机

 

 很明显func调用的参数和返回system命令需要的a1是明显不同的,点开a1发现a1的位置在栈的末尾,也就是说可以通过栈溢出覆盖变量的方式解决

这里s表示栈基址,r表示函数返回地址。

需要覆盖arg_0的话,偏移量为48.(0x08+0x28)

这里吸取了一个教训,发现逐行输入不是很好用,以后要学会用编译器写脚本

得到flag。 

后面的几道题,有一道是canary绕过,不会。。。。

总结一下自己pwn的能力还是太差,首先要加强自己逆向程序的动力,自己对于静态分析和动态调试的能力还不是很强,还有就是栈的结构和函数调用过程不是很懂,下一步要做的就是一个是学好pwn的知识,多学学ctfwiki\《汇编语言》《程序员的自我修养》这几本书,关键还是在于把基础打牢,另外reverse的基础也不能丢掉。

总结一下这次比赛,jeff的web很强,我的pwn还是不是很好。虽然自己很菜,但是这次比赛让我更加了解了ctf,感受到了ctf的乐趣,还能看出自己有哪些不足,往后的日子要继续加油。

### 智能物流搬运小车比赛总结与经验分享 #### 1. 硬件选型的重要性 在智能物流搬运小车比赛中,硬件选型是决定性能的关键因素之一。例如,陀螺仪的选择对车辆的稳定性至关重要[^2]。早期尝试使用九轴陀螺仪时,由于地磁传感器受室内环境影响较大,导致动态精度不足,甚至无法正常工作。相比之下,单轴陀螺仪HWT101DT表现出更高的稳定性,能够在三分钟的比赛时间内保持无漂移状态,显著提升了车辆的直线行走能力。 #### 2. 机械结构优化 机械结构的设计直接影响到小车的整体性能和稳定性。合理设计底盘结构和承重分布可以避免后续通过电控进行弥补的时间浪费[^3]。例如,在比赛中发现小车加装机械臂后重心前移,导致左右行走偏差较大,通过调整四个轮子的摩擦力一致性问题得以解决。此外,机械臂类型、重心位置以及整体美观性也需要提前规划,以减少调试阶段的压力。 #### 3. 控制算法的选择 控制算法的设计需要结合硬件特性进行优化。如果硬件条件有限,可以通过编写复杂的巡线算法来补偿硬件不足。然而,这种方法通常会耗费大量时间和精力。因此,建议优先选择高质量的传感器,并在此基础上开发简单高效的控制算法。例如,使用高精度陀螺仪配合简单的Z轴角度闭环控制即可实现良好的直线行走效果。 #### 4. 视觉模块的应用 视觉模块的选择取决于预算和技术能力。OpenMV和K210因其低成本和易用性成为入门级选手的首选,但其性能受光线条件限制较大[^4]。对于具备更高预算和技术能力的团队,推荐使用OpenCV等更强大的视觉处理工具。无论选择何种方案,都需要充分考虑实际比赛环境中的光照条件,并进行针对性的优化。 #### 5. 调试与时间管理 比赛现场的调试时间通常受到严格限制,因此赛前的充分准备尤为重要[^3]。建议在日常训练中模拟比赛场景,确保所有功能模块能够在规定时间内完成调试。同时,考虑到比赛过程中可能出现的各种意外情况,应提前制定应急预案,以便快速应对突发问题。 ```python # 示例代码:基于陀螺仪的Z轴角度闭环控制 import time def gyro_control(gyro, target_angle): kp = 0.5 # 比例增益 ki = 0.1 # 积分增益 kd = 0.05 # 微分增益 error = 0 integral = 0 derivative = 0 previous_error = 0 while True: current_angle = gyro.get_z_angle() error = target_angle - current_angle integral += error derivative = error - previous_error output = kp * error + ki * integral + kd * derivative previous_error = error # 根据输出值调整电机速度 adjust_motor_speed(output) time.sleep(0.01) def adjust_motor_speed(output): # 实现具体的电机速度调整逻辑 pass ``` #### 6. 团队协作与经验积累 比赛不仅是技术实力的较量,更是团队协作能力的考验。建议团队成员明确分工,各司其职,同时保持良好的沟通与协作。此外,赛后应及时总结经验教训,形成书面报告,为下一届比赛提供参考。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值