跳到主要内容

「Pwn」粗浅分析 House Of Muney

· 阅读需 12 分钟
Muel - Nova
Anime Would PWN This WORLD into 2D

前几天 ZBR 发了这个 repo,我寻思没听过,看着攻击能力还挺强的,于是浅浅分析一下。

简单来说,这个 house 能做这样一件事:在没有泄露的情况下绕过 ASLR 实现代码执行。

而它的利用条件如下:

  • Partial RELRO / No RELRO —— 它需要修改 .dynsym 去修改 dlresolve 结果
  • 可以分配较大的堆 —— 要使其由 MMAP 分配
  • 能够改写这个堆的 prev_size 和 size 字段,使得 IS_MMAPED 位被改写

本文将基于 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

Off-by-null 的利用方法

· 阅读需 20 分钟
Muel - Nova
Anime Would PWN This WORLD into 2D

不知道为什么以前都不把这些记录下来,然后每次做到的时候都会忘了从零开始学。

本文将主要介绍 2.23 和 2.31 版本下的利用,2.27 和 2.23 差不多,多填一个 tcache 即可。2.29 和 2.31 也差不多,多了一个 key。

因此,阅读本文你需要对 Heap 的分配有一定的基础,本文将更多涉及方法而非原理。

本文涉及的挑战主要有以下几个特征

  • 存在 off-by-null
  • 分配次数几乎不受限
  • 分配大小几乎不受限或是能分配 largebin 范围
  • 不存在 edit 函数或只能 edit 一次
  • 只能 show 一次(按理来说不能 show 也可以,但是堆块分配太麻烦了,做这种题不如睡觉)

WSL2 利用 inotify 对 OneDrive 进行实时同步

· 阅读需 6 分钟
Muel - Nova
Anime Would PWN This WORLD into 2D

最近在做一些开发相关的项目,我项目全放在 OneDrive 上,利用 ln -s 做了一个软链接在 WSL2 上进行开发。

WSL2 ext4 和 NTFS 这类跨文件系统的 IO 实在是太慢了,一些 venv, node_modules 也会严重的污染我的 OneDrive,尽管针对这些做了一定的优化,最近高频次的使用 git status 等也让我对于这个方案有了一些嫌弃,不过一直都觉得 OneDrive 同步带来的 benefits 远大于这些 side effects,所以一直没管,昨天看到了 Dev Drive,突然就想着不然改一下吧。

考虑到项目一般具有文件数量大,且绝大部分为小文件的特点,我决定将一些特定的文件夹迁移到 wsl2 中,利用 Robocopy,将 OneDrive 与 WSL2 中的内容进行双向同步,通过空间来换效率。

这篇文章将针对我的使用情况进行个性化定制,如果你只是需要备份 WSL2 的东西到 OneDrive,推荐参考 这篇文章

「Kernel」Linux kernel lab 浅浅跟随

· 阅读需 93 分钟
Muel - Nova
Anime Would PWN This WORLD into 2D

在此之前

在这篇文章中,我们将跟随 Linux Kernel Teaching,进行由浅入深的内核学习,以适应未来(可能出现的)内核开发工作。

值得注意的是,这个课程也拥有 中文版本,你可以在 linux-kernel-labs-zh/docs-linux-kernel-labs-zh-cn 进行 star 以支持他们的工作。

在接下来的博客中,我可能仅对 课程 部分进行简述,重复抄写已有内容而不加自己的思考总是没有意义的。我们的重点将放在 实验 部分。

机械革命翼龙 15Pro 迁移 Linux 遇到的一些问题

· 阅读需 6 分钟
Muel - Nova
Anime Would PWN This WORLD into 2D

买了高性价比非大众电脑带来的后果,就是完全没有对 linux 等做过硬件上的适配(也不准备支持)。用了一周解决了大概三个问题:内置键盘失灵、蓝牙模块无效、显卡驱动装不上、休眠立马唤醒的问题,简单记录一下。

2024 保研夏令营机试刷题记录

· 阅读需 137 分钟
Muel - Nova
Anime Would PWN This WORLD into 2D

刷 leetcode 还是没什么意思,准备一天来一套真题(笑,不做特别难的题和特别麻烦的大模拟,确保做题速度。

会按照一个顺序选择刷题。

Wayland - 腾讯会议屏幕共享解决方案

· 阅读需 17 分钟
Muel - Nova
Anime Would PWN This WORLD into 2D

组会的时候尝试投屏却只能看到我的鼠标指针,最后演变为使用健硕手机拍屏方案,好不雅观。经过一翻搜索找到一个比较优雅(Yet 扭曲)的解决方案,因此简单记录一下。