05 2023 档案
摘要:# 格式化字符串漏洞 ```c #include void main(){ char str[1024]; while(1){ memset(str,'\0',1024); read(0,str,1024); printf(str); fflush(stdout); } } # echo 0 > /
阅读全文
摘要:介绍 ADDI、ADDIU:加立即数,区别在于是否检测溢出。 Format: ADDI rt, rs, immediate rt = rs + immediate To add a constant to a 32-bit integer. If overflow occurs, then trap
阅读全文
摘要:Canary ^b25c98 用于防止栈溢出被利用的一种方法,原理是在栈的ebp/rbp下面放一个随机数,在函数返回之前会检查这个数有没有被修改,就可以检测是否发生栈溢出了。 如果栈中开启Canary found,那么就不能用直接用溢出的方法覆盖栈中返回地址,而且要通过改写指针与局部变量、leak
阅读全文
摘要:静态寻找 当libc加载地址不会改变的情况下,可以用gdb进行调试,找到某个libc库函数的地址a,一般高位是0x7f,然后再用ida打开libc文件,然后查找对应的函数的地址b,则libc基址=a-b 动态寻找 在现实世界中,libc的加载地址通常是在每次程序运行时都会发生变化的。这是因为在操作系
阅读全文