当前位置: 首页 > news >正文

whois域名查询网站电商网站建设常见问题

whois域名查询网站,电商网站建设常见问题,网页设计搜题软件,wordpress 自动缩进栈溢出 什么是栈溢出? 栈溢出(Stack Overflow)是指在程序运行过程中,向栈中存放的数据量超过了栈的最大容量,从而导致程序出现异常行为的情况。可以比作一个箱子原本只能容纳一定数量的物品,如果强行往里…

栈溢出

什么是栈溢出?

栈溢出(Stack Overflow)是指在程序运行过程中,向栈中存放的数据量超过了栈的最大容量,从而导致程序出现异常行为的情况。可以比作一个箱子原本只能容纳一定数量的物品,如果强行往里面塞入更多的东西,最终物品会“溢出来”,进而影响到箱子周围的其他物品,甚至破坏整个存放系统的正常运作。

在计算机程序的运行时内存布局中,栈是一种用于存储局部变量、函数调用信息(如返回地址、参数等)的数据结构。它遵循后进先出(LIFO)的原则进行操作。当程序不断地向栈中压入数据(例如频繁调用函数,每次函数调用都会在栈上分配空间以存储局部变量和调用相关信息),却没有及时进行出栈操作以释放空间时,一旦栈的使用超出了其最大容量范围,就会发生栈溢出。

什么情况下会出现栈溢出?

这里以C语言为例,举几种不同的例子

无限循环中的函数调用

在一个无限循环体内不断地进行函数调用,且每个函数调用都会在栈上分配空间,这样持续下去也会导致栈溢出。下面是一个典型的因为无限循环导致栈溢出的

#include <stdio.h>// 递归函数,没有合理的终止条件
void infinite_recursion() {int local_variable = 0; // 局部变量,占用栈空间printf("Calling function, stack address: %p\n", &local_variable);infinite_recursion(); // 函数调用自身
}int main() {infinite_recursion(); // 开始递归调用return 0;
}

infinite_recursion 函数在内部调用自身每次调用时都会在栈上分配一个局部变量(local_variable)并打印出来来直观显示栈的增长,并且没有终止条件,运行之后会因为没有终止条件而进行无限调用,栈空间持续占用,最后直至超出栈的空间,造成栈溢出

递归调用过深

个函数在其内部不断地调用自身,并且没有合理的终止条件或者终止条件很难达到时,就会导致栈不断地增长,最终可能引发栈溢出。以下是一个计算阶乘的递归函数示例,当输入的数值较大时,就可能出现栈溢出的情况:

#include <stdio.h>int factorial(int n) {if (n == 0 || n == 1) {return 1;}return n * factorial(n - 1); // 递归调用
}int main() {int n;printf("请输入一个整数来计算其阶乘: ");scanf("%d", &n); int result = factorial(n); printf("阶乘结果: %d\n", result);return 0;
}

如果用户输入一个很大的数就会因为调用次数过多,栈空间会被耗尽,导致栈溢出,程序崩溃。

栈溢出如何利用?

这里用一道题目来说明一下(题目来源ctfshow):

check一下

32位程序开启NX,部分开启RELRO

IDA32位打开查看一下main函数

打开ctfshow_flag文件,读取其中的内容,根据命令行参数决定打印不同的消息。如果命令行参数个数小于等于 1,则提示用户重试,否则调用 ctfshow 函数处理用户输入的命令行参数,并进行输出

跟进一下ctfshow函数

简单解读一下:

char dest: 声明一个名为dest的字符变量。

return strcpy(dest, src)使用 strcpy

数将 src 字符串复制到dest ,并返回指向 dest 的指针。

strcpy函数这个函数是一个典型的可以用来利用溢出的函数。所以我们可以在这里进行栈溢出。

注意到signal(11, (__sighandler_t)sigsegv_handler);函数发生对存储的无效访问时,会把stderr打印输出,即将flag的值打印输出,那么我们直接输入超长数据就会溢出,程序就会崩溃进而打印出flag

http://www.yayakq.cn/news/653744/

相关文章:

  • 重庆好的网站建设驻马店网站建设电话
  • 黑龙江省建设银行官网站首页wordpress下载站插件
  • 建网站需成本多少钱下载类网站如何做
  • 网站内容采编怎么做网络营销相关政策有哪些
  • 芍药居网站建设公司推广链接生成
  • 电子商务网站建设干货广告型网站
  • 网站欢迎屏怎么做惠州城乡和住房建设局网站
  • 织里网站建设化州市住房和城乡建设局网站
  • 上海网站seo排名优化大良营销网站建设好么
  • 美观网站建设哪家好小说推广渠道
  • 网站商城与网站区别吗asp网站静态化
  • 网站建设1影响力公司什么叫门户类网站
  • 网站主页面设计模板如何创建一个个人网站
  • 绥化北京网站建设佛山外贸网站建设信息
  • 推广你公司网站品牌推广是什么
  • 南昌品牌网站建设我想做百度推广
  • 佛山建网站哪里好东城专业网站建设公司
  • 如何攻击Wordpress站点网站官网
  • 微网站开发协议响应式网页设计图片
  • 网站的前台乐清网站制作公司有哪些
  • 联想粒子云可以做网站ui设计主要包括什么
  • 个人网站营业执照互联网备案服务平台
  • 商城网站 没有什么文章 怎样优化安徽建设银行官方网站
  • 中国铁塔公司招聘网站做网站专题的效果
  • 网站怎么提升关键词排名太湖网站建设
  • 手表网站背景新乡网站建设费用
  • 仙桃哪里做网站广州建网站自助建站系统
  • 南京做网站开发 待遇wordpress 密码看贴
  • 网站备案信息保护网站pc转移动端代码
  • 做渔家乐哪个网站最好dede5.7微电影网站模板