• Glibc2.27_setcontext+orw

    介绍参考文章:https://blog.wingszeng.top/pwn-glibc-setcontext/ https://ctf-wiki.org/pwn/linux/user-mode/stackoverflow/x86/advanced-rop/srop/ 在glibc2.27及之下,遇到堆题目开启了沙箱,通常是使用setcontext+53 srop orw去达到获得flag...
  • 栈迁移-Pivoting

    介绍最初学的时候看的文章:this 栈迁移:在于溢出的长度不够布置ROP链,可以迁移栈到一个合适的地址,合适的空间,布置ROP链,然后执行ROP链,getshell。 原理修改ret address为leave ret,将rbp修改为要迁移的地址,即可栈迁移。 12leave 相当于 mov rsp, rbp; pop rbp ;ret 相当于 pop rip 第一次leave ret...
  • Franklin-Reiter相关信息攻击

    前言参考:这篇文章 装好sage:下载链接 Franklin-Reiter介绍该攻击方法在于两个明文m1,m2,这两个明文利用同一个e和m,并且m2和m1间具有线性关系,例如: 1m2 = a*m1 + b 并且给出了c1,c2 12c1 = pow(m1, e, n)c2 = pow(m2, e, n) 知道c1,c2,a,b,n,那么m1是可解的 原理 因此最后的解的形式...
  • House Of Botcake

    介绍参考文章 House Of Botcache是用于绕过tcache double free检查的一种方法,在glibc2.29-2.31,对于tcache加入了key值来检测该tcache是否已经存在于tcache bins中,该方法就是借用unsorted bin来绕过double free的检查,下面跟着源码来分析一下。 源码源码文档 tcachekey值的引进 2984行 ...
  • 共模攻击

    rsa中的共模攻击参考文章 介绍共模攻击是指在不分解d的情况下依旧可以求出m的一种算法,常见给出了c1,c2: 12c1 = pow(m , e1 , N)c2 = pow(m , e2 , N) 要求gcd(e1 , e2)=1,即e1,e2互质,那么则有: 12e1*s1 + e2*s2 = 1// s1,s2一正一负 可以有:m = ( c1^s1 * c2^...
  • moectf2024知识点汇总

    前言题目链接 本次比赛对基础的要求可谓是很深啊,记录一些自己需要学习的或者是基础不牢固,所需要学习的点 NotEnoughTime题目链接 运用正则匹配运算数学式子 贴一份官方wp 123456789101112131415161718from pwn import *io = ...io.sendlineafter(b"=", b"2")io...
  • 随机数专题

    什么是伪随机?对于基本的随机数生成,比如说 123srand randsrandom random# 位于stdlib头文件里面 这两个函数的随机数生成都基于时间种子seed,通常来说,只要glibc相同,seed相同,那么所生成的随机数就是一样的。 下面简单介绍一下随机数生产的代码123456789#include <stdio.h>#include <stdlib.h...
  • House_Of_Orange

    参考: House of Orange - CTF Wiki (ctf-wiki.org) 1.介绍house of orange 在于我们没有free的时候,一样可以达到free的效果,将一个chunk放进unsorted bin中,然后达到泄露libc的效果 操作的原理简单来说是当前堆的 top chunk 尺寸不足以满足申请分配的大小的时候,原来的 top chunk 会被释放并被...
  • House_Of_Force

    提要参考文章:ctfwiki 神奇的泄露libc:通过malloc大于top chunk size的chunk,泄露出的chunk地址与libc存在固定的偏移 原理介绍运用条件 可以修改top chunk的size大小 可以控制分配任意大小的chunk 原理分析当我们malloc的时候,若是空闲的堆块无法满足malloc的要求,就会从top chunk中分割合适的chunk 如果top...
  • zctf2016_note2-unlink(unlink精讲)

    无法堆溢出修改chunk的unlink+整数溢出题目链接 有符号整型与无符号整型比较 -> 存在溢出 unlink完整表示 以往的unlink都是可以堆溢出修改相邻chunk的prev_size以及其size_inuse,然后构造出一个fake_free_chunk,然后free相邻的chunk,这两个chunk就会合并,从而达到unlink的效果,如下图: 接着上图讲:chu...
12345