singout
一道nc连接的题目,主要是禁用了一些获取flag的指令。借鉴了一些wp,有以下方法:
|
感觉挺奇特的
[NISACTF 2022]ezheap

这里申请了两个堆块s与command,存在gets函数会形成堆溢出,system函数会执行command堆块的内容,那么这里的想法就是造成堆溢出从s堆块溢出到command块并写入/bin/sh

这是gets前申请的s堆块与command堆块里面的内容,可以看出我们需要输入28字节大小的内容,再输入command堆块的size,就可以覆盖command堆块里面的内容。

这是gets后的两堆块里面的内容,可以看出确实将command堆块里面的内容覆盖为了/bin/sh字符串,此时再执行system(command)就能获取shell。
|
FSCTF nc
ban了cat、flag、sh、$0,也关闭了输出流,但我们可以通过其他方式获得flag,比如用tac fl*命令并重定向到输入或错误流即可。
[GDOUCTF 2023]真男人下120层
这道题是一道随机数的题目,其实挺简单的,这里我选择的是自己生成相应的随机数
|
|
[NISACTF 2022]UAF
一道堆题目,做的第一道UAF,比较简单,但是因为刚接触堆,所以还是一步一步的认真写一下解题过程。

该程序实现了创建、编辑、删除与展示的功能。

在del函数中,进行了free了相应的内存块后,并没有将对应的指针设置为NULL,因此这里存在UAF漏洞。

在show函数中,有这么一段代码,在这里一步一步分析
|
void (__cdecl *)(char *)这是将page的指针类型强制转换为指向函数指针的指针
这是一个函数指针的声明,其中__cdecl是一个调用约定,这指向的是一个返回类型为void、参数为char*的函数。
2. ```
(void (__cdecl **)(char *))page(void (__cdecl **)(char *))page+1解引用得到实际的函数指针,并调用该函数传入page作为参数
对转换后的指针+1,移动到下一个函数指针的位置,相当于访问的是函数指针数组的第二个元素
4. ```
(*((void (__cdecl **)(char *))page + 1))(page);
其实简单来说就是调用一个带参数的函数。

存在后门函数,那么可以利用上面那个调用该函数并获取shell。我们就有一个想法,将NICO函数写入到page[1],将/bin/sh写入page[0],但这里存在一个问题,就是edit函数不能修改page[0],而想要能够调用(*((void (__cdecl **)(char *))page + 1))(page),只能输入0。

因此打算先创建0的chunk,然后free掉,再创建1的chunk,由于在free掉后并没有将指向0chunk的指针设为NULL,所以下标0和下标1同时指向一个chunk,再输入sh+NICO函数的地址,最后再show(0)即可获权。

这是create下标为0的chunk且free之前的,前面是我们输入的数据,后面就是show(0)时,调用的函数,可以看出只能输入4个字节,只能输入sh不能输入/bin/sh。

这是free+create+edit后的,此时再show(0),即可获得shell
|
[2021 鹤城杯]easyecho
这道题保护全开,能泄漏地址,再打stack smash
|
[BJDCTF 2020]YDSneedGirlfriend
存在后门函数,在创建堆块的时候,先创建0x10大小的堆块,再创建自定义大小的堆块,在free时没有将指针NULL,存在UAF。
|
[NISACTF 2022]shop_pwn
条件竞争,在sale里面存在usleep函数,线程存在延迟,可以在短时间内连续sale,从而可以获得更多的money去买flag。
|
[HNCTF 2022 WEEK4]ezheap
一道简单的堆题目
|
[CISCN 2023 初赛]funcanary
一道爆破题目
|
[HNCTF 2022 WEEK4]ez_uaf
|
[watevrCTF 2019]Voting Machine 2
|
[HNCTF 2022 WEEK2]ret2text
爆破地址
|
[HGAME 2023 week1]orw
打orw,这里就借用了下其他师傅的wp了(确实吊)
|
[NSSRound#9 Basic]old fashion
打随机数
|
[HNCTF 2022 WEEK2]pivot
|
[HNCTF 2022 WEEK2]fmtstr_level2
|
[SWPUCTF 2024 秋季新生赛]不是哥们ret2text还阴啊?
|
[FSCTF 2023]What am I thinking?
一道不错的题目
|
[LitCTF 2023]ezlogin
syscall+绕过strcpy
|