一、配置基本Pwn环境
一、配置基本Pwn环境
1.python3环境
这里推荐最好用linux
或者kali
,Windows
可以但不建议,这里请更具百度进行安装
2.VScode编辑器配置
kali
下载Vscode
sudo dpkg -i code_1.68.1-1655263094_amd64.deb
主要是配置python3编写环境
3.常用的Pwn工具
Pwntools(写攻防脚本需要用到的)
Gdb(动态调试)
Pwndbg(gdb插件)
也有docker的环境
docker pull skyider/pwndocker
docker run -d --rm -h pwngame --name pwngame -v $(pwd)/pwngame:/ctf/work -p 23946:23946 --cap-add=SYS_PTRACE skysider/pwndocker
即可参考到镜像已经运行起来了
进入容器内部docker exec -it pwngame /bin/bash
接下里就是新建C
文件,用于测试Pwn
环境是否完成
二、环境简单Pwn题测试
简单的字符串溢出
#include<stdio.h>
#include<string.h>
void success(){
puts("YOU HAVA already controlled it.");
}
void vulnerable(){
char s[12];
gets(s);
puts(s);
return;}
int main(int argc, char **argv){
vulnerable();
return 0;
}
编译test.c
命令,这里关了很多保护选项
gcc -m32 -fno-stack-protector [file.c] -o stack_example
这里使用gdb test
,使用b main
意思是在main函数下断点
敲击r
,让程序运行,界面分别DISASM=>反汇编
,REGISTERRS=>寄存器
,STACK=>堆栈
,BACKTRACE=>断点
这里已经测试完成,后续学习会了解到危险函数如何去获取系统shell权限
TIPS
如果出现bits/libc-header-start.h: 没有那个文件或目录
先使用apt-get update
,在使用sudo apt-get install gcc-multilib
即可