跳到主要内容
MuelNova
Pwner who wants to write codes.
View All Authors

生死之间

· 阅读需 11 分钟
MuelNova
Pwner who wants to write codes.

是的,这个标题取得大了一点。这篇文章源于我今日和我妈妈视频通话后,我的一些所思所感。

或许会被评价为一个冷血的人,但无可奈何的,这就是我。

我的消费降级计划

· 阅读需 5 分钟
MuelNova
Pwner who wants to write codes.

九月份是我的续费大月,本来因为租房生活费就暴降了,还要续费这么多东西,痛定思痛,决定消费降级。

浅忆我的本科三年

· 阅读需 41 分钟
MuelNova
Pwner who wants to write codes.

本文作于 2024/09/24。

目视初定之日程,列有三端:“赛题复现”其一也,“科研探索”其二也,“项目开发”其三也。三者并列,然心绪纷扰,犹豫不决,竟莫能定其所从。

苦思冥想,久矣未决。忽思推免之事,忆本科三载有余,吾之心路漫漫,乃定心凝神,正襟危坐,欲将其尽书于博客之上,以飨同好,亦以自醒。

「Pwn」粗浅分析 House Of Muney

· 阅读需 12 分钟
MuelNova
Pwner who wants to write codes.

前几天 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 分钟
MuelNova
Pwner who wants to write codes.

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

本文将主要介绍 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 分钟
MuelNova
Pwner who wants to write codes.

最近在做一些开发相关的项目,我项目全放在 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 浅浅跟随

· 阅读需 159 分钟
MuelNova
Pwner who wants to write codes.

在此之前

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

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

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