[BUUCTF]PWN——[ZJCTF 2019]EasyHeap】的更多相关文章

[ZJCTF 2019]EasyHeap 附件 步骤: 例行检查,64位程序 试运行一下看看程序大概执行的情况,经典的堆块的菜单 64位ida载入,首先检索字符串,发现了读出flag的函数 看一下每个选项的函数 add 这边size的大小由我们输入控制,heaparray数组在bss段上存放着我们chunk的指针 edit,简单的根据指针修改对应chunk里的值,但是这里的size也是由我们手动输入的,也就是说只要我们这边输入的size比add的时候输入的size大就会造成溢出 delete,释…
[ZJCTF 2019]Login 附件 步骤: 例行检查,64位程序,开启了canary和nx保护 2. 试运行一下程序 3. 64位ida载入,检索字符串,在程序里找到了用户名admin和密码2jctf_pa5sw0rd 再次尝试登录,无果 在程序里找到了后门函数,backdoor=0x400e88 c++写的程序,看起来有点费劲,自己看了好久都找到漏洞在哪里,后来借鉴了其他师傅的wp后才发现了猫腻 问题出现在检查密码的那个函数上 反编译出来的伪代码看起来没什么问题 但是我们按下tab,看它…
目录 逆向分析 create 函数 edit 函数 delete 函数 利用思路 exp 脚本 get flag 内容来源 逆向分析 -------------------------------- Easy Heap Creator -------------------------------- 1. Create a Heap 2. Edit a Heap 3. Delete a Heap 4. Exit -------------------------------- Your choi…
BUUCTF 上的题目,由于部分环境没有复现,解法是非期望的 house of spirit 第一次接触伪造堆的利用方式,exp 用的是 Pwnki 师傅的,本文为调试记录及心得体会. 逆向分析的过程请见超链接,下面是我加了注释后的 exp: from pwn import * #p = process('./easyheap') p = remote('node3.buuoj.cn' ,'27234') elf = ELF('./easyheap') context.log_level = '…
[BUUCTF]PWN--babyheap_0ctf_2017 附件 步骤: 例行检查,64位,保护全开 试运行一下程序,看到这个布局菜单,知道了这是一道堆的题目,第一次接触堆的小伙伴可以去看一下这个视频,我也刚接触堆不久,有些地方我也讲不清楚 ida载入,先看一下main函数,做堆题的时候需要将程序给理清楚了,这边的几个选项函数一开始不是如图所示的,我们可以右击给他重新命名一下,为了让我们看的更清楚 add,就是简单的创建一个chunk 在创建堆时有一个结构体,这个结构体大概是这样的: str…
[buuctf]pwn入门 pwn学习之路引入 栈溢出引入 test_your_nc [题目链接] 注意到 Ubuntu 18, Linux系统 . nc 靶场 nc node3.buuoj.cn 25677 [注] nc命令详解 -c shell命令为"-e":使用/bin/sh来执行 [危险] -e 文件名程序在连接后执行 [危险] -b 允许广播 -g 网关源路由跃点,最多8个 -G num源路由指针:4,8,12... -i secs 发送的线路和扫描的端口的延迟间隔为1秒 -…
[第五空间2019 决赛]PWN5 题目网址:https://buuoj.cn/challenges#[第五空间2019%20决赛]PWN5 步骤: 例行检查,32位,开启了nx和canary(栈保护) nc一下,看看程序大概的执行情况,可以看到当输入的长度过长的时候,他的回显会有点问题,猜测输出语句存在问题 32位ida载入,shift+f12查看一下程序里的字符串,看到了 /bin/sh 双击跟进,ctrl+x找到调用这个字符串的函数 关于格式化字符串详细的讲解,看这里 看文章感觉还是不是很…
[BUUCTF]--hitcontraining_uaf 附件 步骤: 例行检查,32位,开启了nx保护 试运行一下程序,非常常见的创建堆块的菜单 32位ida载入分析,shift+f12查看程序里的字符串,发现了/bin/sh,ctrl+x,跟进找到了后面函数,shell_addr=0x8048945 堆的main函数很简单,逻辑很简单,也没什么好说的,直接看菜单的各个选项 add,可以发现创建了两个chunk,第一个chunk是默认的,存放puts函数,我们可以控制第二个chunk add(…
1' and '0,1' and '1  : 单引号闭合 1' order by 3--+ : 猜字段 1' union select 1,database()# :开始注入,发现正则过滤 1' and extractvalue(0x0a,concat(0x0a,(database())))# :数据库 :supersqli 0';show databases;#   : 尝试一堆后发现堆叠注入 0';show tables;# 然后就迷了,怎么从表中得到字段呢?后来查资料才知道,show也是可…
pwn好难啊 PWN 1,连上就有flag的pwnnc buuoj.cn 6000得到flag 2,RIP覆盖一下用ida分析一下,发现已有了system,只需覆盖RIP为fun()的地址,用peda计算偏移为23,写脚本 from pwn import* sh=remote('f.buuoj.cn',6001) payload='a'*23+p64(0x401186) sh.sendline(payload) sh.interactive() 得到flag 3,warmup_csaw_2016…