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);!
 评论








