【PWN · 高级栈相关】
文章平均质量分 60
stacksmash、栈迁移等
Mr_Fmnwon
湖南の大学网络工程童鞋一枚,努力养成看博客写博客的习惯。
展开
-
【PWN · ORW | 栈迁移 | ROP】[HGAME 2023 week1]orw
ROP的ORW还是第一次做,之前接触到的都是shellcode形式的利用libc的gadget是个很好的思路,能获得大量有益的gadget。原创 2024-01-20 00:24:02 · 674 阅读 · 0 评论 -
【PWN · ret2csu】[HNCTF 2022 WEEK2]ret2csu
记一道ret2csu。原创 2023-11-11 00:56:53 · 384 阅读 · 0 评论 -
【PWN · 栈迁移|off-by-one|伪随机|爆破】[HDCTF 2023]Makewish
一道精巧、包含很多要点的题目。原创 2023-11-03 00:53:42 · 236 阅读 · 0 评论 -
【PWN · 栈迁移】[CISCN 2019东南]PWN2
当存在栈溢出但是溢出字符数并不多的情况下,可以尝试在别处构造rop链,通过栈迁移到目标内存区域,执行rop链。这里不讲栈迁移原理,仅是对题目的分析,适合对栈迁移有初步了解的童鞋食用。原创 2023-10-14 12:14:09 · 267 阅读 · 1 评论 -
【PWN · 栈迁移】[BUUCTF][Black Watch 入群题]PWN
进能够覆盖ebp和ret,很难不往栈迁移上想。修改ebp和ret后我们可以将栈指针指向另一处地址addr,需要ebp修改为ebp-4和ret修改为leave;ret地址。这是触发栈迁移的基本过程。查看整个代码发现没有后门函数。2.泄露libc没有system函数的使用,但是有write函数。我们可以通过write泄露write的真实地址,从而泄露libc的地址。进一步可以拿到system和str_bin_sh的地址。3.组合流程①read大量数据,可以是aaaa + write.pl原创 2023-08-01 20:38:25 · 340 阅读 · 0 评论 -
【PWN · 栈迁移】[BUUCTF]ciscn_2019_es_2
当前溢出可用空间比较少时(极端情况下仅能覆写ebp和ret),可以通过栈迁移的方式,扩大shellcode的容纳空间,其核心是将esp移动到一段shellocode开头。而esp总是由ebp赋值,所以总是通过两次leave;ret的方式修改esp到固定位置。一、代码审计有两次读入操作。read进的内容超过字符串的长度,存在栈溢出漏洞。然而计算溢出长度,发现只有8字节,即刚好可以覆写ebp和ret。发现system的函数(意味着plt对应的表项存在),然而这个hack函数并不能给出flag。原创 2023-07-30 20:31:26 · 441 阅读 · 3 评论 -
【PWN · Stack Smash】[2021 鹤城杯]easyecho
Canary保护,是在栈上插入一段随机数;进入函数后,也就是call完后会有push ebp,mov ebp,esp,最后来个mov esp。canary保护特殊在上述操作后会再加一个canary。最后函数leave ret前会检测一次,canary与原先值是否相同来判断是否被栈溢出覆盖返回地址了。然而,Smash这种方法,恰好是利用Canary保护机制,修改相关函数参数,泄露信息。详细介绍Smash的文章不在少数,本文主要聚焦于做出题目,因此重点(但非详细)阐述我所理解的重点部分。原创 2023-07-30 13:49:23 · 609 阅读 · 1 评论