R4bb1t的ctf博客


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

2020 i春秋高校战疫分享赛 pwn 部分题解

发表于 2022-02-14 | 分类于 ctf

Shortest_path

这题的非预期有点严重了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void *sub_400946()
{
FILE *stream; // [rsp+8h] [rbp-8h]

setbuf(stdin, 0LL);
setbuf(stdout, 0LL);
stream = fopen("./flag", "r");
if ( !stream )
exit(0);
fgets(s, 45, stream);
fclose(stream);
memset(free_flag, 0, 0x320uLL);
memset(qword_606920, 0, 0x640uLL);
return memset(ptr, 0, 0x640uLL);
}
阅读全文 »

2020bytectf

发表于 2022-02-14 | 分类于 pwn

gun

1

保护全开,且沙箱限制了只能使用open,read,write,exit4个函数

总共有3个功能,买子弹,上膛,发射,购买时可以给子弹命名,发射时会输出 子弹名字

1
2
3
4
5
1.Shoot
2.Load
3.Buy
4.Exit
Action>
阅读全文 »

2020nu1lctf

发表于 2022-02-14 | 分类于 pwn

easywrite

程序保护全开,给了libc,有个任意地址写,然后再malloc(0x30) read and free(ptr)

利用思路:写tcache_ptr,修改tcache[0x40] 为 free_hook-0x10,之后覆盖free_hook-0x10为”/bin/sh\x00”,free_hook为system;free(ptr) get shell

1

阅读全文 »

2020强网杯

发表于 2022-02-14 | 分类于 ctf

部分转自师弟

baby_diary

delete跟show没问题,在add功能中溢出一个字节

1

该flag的范围为[0~0xf],所以可以当一个off-by-null来做

难点在于堆块的构造和pre_size的伪造

1、堆块的构造,利用large bin和unsorted中残留的堆地址操作

2、pre_size,先off-by-null(需要堆内容全为’\x00’),再free后重新申请利用flag写入pre_size

具体步骤解释看exp注释

阅读全文 »

2020纵横杯 pwn writeup

发表于 2022-02-14 | 分类于 pwn

wind_farm_panel

堆溢出,没有free,house of orange 一把梭

阅读全文 »

IO_FILE泄露libc

发表于 2019-09-21 | 分类于 ctf

最近经常遇到没有show函数的堆了,吃了不少没有地址的亏,在这里记录一下泄露的方法

其实主要思路就是修改stdout的flag位为0xfbad1800,并且将_IO_write_base的最后一个字节改小,从而实现多输出一些内容,这些内容里面就包含了libc地址。

为什么flag要改成0xfbad1800,看源码:

阅读全文 »

pwnable.tw系列

发表于 2019-07-03

calc

不愧是pwnable,质量果然高,学到了不少姿势,看题目很明显程序是一个计算器,但漏洞点在哪,着实让我这个小菜鸡绞尽脑汁,起初试图独自解决,最后还是迫于现实膜一了波大佬的write up 。

程序分析

保护

开启了canary 跟NX

阅读全文 »
1…67
R4bb1t

R4bb1t

67 日志
10 分类
6 标签
RSS
友链
  • Xi4or0uji
  • V1ctor
  • 23r3f
  • zs0zrc
  • ditto
  • ch4r1l3
  • 知世
© 2022 R4bb1t
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4
0%