前两篇博客讲述了解pwn题的环境配置和ROP攻击的原理,以及两道最基本的ROP攻击题目,详情见:
(59条消息) pwn入门(1):kali配置相关环境(pwntools+gdb+peda)_Bossfrank的博客-优快云博客(59条消息) pwn入门(2):ROP攻击的原理,缓冲区溢出漏洞利用(ret2text+ret2shellcode)_Bossfrank的博客-优快云博客本节我们再继续介绍ROP攻击的两个基本实例。
ret2syscall
二进制下载链接为点此处下载ret2syscall
与ret2text和ret2shellcode一样,我们先检测程序开启的保护,命令(把二进制程序改名为ret2syscall):
checksec ret2syscall
发现开启了NX防护措施,源程序为 32 位:

查看IDA pro(按F5),同样存在溢出点gets函数:

然后我们再搜一搜有没有类似syscall函数和'/bin/sh'字符串这样的特征可以利用,发现确实有'/bin/sh'字符串,位于0x080be408

当然,也可以用ROPgadget搜索'/bin/sh',命令如下:
ROPgadget --binary ret2syscall --string '/bin/sh'
也可找到字符串所在地址,为0x080be408

然后貌似也没有其他有价值的东西可直接利用了。我们可以尝试利用系统调用,但如何给 syscall 传参呢

本文详细介绍了如何利用ROP技术进行ret2syscall和ret2libc1攻击,包括环境检测、漏洞利用、系统调用参数设置和gadgets的寻找与利用,展示了获取shell的过程,帮助读者理解ROP攻击的基本原理和步骤。
最低0.47元/天 解锁文章
627





