随笔分类 - ctf_pwn
pwn刷题
摘要:pwn | ez_pz_hackover_2016 x86 checksec: 基本上逻辑是这样的: 漏洞函数是一个栈溢出: 这里有一个坑,传进vul函数的是input字符串的地址的地址,不是input字符串的地址,所以memcpy的时候复制的内容不是从input字符串的开头开始的: 这样返回地址是
阅读全文
摘要:pwn | ciscn_2019_s_3 x64 ret2syscall 主要参考:https://blog.csdn.net/github_36788573/article/details/103541178 感觉ret2syscall比较灵活,哎。 from pwn import * conte
阅读全文
摘要:pwn | jarvisoj_level3 x86 ret2libc 非常常规的ret2libc exp: from pwn import * from LibcSearcher.LibcSearcher import * context.log_level = 'debug' elf = ELF(
阅读全文
摘要:pwn | [HarekazeCTF2019]baby_rop2 x64 ret2libc 给了libc 这个题有一点点问题,就是我本机ubuntu20栈溢出跳不出去。。。很怪,就直接打remote了。 补充 重新调试了一下,本机的问题(如下) rbp-4的地方是一个变量v6 所以读取完了以后对v6
阅读全文
摘要:pwn | jarvisoj_tell_me_something x64 栈溢出 ret2text 存在后门 直接溢出跳过去就行了。 唯一有点区别的就是这里面没有push ebp和pop ebp,所以只需要覆盖0x88就行了 exp: from pwn import * context.log_le
阅读全文
摘要:pwn | ciscn_2019_es_2 x86 ret2text 栈迁移 这是我第一次做栈迁移的题目,浅浅记录一下思路 关键的利用点在于利用leave ret的组合把esp搬到低地址的地方(也就是我们输入的地方) 这题有两次输入,第一次通过溢出获取ebp地址上的值,也就是原ebp的地址 这时候先
阅读全文
摘要:pwn | pwn2_sctf_2016 32位ret2libc + 整数溢出 题目给了syscall 但是找不到pop eax,没办法使。 exp如下: from pwn import * from LibcSearcher.LibcSearcher import * import struct
阅读全文
摘要:pwn | bjdctf_2020_babyrop x64 ret2libc 常规题 注意调用约定即可 exp: from pwn import * from LibcSearcher.LibcSearcher import * import struct context.log_level = '
阅读全文
摘要:pwn | bjdctf_2020_babystack2 ret2text 一个整数判断,比较的时候是int,传进read当参数的时候是unsigned int,输入负数就能绕过。 然后跳转到后门函数就行了。 怪没意思的,直接远程秒了。 exp: from pwn import * context.
阅读全文
摘要:pwn | 铁人三项(第五赛区)_2018_rop ret2libc 好久没整pwn题了,ret2libc整了好久才打通== vulnerable function 里面存在栈溢出,只开了nx保护。 libc的版本是2.27 再整理一遍延迟绑定的思路,首先,调用动态链接库中的函数采用的全部都是间接c
阅读全文
摘要:pwn | ciscn_2019_ne_5 菜单题:(不知道为什么ida7.0会sp错误,但是不影响,直接看汇编一样的) 在下面的switch case里面可以看出还有4这个选项: 点进去发现strcpy可以利用: 就是先addlog写rop,然后利用就行了。 一开始我的思路是scanf写个/bin
阅读全文
摘要:pwn | others_shellcode buu的题目,nc直接给shell
阅读全文
摘要:pwn | ciscn_2019_n_5 很简单,啥保护都没有 思路也很简单,直接全局变量写shellcode然后栈溢出跳转过去。 存在一点点问题,就是本地ubuntu20bss段执行不了shellcode,目标机器ubuntu18可以执行【很怪,这个地方一直没弄明白】。 exp: from pwn
阅读全文
摘要:[HarekazeCTF2019]baby_rop pwn真的是越玩越上瘾 这是一个x64的栈溢出rop,常规操作: 存在system存在binsh字符串。 太好办了 exp: from pwn import * import time context.log_level = 'debug' sh
阅读全文
摘要:not_the_same_3dsctf_2016 栈溢出ret2text rop main 存在后门: 将文件写进bss段的全局变量 控制一下执行流程ret2write然后输出这个变量就行了 exp: from pwn import * import time context.log_level =
阅读全文
摘要:ciscn_2019_en_2 和ciscn_2019_c_1完全一样 exp见https://www.cnblogs.com/Mz1-rc/p/15553823.html
阅读全文
摘要:bjdctf_2020_babystack ret2text exp: from pwn import * import time context.log_level = 'debug' sh = remote('node4.buuoj.cn', 27865) p_backdoor = 0x0000
阅读全文
摘要:get_started_3dsctf_2016 ret2text 坑爹题,程序异常结束就无回显,得跳转到exit函数 exp: from pwn import * import time context.log_level = 'debug' sh = remote('node4.buuoj.cn'
阅读全文
摘要:jarvisoj_level2 简单栈溢出rop ret2text 存在system和binsh字符串 直接丢exp: from pwn import * context.log_level = 'debug' # sh = process('./level2') sh = remote('node
阅读全文
摘要:ciscn_2019_n_8 没有溢出,纯粹考察数据类型转化 直接丢exp: from pwn import * context.log_level = 'debug' # sh = process('./ciscn_2019_n_8') sh = remote('node4.buuoj.cn',
阅读全文