
CTF-pwn
文章平均质量分 92
hhhnoone
nobody
展开
-
arm简述
ARM(32bit)简述ARM指令的两种模式ARM处理器存在两种运行模式:ARM与Thumb,这两种模块均与特权模式无关,例如,运行在SVC模式的代码可以是ARM与可以是Thumb,这两种模式的主要区别在于指令集:ARM模式的指令集是32bit,Thumb模式的指令集为16bit(但是也可以是32bit)。在编写ARM shellcode的时候,确定什么时候以及如何使用thumb指令集是尤其重要的,通常编写shellcode我们需要克服null字节,我们通常可以使用Thumb指令集来替代ARM指令集,以原创 2021-04-20 23:17:24 · 895 阅读 · 0 评论 -
ArmPwn学习
arm pwn练习inctf2018_wARMup程序逻辑明显的栈溢出,但是只溢出了0x10个字节,很明显,需要栈迁移,但是在程序中,注意其调用read函数的汇编代码,如下,写如数据的缓冲区buf由R3寄存器重置,故若我们可以控制R3寄存器,则可以控制程序输入的位置,这里通过gadget(0x00010364 : pop {r3, pc})实现。注意程序的endlog,如下图,可以发现,程序的SP由R11寄存器控制,而由于栈溢出漏洞的存在,我们可以控制R11,故我们可以通过控制R11,将其指向b原创 2021-04-20 23:16:34 · 865 阅读 · 1 评论 -
一道题目入门VMpwn
一道题目学习VMpwn原理VMpwn 程序通常都是模拟一套虚拟机,对用户输入的opcode进行解析,模拟程序的执行,故VMpwn常见设计如下:初始化分配模拟寄存器空间(reg)初始化分配模拟栈空间(stack)初始化分配模拟数据存储空间(data)初始化分配模拟机器指令(opcode)空间(text)[OGeek2019 Final]OVM程序采用32bit定长指令,每个操作码、操作数均为8bit,其格式为:| opcode | dst | op1 | op2 |程序具体指令参考原创 2021-04-16 14:50:29 · 428 阅读 · 1 评论 -
一道题目学习glibc 2.32
一道题目学习glibc 2.32safe-linkingglibc2.32引入的新的防御机制-safe-linking(异或加密),其核心思想是:将指针的地址右移12位再和指针本身异或,如下,L为指针的地址,P为指针本身,该操作是可逆的,取指针时再做一次操作就可以还原得到原来的指针:该操作是在chunk被放入tcache bin和从tcache bin中取出时进行#define PROTECT_PTR(pos, ptr) \ ((__typeof (ptr)) ((((size_t) pos)原创 2021-04-14 13:26:32 · 1692 阅读 · 0 评论 -
glibc-2.27-how2heap学习
学习参考how2heap,主要用于理解不同版本glibc机制fastbin_dup#include <stdio.h>#include <stdlib.h>#include <assert.h>int main(){ setbuf(stdout, NULL); printf("This file demonstrates a simple double-free attack with fastbins.\n"); printf("Fill up原创 2021-03-26 09:11:42 · 999 阅读 · 0 评论 -
Kernel-pwn学习记录1
此博客参考POST如下:Learning Linux Kernel Exploitation - Part 1Learning Linux Kernel Exploitation - Part 2第一次进入Kernel Pwn领域,实验采用kernel-rop文件下载地址:https://ctftime.org/task/14383,对于Kernel Pwn,核心是利用LKM(Loadable Kernel Module,可加载内核模块)中存在的漏洞,而这些模块是在内核启动时自动运行的。上述链接下载原创 2021-03-25 15:16:12 · 990 阅读 · 0 评论 -
wdb2018_guess-___stack_chk_fail泄露信息
背景知识在程序添加了canary保护后,如果我们读取的bof覆盖了对应的值时,程序就会报错,我们可以利用报错信息。程序在启动canary保护之后,如果发现canary被修改的话,程序就会执行__stack_chk_fail函数来打印argv[0]指针所指向的字符串,正常情况下,这个指针指向程序名。很简单,只要我们可以控制argv[0],就能知道我们想知道的信息。void __attribute__ ((noreturn)) __stack_chk_fail (void){ __forti原创 2020-11-03 11:09:13 · 426 阅读 · 0 评论 -
[V&N2020 公开赛]simpleHeap-记录一次gef调试过程
[V&N2020 公开赛]simpleHeap安全机制:IDA反汇编main:Add:Edit:可以看到get_input_content函数包含一个off_by_one漏洞。Show:Delete可以看到free函数之后,将chunkptr置为0,所以不存在UAF思路:利用off-by-one漏洞,篡改chunk的size大小,使被篡改大小的chunk覆盖其后已申请的chunk大小,从而导致chunk overlapping原创 2020-10-24 14:01:57 · 1003 阅读 · 0 评论