get_started_3dsctf_2016
Ubuntu 16
0x01
checksec
1 | [*] '/home/zelas/Desktop/pwn/get_started_3dsctf_2016/get_started_3dsctf_2016' |
静态编译
1 | get_started_3dsctf_2016: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.32, not stripped |
IDA
main()
1 | int __cdecl main(int argc, const char **argv, const char **envp) |
可疑函数get_flag()
1 | void __cdecl get_flag(int a1, int a2) |
//0x80489A0
0x02
思路
1.利用gets()函数的溢出
2.get_flag函数没有return
设置get_flag的ret为exit()
s | 38H |
---|---|
ebp | 0x4 |
ret | get_flag() |
get_flag_ret | exit() |
arg | a1 |
arg | a2 |
思路
1.利用mprotect()函数
0x03
1 | from pwn import * |
exp2
1 | from pwn import * |
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果