风之栖息地

2020强网杯 强网先锋のpwn
受到摸鱼和各种项目压力之后,终于发出来了,这次是强网杯中强网先锋的4道pwn题,剩下的pwn题还在陆续复现ing,在做了在做了ing babymessage一道神奇的栈溢出题目,有三个功能,写name,写message,输出buf,其中message的数据会被strcopy到buf上。这里的溢出点是在写message的功能上,一开始只能够溢出16字节,覆盖掉栈变量+rbp的值。这里如果只是看反编译的代码是看不出问题的,一定要观察汇编代码,这也是我经常失误的地方不太爱看汇编,555555。 这里的写message的函数里带着一个局部变量size,而这个变量因为是局部变量,它是受到rbp的值...
CNSS招新题中的一道ROP题
CNSS招新题目中有两道不错的Pwn题,拿来学习一波知识。然而其中有一道是内核ROP,复现了好几天。。还是有点问题,再加上研究生大作业集群来了(完全不能摸鱼,哭唧唧),所以那道内核题能做出来就放博客。 Sleepy Server这道题checksec发现防御全开,同时给了libseccomp,看来是对libc的调用有一定限制。 可以看到禁用了execve,不能通过直接拿shell获得flag。开始分析整个程序,看看有什么利用点。 比较容易的就能看到buf有一个溢出,但是溢出的数量有限只有0x10字节,随后看到我们输入的用户名和密码被传入一个函数判断,判断的结果正确才会进入漏洞点,我们...
花式栈溢出学习
继续进行着栈溢出的练习,这次是参考了ctf-wiki上面的演示题目,在复现过程中的一些记录。 over安恒月赛的题目,首先看程序保护,开启了NX,不能写shellcode,同时分析了程序结果发现buffer有0x50,但是输入有0x60也就是说只能覆盖rbp和ret地址,所以必须要改变栈的位置。 首先是一个trick,里面读入的函数是read,所以读入的数据是不会自动加上\0的,其他的两个函数gets和scanf都会对读入的字符串加上\0截断。利用这个差异性,我们只要填入0x50个非0数据,这样puts就会打印出rbp的值。泄露出栈基址之后,我们就能利用相对偏移来确定题目随意的栈地址。 ...
基础ROP学习
最近开始入门pwn,在白泽新手oj那里学了一波之后开始自己学剩下的内容。看到atum大佬推荐的三道基础ROP题目,就练习一下,学习思路总结经验。在网上找题的过程中发现vss基本上绝迹了。。。辛苦一番之后终于找到,为了后面的人也能快速找到题目我就把三道题一起上传了。 http://hurricane618.me/resource/basic-rop/vss http://hurricane618.me/resource/basic-rop/ropasaurusrex http://hurricane618.me/resource/basic-rop/r0pbaby r0pbaby一道强化版...