随笔分类 - 快乐学习pwn
对于CTF赛事之中二进制pwn方向的修炼之路
摘要:note(美团2022) 比较简单的越界漏洞,堆本身并没有什么漏洞,而且保护并没全开,所以逆向思维。必然是ROP类而非指针类,故我们着重注意unsigned int等无符号数前后是否不一致 int __fastcall edit(__int64 a1) { int idx; // [rsp+14h]
阅读全文
摘要:fastbin_reverse_into_tcache(2.34) 本题所使用的libc版本为2.34;(最新版 libc2.34版本已经没有了所谓的hook函数,甚至exit_hook(实际为某个函数指针)也已经不能够使用;能够利用的手法已经很少了; 高版本glibc堆的几种利用手法浅谈glibc
阅读全文
摘要:fuzzerinstrospector(首届数字空间安全攻防大赛) 主体流程(相对比较简单,GLibc为常见的2.27版本, Allocate申请函数(其中有两个输入函数Read_8Int、Read_context; 还存在着后门函数; 关键点在于如何利用Show函数来将地址泄露出来; 故此时我们可
阅读全文
摘要:Shuffle 首先拖进ida去查看伪代码,那就要找到伪代码,按常规操作:搜索字符串,跳转,F5伪代码。而这题我们可以看到字符串是没有我们想要的一些字符出现,而我们可以直接在左边里找到main函数,F5就能看到伪代码。 伪代码也有些长,我们直接看最后,结合着题目所给的提示: 代码如下: 那我们就分析
阅读全文
摘要:就从CTF WIKI的例题开始吧,此具有由易到难的特性,适合上手; 1. 首先便是kernel UAF(感觉UAF是ctf kernel常出的点; 下载例题,那么我们便要开始分析了漏洞所在了;存在着三个文件boot.sh bzImage rootfs.cpio,而rootfs.cpio之中便是磁盘文
阅读全文
摘要:这里我们续接上回,https://blog.csdn.net/njh18790816639/article/details/126235581 接着分析高版本的Glibc利用手法,而高版本的利用手法,大都涉及到了io_file以及虚表这类函数指针等 House_OF_Kiwi 这篇文章house o
阅读全文
摘要:ciscoRV110W复现 因为没有真机设备,故我们采用了qemu进行模拟仿真;此时我们采用qemu-system系统态进行模拟(该模式下开销比较大 而位于内核与磁盘镜像之中可以找到我们想要的内核以及磁盘镜像; 而此时我们写入run.sh之中内容,这些内容即为启动前的准备工作; sudo brctl
阅读全文
摘要:house of cat 参考:https://bbs.pediy.com/thread-273895.htm#msg_header_h1_0(提出了这种新的方式) 该文章虽然提出了新的手法,但是有些地方省略过多,故进行了调试分析,总结出完整的一个流程,分享给大家: 位于 /malloc/mallo
阅读全文
摘要:360chunqiu2017_smallest 整体较为简单; 先放个exo;较为简单; from pwn import * context(arch='amd64', os='linux', log_level='debug') binary = './smallest' #r = remote(
阅读全文
摘要:happytree(SUSCTF) 分析主要函数! 主要三步操作,Insert、Delete、Show函数! 可以看到其为二叉树结构体! 因为全保护开启,故具体思路为泄露地址(heap、libc),然后利用libc2.27版本tcache的double free来修改__free_hook函数为sy
阅读全文
摘要:PLC NOE-771 尝试IOT的,挑个简单的来过一遍流程,大概明白了一个固件分析的流程,感觉如果挖掘CVE的话还是FUZZ可能更加合适,直接固件分析可能带来的工作量较大!过binwalk -A指令来对固件的CPU架构进行分析,此外也可以用binwalk -Y指令来调用capstone反汇编引擎来
阅读全文
摘要:强网杯2019 拟态 STKOF 本题目两个二进制文件,64位与32位 该题目加入了拟态的检查机制,题目会fork32位程序和64位程序,而我们的输入会分别传入这个两个进程,每个程序一份,然后题目会检测两个程序的输出,若两个程序的输出不一致或任一程序或者异常退出,则会被判断为check down,直
阅读全文
摘要:gyctf_2020_some_thing_interesting 经典UAF漏洞! Allocate申请函数! Free释放函数! 全保护开启,故我们利用格式化字符串漏洞泄露libc地址,从而得到malloc_hook地址。然后利用UAF漏洞修改malloc_hook为one_gadget,此时进
阅读全文
摘要:gwctf_2019_jiandan_pwn1 简单ret2libc,唯一需要注意的便是注意修改索引值,防止索引被覆盖!从而无法进行栈溢出! from pwn import * from LibcSearcher import LibcSearcher context(os='linux',arch
阅读全文
摘要:wustctf2020_number_game 此时运用我们的计算机底层的知识,可知,计算机底层储存形式为补码! -2147483648的补码形式为0x80000000,它取反加一之后仍然是0x80000000,因此这边输入-2147483648 护网杯_2018_gettingstart 此时又要
阅读全文
摘要:[极客大挑战 2019]Not Bad orw类型,打开文件,读入内容,输出内容!但需要注意gadget! from pwn import * context(log_level='debug',os='linux',arch='amd64') binary = './bad' r = remote
阅读全文
摘要:mrctf2020_easy_equation 简单的栈溢出漏洞,格式化字符串漏洞!此处采用栈溢出漏洞! axb_2019_fmt64 经典循环格式化字符串64位漏洞! 唯一注意的地方pwntools的FmtStr_payload无法成功获取权限!需要手动计算字节进行攻击! from elftool
阅读全文
摘要:picoctf_2018_shellcode 题目很很简单! from pwn import * context(log_level='debug',os='linux',arch='i386') binary = './PicoCTF_2018_shellcode' r = remote('nod
阅读全文
摘要:gyctf_2020_borrowstack 使用栈迁移,将rsp迁移到bss段上,而bss段上处于可控位置。但是注意bss段低处处于不可写状态,如果rsp移动到该处,则程序无法进行下去! 尝试使用system函数,但是往往会涉及到bss段低处地址,而one_gadget则不需要过多占用栈地址,故采
阅读全文
摘要:Start from pwn import * context(log_level='debug',os='linux',arch='i386') binary = './start' r = remote('chall.pwnable.tw', 10000) #r = process(binary
阅读全文