前期准备
没开啥
看看ida
发现有sh字符串
漏洞及利用思路
稍微看看这个主函数就知道他在干嘛了,先问你名字长度是多少,再用你输入的这个值去限制读取位数,说白了就是没限制,所以只要造成缓冲区溢出,覆盖到要的地址就行了,之前ida里面还看到了system字符串的加载
那说明大概率这个文件里面是有system的调用的,翻翻function后发现有backdoor,调用就可以直接getshell,地址就在下面 4006e6(64bit下的那么多0我就不打了payload里也就是一个p64()的事)
需要注意溢出位数一下是16,不是buf的长度12,要看和rbp的相对距离,所以16+rbp的8就可以到返回地址,这题不需要传入参数,所以就加个ret保证堆栈平衡就行了。
payload: