• 2024-06-17用动态链接动态泄露system地址并利用
    已知libc库的情况在动态编译的程序中,如果没有对system函数的直接调用,在plt中就不会存在system函数,也就是不能直接知道system函数的地址在解决动态编译的二进制文件之前,需要了解动态链接的基础知识,这个过程叫作lzy-binding。程序对外部函数的调用要求在生成可执行文件时将外部函
  • 2024-06-14长城杯CTF2024-PWN-kawayi复现
    文件保护libc版本uaf漏洞free函数没有进行置0操作GDB断点断点:0xD90泄漏libc由于v1>3会退出,所以必须在四次申请堆块中拿到shell第一次申请-创建largebinchunk因为创建largebin的chunk堆块,所以申请的是0x430第二次申请-创建tcachebinchunk申请一个tcache
  • 2024-06-04pwn学习-ret2csu
    再上一次学习栈溢出ret2syscall方法时,我们会发现有些gadget不存在,我们只能借用read遗留下来的ebx寄存机调用,这时就可以使用万能gadget,这个万能的gadget存在__libc_csu_init中,由于每个动态链接的程序就有有libc,并且__libc_csu_init用于初始化,所以说几乎每个程序都含有__libc_csu_i
  • 2024-06-03高版本libc堆fd指针绕过
    高版本glibc堆fd指针加密绕过参考资料:[原创]glibc高版本堆题攻击之safeunlink-Pwn-看雪-安全社区|安全招聘|kanxue.com堆指针加密是在2.32版本引进的,作用在tcache和fastbin。主要是对fd指针进行异或操作来使得不好利用UAF等需要fd指针的手法。从一个例子了解这个保护机制bin
  • 2024-06-02pwn学习-ret2libc
    昨天学习了re2syscall,该方法主要是系统中没有system()函数,也没有/bin/sh字符串,一般该二进制程序使用staticlink静态链接,可以找到很多的gadget,我们可以利用这些gadget进行系统调用但是在动态链接时,gadget就变少了,也是同样的没有system()函数,这时我们需要再函数动态绑定的libc中找
  • 2024-06-02一些题目练习。
    picoctf_2018_echoback32位格式化字符串,可写got表。fmtstr_payload写puts@got为vuln、printf@got为system@plt一把梭frompwncyimport*context(log_level="debug",arch="i386")filename="PicoCTF_2018_echo_back"remote_libc="/home/tw0/D
  • 2024-06-02LitCTF部分wp
    litctfwp第一次ak了web和misc,非常激动,感谢lictf给我这个机会最终成果全靠队里的密码逆向✌带飞。一个人就砍了近一半的分数这里是我们队的wpwebexx题目名反过来就是xxe,考察xxe,查看登录的数据包发现传的就是xml数据,没过滤啥,基础的payload就出了importrequestsport=28
  • 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-29pwn题libc换源
    资料:pwn题更换libc版本(z1r0.top)​pwn技术分享——使用patchelf和glibc-all-in-one替换程序依赖的libc文件_哔哩哔哩_bilibili下载libc./download2.23-0ubuntu11.2_amd64#glibc为你想要下载glibc的名字./download_oldlibc#list没有,可以使用./downl
  • 2024-05-28libc glossy 嵌入式底层移植
    Newlib的构成Newlib由三部分构成:libgloss、libc、libm,三者在Newlib原代码中的存储位置如下。newlib-x.y.zlibglossnewliblibclibmlibc是标准C库,libm是标准数学库,那libgloss是干啥的?C库的部分函数需要引用系统调用,裸机系统没有这些系统调用,那么就由C库中的
  • 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-26pwn练习
    [GFCTF2021]where_is_shellfrompwnimport*>>>elf=ELF("./shell")[*]'/home/za/ctf/pwn/nssctf/whereisshell/shell'Arch:amd64-64-littleRELRO:PartialRELROStack:NocanaryfoundNX:NXen
  • 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-[OGeek2019]babyrop
    查看一下保护情况丢进ida里分析主函数调用了一个含有alarm的函数,这个函数会设置一个定时器,到时间自动退出程序为了方便调试,我们直接patch掉这个函数接着分析,主函数读入了一个随机数,并将其传入sub_804871F函数sub_804871F函数读取输入,并检查输入的是否和随机数相同,不相同
  • 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-27Fastbin attack&&Double free和Unsortbin leak的综合使用
    Fastbinattack&&Doublefree和Unsortbinleak的综合使用✅今天做一个综合题目,包括利用Fastbinattack实现多指针指向一个地址,以及利用Unsortbinleak泄露libc基地址和修改__malloc_hook地址为one_gadget题目是buuctf上面的一道题目,题目链接https://buuoj.cn/challenges#babyhe
  • 2024-04-27pwn知识——劫持tcache_perthread_struct(Ubuntu22.04之前)
    前言(可忽略)堆不愧是堆...知识点真的要多用动调查看堆的状态才好理解tcache_perthread_struct的结构源码#defineTCACHE_MAX_BINS64/*Weoverlaythisstructureontheuser-dataportionofachunkwhenthechunkisstoredintheper-threadcache.*/typedefst
  • 2024-04-22palurctf_Palu
    Paluctf_Palubamuwe@bamuwe:~/palu$checksecPalu[*]'/home/bamuwe/palu/Palu'Arch:amd64-64-littleRELRO:NoRELROStack:CanaryfoundNX:NXenabledPIE:NoPIE(0x400000)Canaryfound,soweshouldtr
  • 2024-04-18运行MongoDB 报错GLIBC_2.14 not found
    Linux环境下安装完mongodb,运行./mongod报错如下#./mongod./mongod:/lib64/libc.so.6:version`GLIBC_2.14'notfound(requiredby./mongod)使用rpm-qa|grep glibc查看系统当前的glibc版本为2.12使用如下命令查看系统glibc最高支持的版本为2.12#strings/lib64/libc.s
  • 2024-04-17pwn知识——(x86)格式化字符串中利用fini_array及拓展
    导言这类题型还是我复现CISCN_2019_西南的PWN1的时候遇见的,算是涨知识了前置知识我们都知道,在程序中最先调用的不是main,也不是__libc_start_main,而是_start,我们来看一下再x86下的_start.text:08048420public_start.text:08048420_start
  • 2024-04-12进阶 stack smashing--canary 报错利用 && environ泄露栈地址
    进阶stacksmashing--canary报错利用&&environ泄露栈地址这部分是对进阶stacksmashing的使用,以及对environ的认识,我们可以看一个buu上具体的题目题目连接https://buuoj.cn/challenges#wdb2018_guess看一下保护,pie没有开64位ida载入看一下那么在ida里面看见还是挺麻
  • 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函数