P64
  • 2024-09-10常回家看看之house_of_kiwi
    houseofkiwi前言:house_of_kiwi一般是通过触发__malloc_assert来刷新IO流,最后可以劫持程序流或者通过和setcontext来打配合来进行栈迁移来得到flag。我们看看触发的源码#ifIS_IN(libc)#ifndefNDEBUG#define__assert_fail(assertion,file,line,function) \ __ma
  • 2024-09-09栈迁移(详解)
    栈迁移原理栈迁移主要利用了leave_ret这个指令leave返回上级函数时,恢复原本的栈空间leavemovesp,ebppopebpret返回上级函数后,执行上级函数的命令ret等同于popeip(不存在这样的指令esp'''ebpret在函数的先执行到leave指令时,会将ebp处填充的地址pop到ebp中去
  • 2024-09-09羊城杯比赛pwn复现
    title:羊城杯比赛pwn复现date:2024-09-0520:12:19categories:ctf-比赛复现首先推荐这个博客本篇学习的思路来自这个大佬实力有限,只复现出了pstack这一题pstack知识点这个题目是个很经典的栈迁移的题目,因为栈溢出的空间不够,但是常规的栈迁移一般有方法获得一
  • 2024-09-06house of orange
    houseoforange1.针对没有free的堆题目orange部分申请比topchunk的size大的chunk,会将原本的chunk放入unsortedbin中,可以借此泄露地址FSOPio文件结构有chain连接成一个链表形式,这部分,头节点记录在_IO_list_all上,通过unsortedattack或者largebinattack劫持_io_list_all,指向
  • 2024-09-06house of cat
    调用方法调用链1houseofcat调用链__malloc_assert在2.35的glibc中源码如下staticvoid__malloc_assert(constchar*assertion,constchar*file,unsignedintline, constchar*function){(void)__fxprintf(NULL,"%s%s%s:%u:%s%sAssertion`%s'fa
  • 2024-09-06house of stom
    完成事项houseofstom学习未完成事项wmctf的blineless没打通如何解决未完成事项下周待做事项houseoforangehouseoflore本周学习的知识分享houseofstom条件:1.能控制unsorted的bk指针,还有largebin的fd_nextsize和bk_nextsize码源分析largebinattack:申请大chunk
  • 2024-08-16ret2csu出题小记
    第一次出题,没什么经验,按照https://www.cnblogs.com/bpcat/p/16878676.html这篇文章简单改的代码(这文章讲的还算细,跟着动调就好了)直接抄exp肯定是不行了,多加了几句话导致栈空间有一丢丢偏移,但是影响不大,这里展现下当时卡住的地方卡在jmp的位置了,爆段错误,于是去拿其他
  • 2024-08-15浅析house of cat(下)
    前言:这篇是hosueofcat系列的最后一篇,之后估计要停一段时间去学apple1,个人感觉学习的顺序应该是orange->apple2->cat->emma->apple1但是实际上学到cat应该就可以通杀了。但是本着学习的态度,还是看看apple1。外一以后需要用上呢。例题:这里选的例题是2022强网杯的hou
  • 2024-08-14【20大必备范文】经典范文012 邀请信 P64
    Directions:WriteanemailtoinviteafamousprofessortogivealecturetothestudentswholoveEnglishinyouruniversity.DearProfessorAlexander,        OnbehalfofallthestudentsatPekingUniversitywhosharealovefortheEnglishla
  • 2024-08-102024比赛wp合集
    记录一下最近比赛的wp吧D^3CTFd3note没有限制idx范围,越界任意读写,读malloc地址泄露libc,网上写systemfromExcalibur2import*proc('./pwn')lib('./libc.so.6')el('./pwn')default('h')defadd(idx,size,content):sl(b"276")sl(s
  • 2024-08-03protobuf pwn题专项
    protobufpwn准备工作安装protobuf编译器sudoapt-getinstalllibprotobuf-devprotobuf-compiler安装python依赖库pip3installgrpciopip3installgrpcio-toolsgoogleapis-common-protos安装pbtkgitclonehttps://github.com/marin-m/pbtkggbond来自DubheCTF
  • 2024-08-03常回家看看之fastbin_attack
    常回家看看之fastbin_attack原理分析fastbin属于小堆块的管理,这里说的fastbin_attack大多指glibc2.26之前的手法,因为自glibc2.26以后,glibc迎来了一位新成员tcachebin,它减少了堆的开销,使堆管理变得迅速而高效,而且申请的小堆块会优先进入tachebin中,只有tachebin其中一个链表满了再
  • 2024-08-02DASCTF2022.07赋能赛PWN部分WP
    DASCTF2022.07赋能赛PWN部分WPeyfor程序保护情况64位ida逆向可以看见是一个随机数的逻辑,只要我们猜不对4次就可以进入漏洞函数,但是我感觉这原本可能是==号,让用随机数的那我们就4次不输入一个数就可以进入漏洞函数,这里注意这个a1就是我们进入漏洞函数之前要输入的值,可以看见
  • 2024-07-30BUU_ciscn_2019_c_1
    ciscn_2019_c_1先查看保护机制,64位开了NX保护发现应该是用不了ret2syscall的v4是格式化输入的,不存在溢出55[v4!=2退出里面的小循环,=1进入encrypt()函数]{.kbd.red}看到s和gets(),填充为0x50+8发现puts()->re2libc然后程序有一个死循环:::warningif(v0>=strlen(s)
  • 2024-07-29glibc2.35 CTFPwn高版本下的堆块利用
    运用exithook:劫持tls_dtor_list:例题(XYCTF2024 ptmalloc2it‘smyheappro):题目的libc版本是2.35,在glibc2.34版本的时候我们常用的exithook(比如dl_rtld_lock_recursive和dl_rtld_unlock_recursive)就被删除了,所以在这道题里面我们劫持另一个exithook,tls_dtor_list,但这里和之
  • 2024-07-25常回家看看之largebin_attack
    常回家看看之largebin_attack先简单介绍一下什么是largebinlargebin是glibc的malloc实现中用于管理大块内存的一种数据结构。在glibc的内存分配中,largebin是bin系列的一部分,用于存储大小超过某个阈值的空闲内存块。largebin的设计目标是提高内存管理的效率,并减少内存
  • 2024-07-24DASCTF 2023 & 0X401七月暑期挑战赛【PWN】(FileEditor篇)
    DASCTF2023&0X401七月暑期挑战赛【PWN】(FileEditor篇)题目保护情况(保护全家桶)64位ida逆向模拟了一个类似vim的功能,有打开文件,打印内容,插入行,删除行,复制行,和编辑行,还有查找字符和替换字符的功能,然后就是保存退出一个一个来分析吧1.open就是打开一个file文件。没有会创建
  • 2024-07-23DASCTF 2023六月挑战赛|二进制专项 PWN (下)
    DASCTF2023六月挑战赛|二进制专项PWN(下)1.can_you_find_me检查保护意料之中64位ida逆向只有add,和del功能不能show先看add吧最多申请10个堆块存在off_by_null漏洞,可以考虑unlink来进行堆块重叠del函数就没有UAF漏洞了1.首先想办法泄露出libc地址,因为本题libc是2.27
  • 2024-07-212024年暑期学习 (1)
    2024年“春秋杯”网络安全联赛夏季赛0x00CTFstdout程序保护如下Arch:amd64-64-littleRELRO:PartialRELROStack:NocanaryfoundNX:NXenabledPIE:NoPIE(0x3fe000)这题的难点在于setvbuf(stdout,0LL,0,0LL)操
  • 2024-07-16暑期集训经典栈溢出
    checksec看保护:NXida看一下(这是main函数)func1()func2()func3()func4()func5()先静态分析一波:进到func5()之后系统会给一个起始地址,从这个地址开始输入,判断一下rbp指的地址有没有被改掉,被改掉就fail了,而很直观的看出buf有溢出漏洞,程序中又有后门函数win,所以就将返
  • 2024-07-12TLScanary:Pwn中的利器
    TLScanary:Pwn中的利器引言:什么是TLScanary?  在二进制漏洞利用(Pwn)领域,攻击者面临着层层防护措施的挑战。在安全竞赛(如CTF)和实际漏洞利用中,TLS(线程本地存储)和堆栈保护(stackcanary)是常见的防护技术。TLScanary应运而生,它结合了TLS协议与堆栈保护技术,专门用于处理这些受保护的二
  • 2024-07-11劫持TLS绕过canary && 堆和栈的灵活转换
    引入:什么是TLScanary?TLScanary是一种在Pwn(主要是二进制漏洞利用)中常见的技术,专门用于处理TLS保护的二进制文件。在安全竞赛(例如CTF)和漏洞利用场景中,攻击者需要应对目标程序的多层安全机制,其中TLS是一种常见的保护措施。TLScanary结合了TLS协议与堆栈保护(stackcanary)技
  • 2024-07-092024春秋杯网络安全联赛夏季赛-PWN-Writeup
    2024春秋杯网络安全联赛夏季赛-PWN-Writeup只打了第一天,费了好大劲,终于三道都出了。Shuffled_Execution保护全开,ida查看伪代码:int__fastcallmain(intargc,constchar**argv,constchar**envp){__int64v3;//raxchar*s;//[rsp+28h][rbp-18h]unsigned_
  • 2024-07-082024春秋杯 stdout
    考点:文件,setvbuf缓冲区,ret2syscall,ret2csu题目给了libc文件。main函数和vlun函数存在明显的栈溢出int__cdeclmain(intargc,constchar**argv,constchar**envp){charbuf[80];//[rsp+0h][rbp-50h]BYREFinit(argc,argv,envp);puts("whereismystdout?
  • 2024-06-07Dragon_Knight_CTF-stack(栈迁移)
    Dragon_Knight_CTF-stack(栈迁移)程序的保护情况如下,可以看到没有开启pie保护Arch:amd64-64-littleRELRO:PartialRELROStack:NocanaryfoundNX:NXenabledPIE:NoPIE(0x3fe000)可以看道main函数也很简洁,只有一个0x10大小的溢出,程序给了libc,版