[BUUCTF]PWN——ciscn_2019_s_4】的更多相关文章

ciscn_2019_s_4 附件 步骤: 例行检查,32位程序,开启了nx保护 本地试运行一下,看看大概的情况,两次输入,让人联想到栈迁移 32位ida载入,找到关键函数,只可以溢出8字节,没法构造太长的rop, 程序最后是用leave和retn还原现场的,首先想到的就是栈迁移 leave实质 上是move esp,ebp和pop ebp,将栈底地址赋给栈顶,然后在重新设置栈底地址,我的理解是重新开栈 retn实质上是pop rip,设置下一条执行指令的地址 利用思路 利用第一个输入点来泄露e…
[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秒 -…
因为以前做过一些题目,看见1分题目也不太多了,就想着,抓紧点把1分题都刷一下吧.所以开个帖子记录一下,题目简单的话就只贴exp了. [BJDCTF 2nd]secret 这里有一个输入可以进行溢出,name在bss段,下面有一个变量count 输入完名字会再次输入,会和一些值进行判断,如果能连续判断正确10000次,就可以拿到flag.这里每次判断正确一次,count这个变量会减一. 所以有两种做法: 1.将所有正确的值dump下来,然后写脚本,答完10000次,就拿到flag了. 2.将cou…
[BUUCTF]--hitcontraining_uaf 附件 步骤: 例行检查,32位,开启了nx保护 试运行一下程序,非常常见的创建堆块的菜单 32位ida载入分析,shift+f12查看程序里的字符串,发现了/bin/sh,ctrl+x,跟进找到了后面函数,shell_addr=0x8048945 堆的main函数很简单,逻辑很简单,也没什么好说的,直接看菜单的各个选项 add,可以发现创建了两个chunk,第一个chunk是默认的,存放puts函数,我们可以控制第二个chunk add(…
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…
pwn难啊! 1.[OGeek2019]babyrop 先check一下文件,开启了NX 在ida中没有找到system.'/bin/sh'等相关的字符,或许需要ROP绕过(废话,题目提示了) 查看到804871F函数中有个ctrncmp函数,输入的buf与一个随机数进行比较.可以通过输入开头的字符为'\x00'进行绕过,使strlen长度为0,则strncmp判定必定成功. 之后的漏洞函数中,a1是我们之前输入的第八个字符,如果我们输入\xff时,则在read时a1会进行符号填充,那么我们就可…
pwn难啊 1.test_your_nc 测试你nc,不用说,连上就有. 2.rip ida中已经包含了system函数: 溢出,覆盖rip为fun函数,peda计算偏移为23: from pwn import * #context.update(arch = 'i386', os = 'linux', timeout = 1) p = remote('node3.buuoj.cn',27146) #p = process('./pwn1') flag_addr = 0x40118A paylo…
pwnable_hacknote 附件 步骤: 例行检查,32位程序,开启了nx和canary保护 本地试运行看一下大概的情况,熟悉的堆的菜单 32位ida载入 add() gdb看一下堆块的布局更方便理解 delete() show() 利用思路:使用uaf泄露libc,计算system,执行system('/bin/sh')获取shell 泄露libc print_note的打印功能可以帮助泄露地址. 先add chunk0,add chunk1,大小都为0x80. add(0x80,'aa…
ciscn_2019_es_7 附件 步骤: 例行检查,64位程序,开启了nx保护 本地试运行一下看看大概的情况 64位ida载入,关键函数很简单,两个系统调用,buf存在溢出 看到系统调用和溢出,想到了SROP,之前遇到过一次,关于原理可以看一下这两篇文章 https://www.freebuf.com/articles/network/87447.html https://ctf-wiki.org/pwn/linux/stackoverflow/advanced-rop/srop/?h=+s…