8.3k 8 分钟

# houes-of-orange 前言: 在此之前,我们短暂的了解了 IO_FILE。而 houes-of-orange 是一套结合 IO_FILE 的组合拳,威力巨大,但影响版本有限,随说影响范围小,但是学习这种攻击手法,可以让我们对于 IO_FILE 更加熟悉。 漏洞成因 堆溢出写 适用范围 2.23 —— 2.26 没有 free 可以 unsortedbin attack # 概要: 此攻击是堆与 IO 结合的组合拳,非常的经典。并且攻击中利用 top_chunk 的性质 # 绕过检测: /*Otherwise, relay to handle...
5.8k 5 分钟

# IO_FILE(1) 前言:为了好好学习 house-of-orange 的利用,先在 house-of-orange 专题之前写一些 IO_FILE 的利用 # _IO_FILE 结构 FILE 在 Linux 系统的标准 IO 库中是用于描述文件的结构,称为文件流。 FILE 结构在程序执行 fopen 等函数时会进行创建,并分配在堆中。我们常定义一个指向 FILE 结构的指针来接收这个返回值 —— 文件描述符(eg:stdin=0;stdout=1)。 在标准 I/O...
11k 10 分钟

# house-of-einherjar 漏洞成因 溢出写、 off by one 、 off by null 适用范围 2.23—— 至今 可分配大于处于 unsortedbin 的 chunk # 概要: 释放堆块时,unlink 后向合并堆块,强制使得 malloc 返回一个几乎任意地址的 chunk 。 free 的后向合并机制 /* consolidate backward */ if (!prev_inuse(p)) { prevsize = p->prev_size; size += prevsize; p =...
4.7k 4 分钟

# house-of-spirit 漏洞成因 堆溢出写 适用范围 2.23 —— 至今 # 概要: 该技术的核心在于在目标位置处伪造 fastbin chunk,并将其释放,从而达到分配指定地址的 chunk 的目的。 # 绕过检测: fake chunk 的 ISMMAP 位不能为 1, 因为 free 时,如果是 mmap 的 chunk, 会单独处理 fake chunk 地址需要对齐, MALLOC_ALIGN_MASK fake chunk 的 size 大小需要满足对应的 fastbin 的需求,同时也得对齐 fake chunk 的 next chunk 的大小不能小于...
5.8k 5 分钟

# 2024 春秋杯网络安全联赛夏季赛 # 初探勒索病毒 提示微信公众号:black-basta-buster-master 523 sed -i ‘s/flags/“flags”/’ ./decryptblocks.py 524 export SRL_IGNORE_MAGIC=1 525 ./decryptblocks.py ./banana.jpg.sah28vut5 ./key.block 得到图片,传上去 # snack python exe 解包 #!/usr/bin/env python# visit https://tool.lu/pyc/ for more...
359 1 分钟

# Dockerfile 书写规范 dockerfile 书写目的 尽量构建的镜像尽可能小,提高部署速度,提高效率。 dockerfile 书写格式 # FROM 指定基础镜像,若想去搭建 ubuntu22.04 镜像。则格式应为下面 FROM ubuntu:22.04 # RUN 在镜像中执行命令,通常用于安装软件或配置环境。 # CMD 容器启动时执行的命令。通常写入 .sh 文件内 # LABEL 为镜像添加元数据标签。 # ENV 设置环境变量。 # COPY 将本地文件或目录复制到镜像中。 如果想要持久保留化,配合 RUN cp filename...
2.9k 3 分钟

# protocol 前言: 华中赛区题目,第一次,由此记录一下 文档:https://protobuf.dev/overview/ 如何去还原此结构: 我的方案如下 git clone https://github.com/marin-m/pbtk.git sudo apt install protobuf-compiler 先进行必要的安装配置 接下来去生成导入的 py 包 ./extractors/from_binary.py ./pwn protoc --python_out=. ./filename.proto 即可得到上面文件 # 题目启动 #...
908 1 分钟

# 关于恢复符号表这件事 2 前言 由于 rizzo 恢复符号表真滴一言难尽,于是重拾之前如何恢复符号表这个任务 在这个阶段,鄙人确实找到了一个办法去进行符号表恢复 使用 FLAIR,由于网上的资料晦涩难懂,于是鄙人打算亲自写一篇去自己去理解 # FLAIR flair 通过对库文件中的函数生成签名,并生成对应的签名文件,然后和程序中的函数进行签名匹配找到匹配的函数来帮助我们还原库函数。 这是此项目需要用到的 linux 文件,因为鄙人习惯使用 linux 系统,所以会用 linux 系统下的 elf 文件用法去讲解 先给出一篇网上的文章 这篇文章使用的是...
3k 3 分钟

# 2024Ciscn 国赛心得 前言 今年总的来说,pwn方向两道题都不是很难。虽然一道都没给做出来。还是由于经验不足导致的吧。首先第一道pwn的话,在本地是能读取到flag文件,但是远程就是不能去读取flag,线下询问了一个华东北第二名队伍的pwn师傅,才知道远程打开flag的fd并不是3,而是5,是openat的rax的值,真是学到了不少东西。第二道是将符号表全都去掉,因为第一题一直以为是栈的问题在不断调试,导致第二题光fix并没有去做。 # pwn_1 # fix 将 0x80-> 改为 0x50 即可 # break NX 关闭,栈可执行,往栈上写入...
7.6k 7 分钟

# Ciscn_2022 blue 前言:一道 2.31 的 glibc 堆题(国赛将至,复现一下吧 # 了解程序 首先需要检查程序保护 # 保护全开 Ida 分析一下程序 void __fastcall __noreturn main(__int64 a1, char **a2, char **a3){ int v3; // [rsp+Ch] [rbp-4h] sub_1730(a1, a2, a3); while ( 1 ) { while ( 1 ) { sub_18D5();// 菜单,无 edit v3 =...