cicsn国赛初复赛
文章平均质量分 83
cicsn国赛初复赛
看星猩的柴狗
联系方式qq:3592569640 欢迎各位师傅交流学习
IT爱好者一枚,菜狗CTF-PWN手,记录自己的学习经历,请大佬多多指点
2022/9-2023/7:算法
2023/8-2023/9:web/渗透测试
2023/10-至今:pwn
展开
-
2024 cicsn 西南赛区 半决赛
不能联网搜是真坐牢本来想等着全写了再发的,但qeme卡到某个地方了,想发出来看看有没有师傅有想法欢迎留言,自己准备再学学做做其他qeme题看能不能找到思路,链式前向星的基本思想是为图中的每个顶点维护一个链表,链表中的每个节点代表从该顶点出发的一条边,节点中通常存储目标顶点编号以及边的权值(如果有)。这样,每个顶点的邻接点可以通过遍历链表快速访问。int to;// 目标顶点编号int weight;// 边的权值,可选,对于无权图可以忽略int next;// 指向下一条边的指针,构成链表。原创 2024-06-24 11:41:33 · 931 阅读 · 0 评论 -
2024 cicsn ezbuf
add会检查索引,然后根据索引分配会固定得到0x40大小的chunk,并且会把whatcon的内容赋值过去,10次delete,会检查索引范围,和对应索引的chunk是否为空,但free后没有清零,3次show。会在会检查索引范围,和对应索引的chunk是否为空,并且在whatsthis == '\xFF’和 whatsize == 48都不满足会打印出chunk的内容。当时压根不知道用了protobuf这个玩意,提取工具也没提取出来,还是做题做太少了,很多关键性的结构都没看出来是protobuf。原创 2024-06-08 20:06:23 · 785 阅读 · 6 评论 -
2024 cicsn SuperHeap
我们要使得分配到一个非tcache大小的chunk,然后不是来自bin中的,然后free后能够进入unsortedbin,再通过溢出填充然后能够泄露,接下来分配book_struct不会来自bin中,由于是通过内容溢出,所以内容的chunk也要不来自bin,连着两个就可以实现第一个的内容溢出到第二个的内容。然后泄露libc基地址,虽然有很多无用的已经free掉的chunk干扰,但我们可以使得要构造的堆布局的大小不符合已经free的chunk就行,至于一些不会用到的堆布局的堆,我们让他依然来自bin就行了。原创 2024-06-07 23:07:12 · 1051 阅读 · 0 评论 -
2024 cicsn magicvm
最后没有指令可以执行vm::run退出会执行之前写入的rop,最后这里加个ret是system执行时候对齐。vud和改变值不是立即如果解析得到vid之后改变值(之前的指令到达mem步),那么就可以绕过vid检查。存在延迟,有个依赖关系,各个结构体的isvalid变量,代表前一步是否执行完。往database在vm结构体所在地址写入栈的返回地址所在地址。控制到database在vm上的位置。得到environ内的栈地址。泄露database的地址。泄露environ地址。写入system地址。原创 2024-06-02 23:34:14 · 1209 阅读 · 0 评论 -
2024 cicsn Ezheap
0x80个chunk,遍历选一个没有被用的,输入的size<0x501,然后malloc后会清零安装输入的size,然后输入内容,长度也是输入的size。指定索引,并判断是否存在,然后输入size<0x501,再往索引对应的chunk输入size长度内容,这里存在越界读。堆题开启沙盒会出现一堆被malloc和free的堆,要着重过滤下。指定索引,并判断是否存在,然后输出索引的chunk内容。指定索引,并判断是否存在,然后free和清零。原创 2024-06-01 17:37:17 · 807 阅读 · 0 评论 -
2024 cicsn orange_cat_diary
一次free和一次show,可以修改超过创建定义的长度多八个字节,存在edit after free 和show after free。题目提示orange,libc2.23 没有检查得到的fastbin中的chunk的size是否对齐,为0x7f也可以得到其中的chunk。原创 2024-05-30 21:23:49 · 378 阅读 · 0 评论 -
2024 cicsn gostack
Go语言中的切片是一种动态数据结构,可以看作是对底层数组的封装,包含指向数组的指针、长度和容量三个要素。错误起始于尝试写入一个非常长的字符串到缓冲区时,这个操作在内部触发了切片扩容,但由于字符串过长,导致扩容失败。会尝试构建一个缓冲区来存放格式化后的字符串,如果字符串过长导致所需缓冲区的容量超过了Go所能支持的最大值,就会引发“cap out of range”的错误。这里,程序试图格式化输出一个很长的字符串(你的输入),但在构建输出缓冲时遇到了容量限制问题。打印这个字符串时,就可能会遇到上述错误。原创 2024-05-29 23:49:43 · 633 阅读 · 0 评论