随笔分类 -  CTF 网安夺旗

摘要:#Canary 绕过 ###checksec 64 位程序,libc2.23,开启 Canary 和 NX 保护 手玩一下发现逻辑不难懂,可以创建和删除一个 storage,或者变更它的 card 数量 ###IDA 首先看一下选项 1 的 sub_400805() 函数,第十五行有明显的格式化字符 阅读全文
posted @ 2021-05-08 17:52 暖暖草果 阅读(594) 评论(1) 推荐(0)
摘要:附件链接 请首先阅览原解法:https://mp.weixin.qq.com/s/lyucQMjQTs4AwEc4EpYKPQ 以下解法仅使用了 volatility: 使用 imageinfo 插件获取内存文件基本信息,分析出是哪个操作系统 volatility -f windows.vmem i 阅读全文
posted @ 2021-04-12 21:38 暖暖草果 阅读(258) 评论(0) 推荐(0)
摘要:#被嗅探的流量 题目链接 问题:黑客的攻击ip是多少? 在流量包里搜索字符串 flag{ ,在一条图片上传记录里找到 flag 明文 #大流量分析(一) 题目链接 附件是不同时段的流量包,打开后发现 Soure IP 以 B 类地址的私有段(内网)为主,考虑流量包是黑客的攻击流量 于是关注 Dest 阅读全文
posted @ 2021-02-14 14:58 暖暖草果 阅读(4121) 评论(0) 推荐(0)
摘要:原文链接:https://zhuanlan.zhihu.com/p/346617073 这篇文章会从一个程序员角度,去谈守望先锋的外挂技术问题。 守望先锋外挂泛滥这个话题热度一直居高不下,到目前游戏环境日益变差,玩家们也是人心惶惶,杯弓蛇影。但凡在日常竞技中遇到操作离谱或者高于当前分段的准度,都觉得 阅读全文
posted @ 2021-01-29 10:01 暖暖草果 阅读(1575) 评论(2) 推荐(0)
摘要:#静态分析 ###查看保护机制 ###IDA分析 存在有限栈溢出,可以输入 0xE0 字节的数据,而 s 在栈上只有 0xD0 的空间 由于没有开启 Canary,常规做法是 ROP,但是由于溢出字节长度的限制,需要进行一次栈迁移再进行 栈迁移的核心思路是把 esp&ebp 寄存器的地址改到到一个可 阅读全文
posted @ 2021-01-18 10:30 暖暖草果 阅读(713) 评论(0) 推荐(0)
摘要:House of force 算是比较容易理解的堆利用手法,本题主要是一个裸的 HOF,但是因为各种各样的错误调了整整两个晚上才在打通,身心俱疲,有点丧失继续学 pwn 的信心了,还是记录一下 静态分析 checksec 查壳,保护全开 由于开了 FULL RELRO ,不能劫持 GOT 表,考虑用 阅读全文
posted @ 2020-12-14 21:14 暖暖草果 阅读(614) 评论(0) 推荐(0)
摘要:#代码混淆技术:控制流平坦化 OLLVM(Obfuscator-LLVM) 是瑞士西北应用科技大学安全实验室于2010年6月份发起的一个项目,该项目旨在提供一套开源的针对 LLVM 的代码混淆工具,以增加对逆向工程的难度。 github: https://github.com/obfuscator- 阅读全文
posted @ 2020-12-03 20:07 暖暖草果 阅读(1100) 评论(0) 推荐(0)
摘要:第十三届全国大学生信息安全竞赛-创新实践能力赛 Build 环节 完整包下载 赛题设计说明 题目信息: 题目名称: carpet(地毯) 预估难度: 中等偏易 题目描述: 本题属于 Reverse 类型,核心考点是算法设计能力。 程序在给 64x64 出平面中不能覆盖的方格之后,做题者需要构造 13 阅读全文
posted @ 2020-11-20 16:56 暖暖草果 阅读(254) 评论(0) 推荐(0)
摘要:Off by One 造成 Extend Chunk,分配和删除后造成 Chunk overlapping 泄露 libc 地址,用 Fake Chunk 写入 __realloc_hook 和 __malloc_hook 调整栈帧并执行 one_gadget #静态分析 Off by One in 阅读全文
posted @ 2020-11-20 09:47 暖暖草果 阅读(397) 评论(0) 推荐(0)
摘要:#静态分析 checksec 查看保护机制: Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: PIE enabled 运行程序: Baby Heap in 2017 1. Allocate 阅读全文
posted @ 2020-11-09 19:32 暖暖草果 阅读(2729) 评论(0) 推荐(2)
摘要:BUUCTF 上的题目,由于部分环境没有复现,解法是非期望的 house of spirit 第一次接触伪造堆的利用方式,exp 用的是 Pwnki 师傅的,本文为调试记录及心得体会。 逆向分析的过程请见超链接,下面是我加了注释后的 exp: from pwn import * #p = proce 阅读全文
posted @ 2020-10-08 16:16 暖暖草果 阅读(955) 评论(1) 推荐(1)
摘要:#静态分析 首先 checksec 查壳,存在 Canary 保护 拉入 IDA ,定位到 main() 函数: 很明显两个 read() 存在栈溢出,并且 printf() 会输出第一次读入的内容 考虑用第一个 read() 泄露 [ebp+var_8] 位置的 Canary 值并保存 泄露的具体 阅读全文
posted @ 2020-10-01 11:07 暖暖草果 阅读(367) 评论(0) 推荐(0)
摘要:来自战队:@驴肉火烧 #签到 附件下载 题目给出一张图片,提示观色,预计可能是将信息隐藏在某一色道中或 LSB 隐写 将给出的图片导入 StegSolve.jar,在 red plane 1 中发现半个 flag 利用 Frame Browser 对图片进一步分析可以分离出第二张图片, 同样在 re 阅读全文
posted @ 2020-08-08 07:07 暖暖草果 阅读(866) 评论(1) 推荐(0)
摘要:题目链接 checksec 检查,没有什么特别的保护机制 IDA 加载,main() 函数内容如下: int __cdecl main() { int buf; // [esp+4h] [ebp-14h] char v2; // [esp+Bh] [ebp-Dh] int fd; // [esp+C 阅读全文
posted @ 2020-07-27 15:47 暖暖草果 阅读(842) 评论(1) 推荐(1)
摘要:题目链接 #静态分析 Canary 与 NX 保护机制开启,使用 IDA 64bit 分析,main() 内容如下 输入选项为 1 时调用 sub_400960() 函数(栈溢出漏洞) 输入选项为 2 时调用 sub_4008EB() 函数(格式化字符串漏洞) 搜索字符串发现 sub_4008DA( 阅读全文
posted @ 2020-07-03 09:02 暖暖草果 阅读(350) 评论(0) 推荐(0)
摘要:题目地址 #静态分析 拿到附件,首先 checksec 一下 运行发现这是一个求算数平均数的小工具,界面看起来十分友好 拉到 IDA 里静态分析一下,在六十多行发现疑似可利用点 数组 v13 的索引 v5 是我们输入的,所以等于说我们控制了栈上任意位置 加上每个选项都可以无限循环,可以进行注入,但由 阅读全文
posted @ 2020-06-29 15:41 暖暖草果 阅读(277) 评论(0) 推荐(0)
摘要:这道题对我来说还是挺难的,做了很久很久吧,差点砸电脑,还好最后AC了,现记录一下过程。 附件下载 反汇编分析 查一下保护机制,只开了 NX main() 函数里是 socket 网络编程的内容,看起来不太需要分析,于是进入其调用的 handle() 函数 逻辑似乎和逆向题差不多,每次输入一个字符串后 阅读全文
posted @ 2020-05-13 20:26 暖暖草果 阅读(412) 评论(0) 推荐(0)
摘要:题目地址 静态分析 无壳 PE 文件,拖入 IDA 反汇编,结构如下: 主函数 12 和 26 行的 显然是输出函数,21 25 行的 是字符串比较的过程, 看来还是一个输入 flag 加密验证正确性的模型 容易发现19行的 是加密函数,进入分析: sub_401080 主体的代码比较熟悉,是bas 阅读全文
posted @ 2020-04-25 22:12 暖暖草果 阅读(2125) 评论(1) 推荐(1)
摘要:#快速索引 ###高等数学A2 2020/2/25 第一次课 1.1 微分方程的基本概念 1.2 可分离变量的微分方程 ###高等数学A2 2020/2/27 第二次课 1.3 齐次方程 1.4 一阶线性微分方程 ###高等数学A2 2020/3/3 第三次课 1.5 ​可降阶的高阶非分方程 1.6 阅读全文
posted @ 2020-04-21 12:01 暖暖草果 阅读(1011) 评论(0) 推荐(0)
摘要:题目地址 静态分析 main 函数里面都是提示消息,从函数名可以看出要待分析内容在 Decry() 内 上图是程序进行初始化,strcpy() 和 strcat() 分别是 C 的字符串拷贝和连接函数我们已经很熟悉了 进入自定义函数 join() 内,发现其功能便是拼接传入的两个字符串 于是我们把分 阅读全文
posted @ 2020-04-10 12:41 暖暖草果 阅读(1021) 评论(1) 推荐(0)