主要是格式化字符串进行地址泄露,然后进行相应的操作
格式化字符串的主要用途:
获取非法数据;改写特定地址的内容(一般是一个地址单元吧)
先查看文件的格式、checksec,然后运行一下看看
发现32位,没有安全防护措施,运行发现你输入什么就输出什么
用ida打开查看
然后发现很简单,先输入字符串,然后echo
分析:
fgets是问题点
整个过程中没有其他的函数调用,而且栈可写
思路:
将shellcode写入栈,然后再在函数ret的时候跳转到shellcode的地方进行执行
将shellcode写入栈,然后再在函数ret的时候跳转到shellcode的地方进行执行
buf是在.bss中的——需要地址泄露——格式化字符串泄露地址