CTF|pwn栈溢出入门题level3解题思路及个人总结
解题思路
拿到题目将文件下载下来拖入ubuntu
发现这一次的文件比较特殊:是一个linux环境下的压缩包,自然而然想到的是解压它
通过命令行tar -xvf level.tar
将其解压出来 发现有两个文件:level和libc
都拖入IDA
特殊的地方在:本题没有直接给出system和bin/sh的位置,但是文件中有个write函数可以利用
我们IDA打开libc文件(关于libc文件是什么有什么 会在总结写到)
总体思路为:我们通过read函数的栈溢出漏洞写入垃圾数据填充后溢出,利用write函数返回函数write真实地址 然后通过利用函数在内存中的地址和libc文件中的偏移的差相等,来获取基址,通过基址来获取system和/bin/sh的地址,再第二次利用read写入,获得shell。
编写exp
from pwn import *
r=remote('220.249.52.134',47355)
elf=ELF