目录
87、picoctf_2018_can_you_gets_me
91、gyctf_2020_some_thing_exceting
96、mrctf2020_easy_equation 格式化字符串
97、ciscn_2019_s_9可以试试栈迁移shellcode
81、pwnable_hacknote UAF
释放后重新申请更改chunk0的content指针为puts_got,利用打印功能泄露地址,再释放再申请myprint函数改成system函数后,system参数就是system地址内容后面再跟上||sh正好4字节 或者;sh\x00
82、jarvisoj_level5
level3 level4 level5都一样的?
83、hitcon2014_stkof unlink
调输出调半天,delete函数最后一句要是加recvuntil(OK\n) 就把你要的输出函数地址接受了,我就说调试模式看见输出有7f了 咋就不见地址输出来呢
unlink后 把1指针改成freegot,3指针改成putsgot,编辑1改free为puts,调用delete3就是打印puts函数地址
84、cmcc_pwnme2
溢出 gets写文件 后门函数
85、actf_2019_babystack 栈迁移
栈迁移,可以溢出16字节,正好溢出到返回地址,那个可恶的send到底是咋回事啊 sendline就是过不去,两次必须都得是send才行,之前有一道题就是,还有ubuntu18涉及到system要栈对齐加一个ret
86、npuctf_2020_easyheap OFFBYONE
想办法改系统chunk,edit就是改got,show就是泄露地址
p64(free_got_addr)前是p64(0)就不行 得大一点不知道为啥
87、picoctf_2018_can_you_gets_me
同63、inndy_rop 工具:ROPgadget --binary 程序名字 --ropchain
88、picoctf_2018_got_shell
puts函数got表地址改成后门函数地址
89、[BJDCTF 2nd]snake_dyn
ssh -p 端口 ctf@node3.buuoj.cn
扫码 输入密码后就是玩游戏嘛,结果这个按键有延迟啊 画面还总闪,2900的时候莫名其妙的撞死了
溢出也没看懂啥原理,strncpy0x100怎么就溢出了?
我明白了,全局变量name和flag是挨着的,主程序运行后将flag文件内容读入flag中,name变量大小0x100如果全用a填充的话没有0结束符就相当于flag后面的内容作为name的内容,游戏时左上角显示你的name也就是显示256个a后面跟flag
如何用python实现ssh登陆 、输密码 snakes 、运行./snake ,
sh = ssh(host='node3.buuoj.cn', user='ctf', password='sNaKes', port=25637)
p = sh.process('./snake')
payload = b'a' * 0x100
p.sendline(payload)
p.interactive()
90、axb_2019_brop64
题目的本意是不给你文件的,那我就不会做了,盲打感觉好难
91、gyctf_2020_some_thing_exceting
92、picoctf_2018_shellcode
试运行
题目的难点就在于不能反编译??汇编大概能看懂,根据运行及题目名猜测gets输入shellcode,然后程序执行shellcode,gets的变量怎么传到主函数的call eax那就不太懂了
93、hitcontraining_unlink
同 79、hitcontraining_bamboobox
94、axb_2019_heap
95、ciscn_2019_final_2
96、mrctf2020_easy_equation 格式化字符串
多写一个b,8个a正好对齐在第8 偏移,那么第九偏移就是我们要的,不过没想明白为啥不考虑那几个寄存器呢?
97、ciscn_2019_s_9可以试试栈迁移shellcode
简单做法是libc,代码写的多些
能溢出18字节,实际用了16字节,刚好够用,还可以考虑栈迁移
98、axb_2019_fmt64 格式化字符串
先了解一下字符串字节取值,>>8舍弃最后一字节,16舍弃两字节,&0XFF取最后一字节 0xff最后两字节,最后求得的system地址与printf地址后三字节不同,字符串首字母偏移8
99、[极客大挑战 2019]Not Bad OWR
100、inndy_echo格式化字符串
buf 偏移7,将printf_got_addr改成system_plt_addr,学会使用fmtstr_payload工具写法