BUUOJ-pwn题解(一)
0x 01 rip
存在后门函数fun,覆盖返回地址为fun地址
exp:
1 | from pwn import* |
0x 02 warmup_csaw_2016
存在后门函数
首先我们用cyclic创建一个200字符的字符串,利用它来判断溢出点到返回地址的偏移
启动dbg进行调试
由图可得,根据小端序,‘saaa‘之前有多少个字符,就是偏移量
exp:
1 | from pwn import* |
0x 03 pwn1_sctf_2016
在输入点中可以输入32个字节的数据到0x3c空间,不存在溢出问题。
接着出现了字符串you、字符串I和replace函数,初步猜测是发生了替换操作,执行验证
替换过程为I=you,一个字节产生三个字节。
在替换完成后,使用了strcpy函数将替换后的数据拷贝到s中。这里可以构造溢出点。
通过输入21个I,然后替换成21个you,一共63个字节数据,然后任意填入一个字节数据,接着就填充满溢出空间,然后再劫持控制流EIP到利用点函数。
1 | from pwn import * |
0x 04 ciscn_2019_n_1
就是一个简单的溢出让v2变成11.28125。v1是var_30,v2是var_4:
再看一下11.28125在程序中的表示:
也就是让v2变成41348000h,所以exp如下:
1 | from pwn import * |