「Kernel Pwn」从强网杯 2021 notebook 理解 RaceCondition 做法
我是 Kernel Pwn 新手
附件 GitHub 随便搜 qwb2021 就有
我是 Kernel Pwn 新手
附件 GitHub 随便搜 qwb2021 就有
看到这个标题,你可能疑惑:拾枝杂谈是什么,它不是原神里的东西么?怎么就 03 了,前两篇去哪里了?
我的答案是,我也不知道。今天给学弟学妹翻我 21 年某个课的笔记的时候,意外的从我的硬盘里找到了这么一份并不完整的旧文章的备份。
大概是需要 CPU Host 才行,具体可以看 cpuinfo
首先前置条件 qemu 套装安装就不再详细说明了。
灵感源自于《独立博客自省问卷 15 题》
是的,这个标题取得大了一点。这篇文章源于我今日和我妈妈视频通话后,我的一些所思所感。
或许会被评价为一个冷血的人,但无可奈何的,这就是我。
九月份是我的续费大月,本来因为租房生活费就暴降了,还要续费这么多东西,痛定思痛,决定消费降级。
本文作于 2024/09/24。
目视初定之日程,列有三端:“赛题复现”其一也,“科研探索”其二也,“项目开发”其三也。三者并列,然心绪纷扰,犹豫不决,竟莫能定其所从。
苦思冥想,久矣未决。忽思推免之事,忆本科三载有余,吾之心路漫漫,乃定心凝神,正襟危坐,欲将其尽书于博客之上,以飨同好,亦以自醒。
前几天 ZBR 发了这个 repo,我寻思没听过,看着攻击能力还挺强的,于是浅浅分析一下。
简单来说,这个 house 能做这样一件事:在没有泄露的情况下绕过 ASLR 实现代码执行。
而它的利用条件如下:
本文将基于 2.31 的环境,复现 Docker 可以使用下面的 Dockerfile:
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND noninteractive
# Update
RUN apt-get update -y && apt-get install socat -y gdb vim tmux python3 python3-pip
# General things needed for pwntools and pwndbg to run
RUN apt-get install git build-essential libssl-dev libffi-dev libxml2-dev libxslt1-dev zlib1g-dev patchelf python3-dev -y
RUN pip3 install pwn
# Install pwndbg
RUN git clone https://github.com/pwndbg/pwndbg && cd pwndbg && ./setup.sh && cd ../
RUN echo "set auto-load safe-path /" >> /root/.gdbinit
# Challenge files to ADD
RUN git clone https://github.com/mdulin2/house-of-muney
# Fixes the loader and recompiles the binary for us :)
RUN cd house-of-muney && ./compile.sh
不知道为什么以前都不把这些记录下来,然后每次做到的时候都会忘了从零开始学。
本文将主要介绍 2.23 和 2.31 版本下的利用,2.27 和 2.23 差不多,多填一个 tcache 即可。2.29 和 2.31 也差不多,多了一个 key。
因此,阅读本文你需要对 Heap 的分配有一定的基础,本文将更多涉及方法而非原理。
本文涉及的挑战主要有以下几个特征