一、配置基本Pwn环境

一、配置基本Pwn环境

1.python3环境

这里推荐最好用linux或者kaliWindows可以但不建议,这里请更具百度进行安装

2.VScode编辑器配置

kali下载Vscode

20940-ab1hdtybf2.png

sudo dpkg -i code_1.68.1-1655263094_amd64.deb

55136-6onirlt2jkw.png

主要是配置python3编写环境

3.常用的Pwn工具

Pwntools(写攻防脚本需要用到的)
Gdb(动态调试)
Pwndbg(gdb插件)

也有docker的环境

docker pull skyider/pwndocker

58073-0kekhofhft9.png

docker run -d --rm -h pwngame --name pwngame -v $(pwd)/pwngame:/ctf/work -p 23946:23946 --cap-add=SYS_PTRACE skysider/pwndocker

即可参考到镜像已经运行起来了

08594-nl0vrt2wau.png

进入容器内部docker exec -it pwngame /bin/bash

46703-gikhhbvuiy9.png

接下里就是新建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

98690-g6vchgjsi65.png

这里使用gdb test,使用b main 意思是在main函数下断点

03205-516l92v65wx.png

敲击r,让程序运行,界面分别DISASM=>反汇编,REGISTERRS=>寄存器,STACK=>堆栈,BACKTRACE=>断点

41463-5kko891m8w9.png

这里已经测试完成,后续学习会了解到危险函数如何去获取系统shell权限

TIPS

如果出现bits/libc-header-start.h: 没有那个文件或目录先使用apt-get update,在使用sudo apt-get install gcc-multilib即可

88889-r76p9culww8.png

本文链接:

https://www.linqi.net.cn/index.php/archives/390/