1.[NISACTF 2022]ReorPwn?

用ida打开发现gets危险函数但是没有栈溢出,在调用system函数前,调用了fun函数
看一下fun函数没看懂搜了一下,是交换字符串的位置反转一下,输入sl没有反应,直接输入galf tac,flag出来了

2.[BJDCTF 2020]babystack2.0
Checksec发现64位nx保护开启

从题目提示看是整数溢出和栈溢出
用idea打开发现后门函数backdoor(0x0400726)和危险函数read可以栈溢出(0x10),但是被if函数限制了得绕过if函数

搜了一下wp

看懂了,本来nbytes是无符号的整型(size_t),而后面转换成了有符号的整型(int)发送-1,10绕过if,且unsigned int是无符号整型,遇到-1就会变成unsigned int的最大值,使read函数能够栈溢出最后返回到后门的地址。
exp
1 | from pwn import* |
3.[BJDCTF 2020]babystack

这道题与上一道相似,但是少了if,更简单了,buf读入的数据长度由我们输入的nbytes来决定,这里可以栈溢出,先输入一个大于0x10字节,在进行溢出就可以。
Exp
1 | from pwn import* |
也可以用上面一个exp因为unsigned int是无符号整型,遇到-1就会变成unsigned int的最大值
4.[NISACTF 2022]ezstack
Checksec发现是32位的。NX保护开启
Ida分析发现main函数,又发现shell函数发现read可以栈溢出,shift+f12发现system与/bin/sh,找到system的地址,与/bin/sh的地址编写exp
1 | from pwn import * |
5.[GFCTF 2021]where_is_shell
Checksec发现保护开启,ida查看发现危险函数read,可以栈溢出,有system函数无/bin/sh,不会写,看了一下wp,虽然没有/bin/sh字符串,但是的汇编二进制代码里的24 30可以用来表示$0,而$0指代的就是”/bin/sh,
/bin/sh的地址为
pop rdi;ret地址
还需要栈对齐需要
Exp模板
1 | from pwn import* |
6.[NSSCTF 2022 Spring Recruit]R3m4ke?
checksec查看
Ida打开,发现危险函数gets栈溢出
有/bin/sh字符串非常简单的栈溢出
找到system的地址栈溢出返回到system地址
Exp
7.[HNCTF 2022 Week1]easyoverflow
Checksec
Ida打开发现gets危险函数,可以溢出,发现cat flag字符串可以作为返回地址
地址:
Exp
8.[WUSTCTF 2020]getshell
Checksec
Ida
发现
可以栈溢出,发现/bin/sh字符串,地址
Exp
9.[GDOUCTF 2023]EASY PWN
Ida分析发现是随机生成一个数字,猜数字
发现gets函数,可以栈溢出
Shift+f12发现后门flag.txt
找到地址0x0011D5
直接溢出
Exp如下
10.others_shellcode
checksec查看

Ida查看
没有看懂
Nc一下

直接出来了,非常神奇
搜了一下wp
