roome-ELF x86 - Stack buffer overflow basic 3

程序源码:
roome-ELF x86 - Stack buffer overflow basic 3_第1张图片
roome-ELF x86 - Stack buffer overflow basic 3_第2张图片
程序每次从输入流中读取一个字符并进行比对,过滤了“\n”,0x04,0x90字符,通过count字符充当下标,同时限制了输入数量
题目需要将check的值改成0xbffffabc,获取root权限,读取passwd

注意本题局部变量的定义顺序:buffer->check->i->count
栈中的布局应该是

roome-ELF x86 - Stack buffer overflow basic 3_第3张图片

因此我们需要覆盖buffer底部的check(注意栈的增长方向),利用常用填充buffer的方法是无法做到的,幸好这道题的count可用作buffer的下标,将count改为-4就可以覆盖掉check的内容

payload:
python -c ‘print “\x08\x08\x08\x08”+”\xbc\xfa\xff\xbf”’;cat

你可能感兴趣的:(CTF每日一题)