PWN-整数溢出&栈溢出-bugku_pwn11
长度变量v2定义成无符号类型,所以可以通过溢出,让他为负值
长度溢出后,分别覆盖s字符数组、长度变量v2、循环i,特别注意是read(0,&s[i],1u),每次循环读入单个字节
0x600x10覆盖数组,0x100xC都是覆盖长度变量(不管覆盖成多大都无所谓),但是i必须要注意,read是通过s[i]来覆盖整个栈的,所以我们可以直接改变i的值,让i指向rip位置,也就是s往下98,i赋值为’c’就行,随之就是rip覆盖成getflag的起始地址就行了,hhh
EXP:
1 | from pwn import * |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.