摘要:
推荐文档:http://crypto.stanford.edu/cs155/papers/formatstring-1.2.pdf格式化字符串漏洞,出现于2000年左右,格式化字符串漏洞总之就是利用c语言中的printf一类函数的“格式输出”的漏洞。printf(string); 和 printf("%s",string);是不一样的!常见的格式函数有:等等。格式化字符串除了可以用%来表示,也可以通过\x25来表示,因为\是转义字符。比如:printf ("The magic number is: \x25d\n",23);然后文中举例,说格式化字符串漏 阅读全文
摘要:
这个初看和上一题没啥区别,仔细一看,我了个去,target == 0x01025544,总不能构造一个这么长的字符串吧!而且,buffer的长度只有512~看了只有分段覆写了!target的位置是:0x080496f4target作为一个整数,占4个字节, f4,f5,f6,f7为了能“配”出相应的长度,需要%数字x来实现,所以需要在地址中间加入4字节的信息,来作为%数字x的输出,然%n作用在地址上面,就算长度超过255也无所谓,我们只关心255以下的内容!经过多次调试:来自为知笔记(Wiz) 阅读全文
摘要:
·这次是要重定向到hello函数,buffer有512长度,但是用了 fgets(buffer,sizeof(buffer),stdin)这样的输入方式,想要溢出攻击有一些困难(有长度限制啊),至少比之前的用gets函数的难(gets函数什么的,太弱了)hello函数的地址:080484b4我们注意到了,这里面vuln函数在结束的时候用了exit(1),exit函数是进程级别的退出,而不是return语句(return是函数级别的退出)return可以用覆盖返回地址来攻击,但是exit就很难,我们,只能覆盖exit函数的说~就是把exit(1)这个语句,重定位到hello函数上!ex 阅读全文