摘要:
学习的一下高版本的libc的利用方式。 项目地址:https://github.com/StarCross-Tech/heap_exploit_2.31 tcache_dup 源代码: 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<intty 阅读全文
摘要:
大林寺桃花 人间四月芳菲尽,山寺桃花始盛开。 长恨春归无觅处,不知转入此中来。 昨天是真的累,累到现在,才缓过神来,原来,已经进入四月了。2021年的四分之一竟然已经过去了。 这几个月,陆陆续续看着曾经的同学都即将要踏入研究生的大门。哈工大的,西交的,浙大的,南开的。啊,这些大学看起来似乎离我那么遥 阅读全文
摘要:
上周抽时间打了nepnep举办的CTF比赛,pwn题目出的挺不错的,适合我这种只会一点点选手做,都可以学到新东西。 [签到] 送你一朵小红花 64位程序,保护全开。 程序会在buf[2]处留下一个data段的地址,可以覆盖这个地址的后两个字节,使得有1/16的几率,可以让程序执行到puts5函数,就 阅读全文
摘要:
在寄存器都是非理想值情况下(shellcode可根据环境具体触发时寄存器的值做长度调整),我本着最优通用的原则,整理了Linux下32位和64位最短通用shellcode的编写。 32位 有"\x00"最短 20 byte xor ecx,ecx mul ecx mov al,0xb push 0x 阅读全文
摘要:
因为本地和远程的libc版本不同,pwn题目调试起来会有影响,所以来记录一下用patchelf和glibc-all-in-one来解决这个问题过程。 下载工具 下载patchelfgit clone https://github.com/NixOS/patchelf 下载glibc-all-in_o 阅读全文
摘要:
写在开头,感谢“影二つ”师傅的指点。 题目的做法思路网上一搜一大把,这篇博客主要记录一下这道题用pwntools写srop的时候,为什么需要省略前面8个字节。 在看题目之前,先来学习一下call这个汇编指令。 我个人理解call就是进入一个函数,但是执行完函数之后程序如何能够再返回执行call的下一 阅读全文
摘要:
第四周只放出两道题,也不是很难。 house_of_cosmos 没开pie,并且可以打got表。 在自写的输入函数存在漏洞。当a2==0时,因为时int类型,这里就会存在溢出。菜单题,但是没有输出功能。 思路:利用溢出将chunk申请到bss段,控制chunk指针,改写free为puts函数,进行 阅读全文
摘要:
一共放出五道题,都不是很难。 blackgive 考栈转移,值得注意的一点是转移过去先填充几个ret,因为如果直接在转移过去的地方写rop链,执行起来会覆盖到上面的一些指针,导致程序不能正常输入和输出。我比较疑惑的是,我不清楚为什么我用system打不通,最后用one_gadgets才做出来。 1 阅读全文
摘要:
为了打2021的ACTF,想着把2020年的pwn题做一做吧,发现2020年的pwn题质量还挺高的。反倒是2021年的题目质量不太高,好像是没有专门的pwn师傅出题,可以理解,毕竟办校赛,说白了就是用爱发电。 Check_rop 题目保护如下: 可以看到开启了FORTIFY保护。 FORTIFY技术 阅读全文
摘要:
来做一下以前比赛的题目,下面两个题目都可以在buu复现(感谢赵总)。 SWPUCTF_2019_login 32位程序,考点是bss段上的格式化字符串。用惯onegadgets了,而对于32位程序来说,onegadgets似乎不太好用,条件太苛刻了。还是用system拿shell好一点。 我见网上都 阅读全文