- 博客(8)
- 收藏
- 关注
原创 ctfshow pwn105
然后wp就很简单了先覆盖0x11+4个字节,然后在ret那覆盖backdoor的地址后面再ljust(0x104,b'a')即可。范围在3+255n---8+255n之间都可以,因为会溢出!这道题不是要求3--8之内吗?这道题就离谱,我也是看了一眼wp才知道的.
2026-04-18 10:07:19
21
原创 ctfshow pwn103
摘要:这道题通过溢出漏洞覆盖src的值来绕过限制。解题步骤包括:输入v1判断是否≤80,然后利用未限制长度的scanf输入dest,通过溢出覆盖src地址。构造payload为88字节垃圾数据加上目标地址,最终成功执行gift函数获取flag。代码使用pwntools发送payload实现交互。
2026-04-17 19:36:15
18
原创 ctfshow pwn100
最后的最后就是知道ret在栈上的位置: (0x30 - 0x10)/8 = 4 然后再加上6个寄存器的出10.即payload = (b'%'+str(backdoor_addr & 0xffff).encode() + b'c%10hn').ljust(0x10,b'a') + p64(ret_addr) 也就是高亮的这个10.这样,等到最后ret的时候,实际ret的地址就会变成backdoor的地址.网上那些算的,我说实话,我看老半天才懂,后面我发现,直接把栈调出来,立刻就能知道。
2026-04-16 19:48:06
302
原创 polarctf---choose的wp
这个会把我们输入的数据变为变为整数,然后put会把那个整数当做地址,然后读取地址的数据.因为PIE没开嘛,got表没偏移,elf.got[]读到的就是真实的地址,这个时候我们就可以传入got表的地址,因为got表里面存储着函数的真实地址,然后我们传入之后,再接收到的就是函数的真实地址,然后用LibcSearcher查一下版本号即可。很明显的格式化字符串漏洞,然后这个呢就拿来泄露canary.具体步骤就是发送%p-%p-%p-%p-%p-%p...然后找结尾为00的。有时候也可能不是第一个,就很坑)
2025-12-11 12:49:48
180
原创 ctfshow pwn74
做这道题理解one_gadget只是第一步,最难的我觉得是找到ctfshow的libc库,我服了,我找了半天,还是没找到,其实我觉得这种题应该配一个libc库的,不然时间全拿来找libc库了,关键是你找的版本可能还不对,还得继续找.这边本人放弃了,就取巧了.然后刚写出来一下顿悟了,又有了顿悟版.然后知道了one_gadget,也有了libc库,求偏移那些,都写到pwn74了求偏移包会的,然后偏移加上one_gadget直接发过去.就pwn成功了.这边就直接展示代码了(依旧可能有点小红字,但是不影响运行)
2025-11-11 11:40:43
905
原创 pwn入门69
首先这道题的大概思路就是,ORW嘛,但是栈空间太小了写不下,于是我们准备写到0x123000,然后栈上我们就写一个read函数和相关跳转指令,然后返回地址覆盖层jmp rsp,紧接着就是sub rsp,30;这道题我写了好久,写了大概两天,网上的wp都翻遍了,wp的代码我直接复制来用都出不来,给我难受坏了,好在2025年11月3日21店50分,经过主播的不懈努力终于写出来了.欧克话不多说,进入正题。4.shellcode += shellcraft.read(3,mmap,100),这里是3,不是0。
2025-11-03 22:20:39
456
原创 ctfshow pwn 67
关于这道题,思路大概就是通过提示的栈地址,来找到seed的栈地址,再利用nop雪橇来解决rand()随机数的问题.使rand()无论生成哪一个随机数,最终系统执行流都能导向shellcode
2025-10-31 13:01:01
701
原创 BUUCTF----rip解题过程
这是一道关于栈溢出漏洞利用的CTF题目。分析发现64位ELF程序无任何保护机制(CANARY/NX/PIE未开启),通过gets函数的栈溢出漏洞实现攻击。程序存在后门函数(地址40011a),采用ret2text技术覆盖返回地址控制执行流。计算得到偏移量为0xf+8,构造payload跳转到后门函数即可获取shell。成功执行后通过cat flag命令获取flag。文章还简要介绍了常见保护机制(NX/DEP、ASLR、Canary等)及其绕过方法,以及ret指令、shell等关键概念。这种栈溢出利用是Pwn
2025-10-14 19:46:06
489
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅