在c语言或是c++中有一类很典型的问题,那就是溢出。

如果说溢出对程序有什么危害的话,好像就是在编译的时候会报错,运行的时候会崩溃。但是当有了研究安全的人之后,安全性问题就会随之出现了。
在开发的阶段,由于各种压力的迫使之下,往往开发团队都是拼命地赶工期,先把功能实现了,后期再慢慢地打补丁完善,这就容易造成很多问题没有得到充分的考虑。在众多溢出类型中,我觉得的最容易理解的应该是数组的溢出。说白了,就是在调用数组成员的时候超出下标了,这就是数组的溢出。总之,在有涉及到数据的边界问题上,就可能会发生溢出的情况。
为了避免反汇编界面太过于让人头大,所以就先写一小段代码来打印一下内存里面数据的存储情况。
这个程序运行结果是这样的。
从结果里可以看到,在内存里(指的是程序运行的虚拟内存而非物理内存),短整型变量a,b和数组c之间的距离还是很近的。
下面是产生越界的代码
在利用指针实现输出之前,有对数组c的成员赋值成666的操作,至于要给多少个c的成员赋值,这个和用户的输入n有关系。
先输入个2,看输出还是正常的
当输入3时,可以看到b的值被覆盖成了666
当输入变成5的时候,a,b都被覆盖了
要说明的一点是,现在写代码基本不用担心这个问题,因为像visual studio这样的编译器会自动检查有没有越界,我的这个程序之所以能够越界是因为我把visual studio里面有关安全检查的选项全给关了。
我这个是直接覆盖变量的值,对于程序的走向还没有什么影响。假如,精心构造一段输入,使变量指针的值被覆盖,就完全可以改变程序的走向,甚至使其指向一段恶意函数的地址,那么在使用该指针时候,就会导致恶意代码的执行,从而导致非常严重的安全问题。
除了数组溢出之外,还有整数溢出,缓冲区溢出,栈溢出,字符串溢出等等。整数溢出在Linux服务器上经常被黑客拿来进行提权。在一些存在内核溢出漏洞的Linux系统里,他们可以通过专门的提权exp来对gid和uid进行溢出,将用户id的gid和uid权限设置为0,从而获得超级管理员权限。
要解决这一类问题也很简单,就是程序一定要做溢出检查,还有就是尽量不要用像scanf(),strcpy()这样的C语言内置的函数,它们都有一个缺陷,就是不做溢出检查,很可能会导致各种各样的溢出,建议是替换成带有_s后缀的安全函数,即scanf_s(),strcpy_s()。这些都是是微软自己写的,安全性有很大提升。但缺点是,安全函数只在visual studio下能用,别的编译器识别不了。所以说,安全也是要付出代价的。
值得注意的是,漏洞的危害性也不在于漏洞本身,而是在于利用它的方法。同样的漏洞,在不同人看来利用的方式也不同,所带来的危害也程度也不尽相同。只有赶在攻击者之前,不断地发现漏洞,修补漏洞,才能最大程度上避免安全问题。
总结
本文作者:Mr Six
本文为公众号(ID:jb51net)专栏作者投稿文章,如果你也有投稿需求,可以点击这里
更多优质文章,可以关注公众号(ID:jb51net)查看
(微信扫码关注,获取更多内容)
相关推荐:
亚马逊seo是什么公司的,“亚马逊” ,ai玩底特律
怎么用AI润色文章,让你的文稿瞬间高大上
什么是seo行业,seo是什么职业做什么的 ,ai标题字体效果
企业营销:如何在竞争激烈的市场中脱颖而出,美装网站Seo优化
为什么要seo排名,为什么要做seo推广 ,AI写作开启创意新世界
seo诊断什么意思,seo诊断a5 ,约瑟夫ai
SEO快排还有效果吗揭秘快速排名的真相与未来趋势,ai人像波普
SEO更多-让你的企业站点在搜索引擎中脱颖而出,如何结交seo大神
seo资源是什么意思,seo资源怎么打开 ,梅州ai自动插件加工
seo需要会什么技术呢,seo需要会什么技术呢知乎 ,红色框ai
seo逻辑是什么,seo思路 ,语音主播怎么ai写作业
seo要学什么技术,seo要学什么技术好 ,ai.fale
SEO优化如何为网站做好关键词研究和优化,ai直通
“新热度”:引领潮流的力量,如何趋势的脉搏,浙江通用网站建设特点
文字写作AI生成工具:让创作更简单、更高效
seo要懂些什么,seo主要做什么的 ,小艾艾AI
优化文字,让表达更精准:提升写作效率的关键,个人网站建设外包
seo营销方法是什么,seo营销模式 ,ai山海
SEO爱站:提升网站排名,赢得流量的秘密武器,优化网站设计价格多少
ChatGPT页面空白不乏登录:让你秒变职场高手与生活智囊,百度ai 腾讯ai
SEO利用:让你的网站快速登顶,获取更多流量与客户!,延边小程序推广平台网站
ChatGPT登录界面都不显示了?可能是这些原因导致的!,上海小学ai智能课
SEO定价策略:如何根据企业需求定制最佳价格方案,教育培训抖音营销推广
SEO要素:优化网站排名的关键因素全解析,棒球大联盟营销推广文案
URL泄露:如何防止信息泄露带来的严重后果,抖音推广营销服务多少钱
为什么“搜狗不收录”会成为企业SEO的新挑战?,烤肉店的线下营销与推广
SEO能够助力网站流量增长,提升品牌竞争力,Seo网站排名原理
SEO很多,如何在竞争激烈的市场中脱颖而出?,在SEO优化中
SEO桔子:提升网站排名的必备法宝,seo外包销售
OpenAI网站崩溃原因:背后的技术与挑战,千牛Ai智投在哪里找
SEO非常:如何利用SEO提升网站排名与流量,助力品牌快速成长,绥化短视频营销推广
SEO赚钱:如何通过SEO技能在网络上实现财富自由,网站怎么建设推广平台
seo网页优化什么意思,seo网站优化必知的10个问答,问吧,【解决】百度不知道 ,ai识别点读机
二级泛站群,zblog二级泛站群 ,李宗盛ai
ChatGPT显示“此网站无法加载站点”:背后原因与解决办法详解,用ai画明度渐变条
AI人工智能生成文章:开启写作新时代
seo需要什么部门,seo主要干什么 ,ai接入仪器
seo深度优化插件是什么,深度优化手机软件 ,ai的缩写
乘风SEO:突破困境,领航网络营销新时代,武汉靠谱的关键词排名
seo网络培训是什么,seo工作培训会培训啥 ,ai长投影字
SEO搜索关键词是什么意思?全方位解析关键词优化的核心要素,lol ai图片
AI生成网页模板,轻松打造专业网站,ai网格画法
SEO优化顾问:让您的网站脱颖而出的秘密武器,ai ps 群
seo追词是什么,seo词条 ,52580609AI
SEO词的魔力:如何通过关键词优化打破流量瓶颈,免费网站建设高端
ChatGPT403:引领人工智能新时代,颠覆你的工作与生活方式,ai nak
AI缩写文本:助力智能生活的革新力量,ai智能写作生成神器下载
SEO手法如何通过精准优化提升网站排名,获取海量流量,网站建设协议流程是什么
ChatGPT无法完全显示?你可能忽略了这些令人惊讶的细节!,朵朵ai绘画
怎么用AI写出令人惊叹的文章?轻松搞定写作难题!