Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

how2heap系列n句话总结 fastbin_dup double free后可malloc出两个相同的地址,不能连续free同一个指针,必须隔一个(链表头check) 双释其址,再赋之,可得旧地。然连释一指针,不可为也,必隔一而释之。 fastbin_dup_into_stack 利用上面的方法,对于malloc出的两个相同的地址,在第二次malloc出该地址前,利用第一次ma...

(缓慢更新中1/4) Novice Challenge 一句话版本:改strlen的got表 首先从sub_96B中泄漏libc地址: 1234567891011121314151617181920int sub_96B(){ int v1; // [rsp+Ch] [rbp-264h] BYREF __int64 v2[44]; // [rsp+10h] [rbp-260h...

heap-zero 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061/* * phoenix/heap-zero, by https://exploit.education * * Can you hijack f...

这两道似乎没有x86_64的解法。 format-three 123456789101112131415161718192021222324252627282930313233343536373839404142/* * phoenix/format-three, by https://exploit.education * * Can you change the "chang...

新的章节讲的是利用格式化字符串漏洞的故事。 format-two全是x86的题解,找了半天才在一个评论区里找到如何回避x86_64下\x00的坑 format-zero 本题源码 12345678910111213141516171819202122232425262728293031323334353637383940414243444546/* * phoenix/format-ze...

听说把这段写进~/.gdbinit里面会让栈的情况更加真实(在调试的时候) (参考https://n1ght-w0lf.github.io/binary exploitation/stack-six/) 123unset env LINESunset env COLUMNSset env _ /opt/phoenix/amd64/stack-six 然后这是本题源码 1234567891...

最近又是数模又是开学的,很难受,还是看看远方的水入门题吧。没有动态基址,还是比较简单的。 (写这段的时候还没想到接下来还有概率论考试,还打了场ctf校赛,所以。。。) stack-three 覆盖一个即将被调用的函数指针的数据,跟前面差不多。 123456789from pwn import *shell = ssh("user", "localhost&qu...

这两道非常简单,而且只有数据读入方式的区别。跟zero一样,只是对覆盖的数据有要求。 stack-one 将程序第一个参数strcpy到字符串。 上参数。 pwntools的sh.run可以接收字节数组作为参数,里面可包含启动参数。(看了下文档,对于run方法:Backward compatibility. Use system() ) 12345678from pwn import *...

找到一个学习pwn的项目http://exploit.education ,决定让我临时抱佛脚学的pwn走向正轨,试试开个笔记系列(每次pwntools脚本都忘记怎么写),希望不要半路弃坑。定个小目标,至少把Phoenix系列做完吧。 环境配置 首先在more-downloads里下载phoenix的虚拟机系统镜像,根据你的架构选择。这就是靶机。在启动之前,我们需要安装qemu-syste...

看从零到一第一遍有没懂的地方记录一下 长篇大论: 现代操作系统往往有比较完善的MPU机制,可以按照内存页的粒度设置进程的内存使用权限。内存权限分别有可读(R)、可写(W)和可执行(X)。一旦CPU执行了没有可执行权限的内存上的代码,操作系统会立即终止程序。 在默认情况下,基于漏洞缓解的规则,程序中不会存在同时具有可写和可执行权限的内存,所以无法通过修改程序的代码段或者数据段来执行任意代码。...