没做出来,wtcl,看了师傅们的wp才找到思路,收获了很多 怎么说呢,这个题很简单但是很巧妙,逆起来几乎无难度 漏洞点位于free函数,一个简单的UAF漏洞 然后接下来说说我一开始的思路 由于程序没有提供show函数,所以几乎可以确定要打_IO_2_1_stdout_,改掉flag然后泄漏libc 但是add函数里面只能申请小于0x60的chunk,根本找不到残留的unsorted bin留下的指针 然后,然后我就找不到思路了 然后学习了一波师傅们的wp 其实这个除了UAF还有一个小漏洞,就是可…
pwn200 ---XDCTF-2015 每日一pwn,今天又做了一个pwn,那个pwn呢???攻防世界的进阶区里的一道小pwn题,虽然这个题考察的知识不多,rop链也比较好构建,但是还是让我又学到了一些东西,因为害怕忘记,写个博客记录记录. 1.获取pwn题 啪的一下就下载好了. 2.查看保护 拿到题我不做,哎,我干什么呢,我先查看保护! 裸奔题,开的东西不多,所以这里就看我们发挥了 3.ida看看 首先可以很明显的看到,给的7个变量,在栈中是连续排列的,一开始我还不知道给这里的七个数赋值到底…
GDB分析ELF文件常用的调试技巧 gdb常用命令 首先是gbd+文件名 静态调试 ,gdb attach +文件名 动态调试 为了方便查看堆栈和寄存器 最好是安装peda插件 安装 可以通过pip直接安装,也可以从github上下载安装 $ pip install peda $ git clone https://github.com/longld/peda.git ~/peda $ echo "source ~/peda/peda.py" >> ~/.gdbinit 命…
本文首发安全客:https://www.anquanke.com/post/id/104760 在刚结束的HITB-XCTF有一道pwn题gundam使用了2.26版本的libc.因为2.26版本中加入了一些新的机制,自己一开始没有找到利用方式,后来经大佬提醒,才明白2.26版本中新加了一种名叫tcache(thread local caching)的缓存机制. 本文将依据2.26源码探讨tcache机制详细情况并结合HITB-XCTF的gundam一题进行实战讲解.题目下载地址. Tcache…
0x00.准备题目 例如:level.c #include <stdio.h> #include <unistd.h> int main(){ char buffer[0x10] = {0}; setvbuf(stdout, NULL, _IOLBF, 0); printf("Do your kown what is it : [%p] ?\n", buffer); printf("Now give me your answer : \n")…
虽然题目不难,但是 是我第一次做出的pwn题,得写下. __int64 sub_4007E6() { char s1; // [sp+0h] [bp-30h]@1 memset(&s1, , 0x30uLL); puts("Input your Name:"); gets(&s1); if ( strcmp(&s1, "root") ) ::s1 = strdup(&s1); return 0LL; } 这里有溢出点.s1. 然后就很…
目录 脚本说明 脚本内容 使用 使用示例 参考与引用 脚本说明 这是专门为本地调试与远程答题准备的脚本,依靠命令行参数进行控制. 本脚本支持的功能有: 本地调试 开启tmux调试 设置gdb断点,支持函数名断点.地址断点.文件名:行号断点.$rebase(0x00)断点 设置gdb script,可以设置任何内置的gdb命令 远程答题 默认支持buuctf上解题的主机,只需要指定远程port 显式指定远程ip和port 可使用装饰器函数.偏函数 在执行函数前.后线程休眠指定秒数 记录函数执行日志…
0x00:查看文件信息 该文件是32位的,canary和PIE保护机制没开. 0x01:用IDA进行静态分析 总览: 该函数就是:v5初值为1,对v2输入一串字符.然后执行一个会根据输入的字符串而修改v5的循环语句,最后调用相应的函数. 同时,发现文件里面已经含有cat flag的函数: 函数snprintf介绍: printf("cat %s", "./flag")是将cat ./flag输出到屏幕上. snprintf(s, 0x32, "cat %s…
相关文件位置 https://gitee.com/hac425/blog_data/tree/master/hctf2018 the_end 程序功能为,首先 打印出 libc 的地址, 然后可以允许任意地址写 5 字节. 解法一 在调用 exit 函数时, 最终在 ld.so 里面的 _dl_fini 函数会使用 0x7ffff7de7b2e <_dl_fini+126>: call QWORD PTR [rip+0x216414] # 0x7ffff7ffdf48 <_rtld_gl…
拿到题后,就直接开鲁.. /ctf/pwn# checksec pwnme [*] '/ctf/pwn/pwnme' Arch: amd64--little RELRO: Full RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000) 开了 NX和ERLRO. NX即No-eXecute(不可执行)的意思,NX(DEP)的基本原理是将数据所在内存页标识为不可执行,当程序溢出成功转入shellcode时,程序会尝试在数…