「 PWN 」 January 03, 2020
offbyone引发的一连串问题
Words count 61k Reading time 56 mins.
一、题目:Book
先来看看保护机制:
栈溢出保护没开(这是一道堆题。。),其他保护全开
ida清晰地分析一波:
1 | __int64 __fastcall main(__int64 a1, char **a2, char **a3) |
「 PWN 」 January 03, 2020
Words count 61k Reading time 56 mins.
先来看看保护机制:
栈溢出保护没开(这是一道堆题。。),其他保护全开
ida清晰地分析一波:
1 |
「 PWN 」 January 03, 2020
Words count 61k Reading time 56 mins.
先来看看保护机制:
栈溢出保护没开(这是一道堆题。。),其他保护全开
ida清晰地分析一波:
1 | __int64 __fastcall main(__int64 a1, char **a2, char **a3) |
「 CTF比赛 」 January 03, 2020
Words count 60k Reading time 55 mins.
先看保护机制:
除了pie,其他保护全开,这题因为pie是关的,但是做太多保护全开的题目,下意识已经觉得堆的地址是变的了,但是堆地址是不变的,所以饶了下弯路才走出来,下面进入正题:
熟悉的菜单堆题,这里漏洞点主要在于free函数,有个UAF的漏洞,还有在login时可以打印出密码,这里应该是泄露地址的地方
但是按照一般的方式去unsorted bin的attack不行,这里利用pie关闭,可以采用爆破的方式去泄露地址,一个字节一个字节地去泄露,从而得到libc_base...
Read article「 PWN 」 January 03, 2020
Words count 217k Reading time 3:17
1、向后合并:
1 | #!c |
「 RE 」 January 03, 2020
Words count 656k Reading time 9:56
前段时间一直碰到vm的pwn题,之前打re也是,遇到就懵,所以花时间好好整理下这部分知识点。
首先需要搞清楚的是,vm是一种逻辑,就是自己实现一个小型的虚拟机来实现简单的操作,有点自己开发计算机的感觉。
下面一步步讲解下最重要的内容:
1 | enum regist |
这是我们虚拟机的寄存器,想要的数量和类型可以自己设置,这里我们枚举...
Read article「 Article 」 January 03, 2020
Words count 129k Reading time 1:57
1、easy_pwn
这题是简单题,漏洞点在edit函数:
当我们edit时输入的size大于malloc申请时输入的size,多出10即可实现offbyone,这里malloc时只能小于0x100,所以很明显直接extend我们的chunk,先扩大然后free再malloc回来即可实现下溢出修改,大概思路如下:
1、extend the chunk,切割放真实地址到我们的used的chunk,泄露出来
2、修复chunk,再free,然后通过下溢出修改这个free的chunk,实...
Read article「 感悟 」 January 03, 2020
Words count 58k Reading time 52 mins.
第一次搭建自己的个人github博客,前前后后用了大概有2天的时间吧,
下载软件+建立库+修改主题+主题配置+文章的攥写
最头疼的是各种玄学问题的出现,让人很无语,找了各种资料去解决,收获了很多知识,也学到了很多东西,实践出真知,多实践真的很好!
关于博客的搭建,网上有一大把教程,这里就不多说了,这里分享一个大佬的基本主题配置,很受用:https://www.jianshu.com/p/3a05351a37dc
pwn代码:
1 |
「 PWN 」 January 03, 2020
Words count 60k Reading time 54 mins.
之前打比赛一直都是做ubuntu16.04的,很少做ubuntu18下的(有tcache机制),护网杯有道题是libc-2.27.so,我一开始不会做tcache,学了一晚上,理解了基础的原理和攻击方式,这里做个小小的总结。
首先是tcache的原理,这个在ctfwiki上讲的挺透彻的,这里做个复习。
1 | #堆块free后放入tcache |
「 PWN 」 January 03, 2020
Words count 28k Reading time 25 mins.
pwn的学习之路一直在进行,今天看了arm_pwn,搞环境就搞了半天,琢磨工具使用到做题,这里总结下,希望能帮助到大家,少走一点弯路。
环境是一大玄学问题,这里仅仅是 我Ubuntu16.04下的环境配置,亲测有效,但是遇到玄学的问题时,也请留言,努力帮大家解决。
1 | #安装qemu |
「 PWN 」 January 03, 2020
Words count 6k Reading time 5 mins.
1、修改read的大小:
这里很明显栈大小是0x30,但是可以输入的大小是0x12C,所以绝对的栈溢出,这里改size为0x30就不会溢出了:记住是改汇编
2、第二种改法是改leave_ret为ret_ret:
修改后:
方法二只适用于只有main函数的,没有子函数调用的栈溢出类型题目。
3、当遇到gets函数时,改成read函数:
这里改到我们的en_frame段中去执行那个read函数:
将size大小改成了0x18,就不会栈溢出啦~
「 密码学 」 January 03, 2020
Words count 28k Reading time 25 mins.
1、Base64使用A–Z,a–z,0–9,+,/ 这64个字符.
2、编码原理:将3个字节转换成4个字节( (3 X 8) = 24 = (4 X 6) )先读入3个字节,每读一个字节,左移8位,再右移四次,每次6位,这样就有4个字节了.
3、解码原理:将4个字节转换成3个字节.先读入4个6位(用或运算),每次左移6位,再右移3次,每次8位.这样就还原了.
Base64是一种很常见的编码规范,其作用是将二进制序列转换为人类可读的ASCII字符...
Read article