通过泄露地址绕过pie保护的步骤
时间: 2023-10-04 17:07:55 浏览: 179
Canary机制及绕过策略-格式化字符串漏洞泄露Canary
1. 确定程序的地址布局:在进行泄露之前,需要了解程序的地址布局,包括基址、库函数地址、堆栈地址等。可以通过反汇编程序或使用调试器来获取这些信息。
2. 找到泄露漏洞:在程序中找到可以进行泄露的漏洞,例如格式化字符串漏洞、缓冲区溢出等。
3. 利用漏洞进行泄露:利用漏洞将程序的内存内容泄露到控制台或文件中,例如使用printf()函数输出内存内容。
4. 计算程序基址:通过泄露得到程序中一个已知变量的地址,可以计算出程序的基址。例如,如果知道一个全局变量的地址,可以减去该变量在程序中的偏移量得到程序基址。
5. 计算目标函数地址:通过泄露得到libc库函数的地址,可以计算出目标函数在libc中的地址。例如,如果知道libc中system()函数的地址,可以将程序基址加上system()函数在libc中的偏移量得到system()函数在程序中的地址。
6. 利用目标函数进行攻击:通过得到目标函数的地址,可以利用其进行攻击,例如通过调用system()函数执行任意命令。
阅读全文