BUUCTF-PWN-bjdctf_2020_babystack2
BUUCTF-PWN-bjdctf_2020_babystack2
checksec
IDA
有两个输入点,先输入nbytes
,如果nbytes
不大于10,那么可以输入buf
,但buf
的长度由nbytes
大小决定
这题的知识点在于nbytes
前后的数据类型是不同的,两个都是8位,但signed int
的第一位代表正负,而unsigned int
不带符号,所以可以利用这个漏洞,将可输入长度扩大到可以利用的范围,如下图:
80000010在signed int
中是个负数,但在unsigned int
中等于十进制的2147483664,足够我们进行溢出
此外,我们还发现一个后门函数:
EXP
1 | from pwn import * |
结果
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Clerk.Max(well);!
评论