缓冲区溢出漏洞简介(19)

在计算机领域中有种叫做0day漏洞和nday漏洞。0day漏洞是指没有公开只掌握在某些人手中,nday就是代表已经公开了的漏洞。

 

那么,这些0day漏洞是如何被发现的呢?

接下来就介绍下这一类漏洞中最典型的一种:缓冲区溢出

 

通过缓冲区溢出,甚至可以控制目标机器

 

什么是缓冲区:内存中一个片段

使用程序,就会调用参数和变量,程序会提交数据给计算机,先放入内存,

再交由CPU运算处理,然后可能会写入计算机硬盘进行保存。

程序不像是图片文字不变的,它会根据用户的操作而有不同的反应

 

计算机所有漏洞基本原理

程序提交给计算机一段代码和一些数据,而我们使用一些手段

使计算机把代码当成数据,把数据当成代码,然后错误执行,这样就会导致一些内存注入漏洞

进而,可以破坏程序,甚至是提权

 

接下来用一个shell脚本来分析基本的漏洞:

#!/bin/bash
echo $1

 

这个脚本很简单

功能:执行的时候输出你输入的参数

比如我输入一个666(第一行是给脚本执行权限)

shell脚本

 

这样的话脚本执行没问题,但是,我如果后边输入的不是666,而是一段系统指令,结果会怎样呢?

shell脚本

 

发现并没有执行异常,是不是说明这个脚本就没有漏洞呢?

不是,加个分号,结果就不一样了

(其实,用|或&或其他一些字符,都可以导致执行异常)shell脚本

 

看到这里并没有输出 ;ls,而是执行了ls命令

 

接下来,就可以用nc命令连接服务器,控制服务器等等!

 

那么我们如何去发现缓冲区漏洞呢?

通常发现漏洞的方式:

1、源码审计:需要有源码

2、逆向工程:另外一个领域

3、模糊测试:重点关注

 

这里要注意模糊测试:

向程序堆栈发送半随机的数据,根据内存变换判断溢出

这里就要用到数据生成器,测试工具

可以使用别人写好的数据生成工具,当然如果可以自己写,功能会更有针对性

 

后面会给大家看看具体的缓冲区溢出案例:Windows系统的缓冲区溢出;

头像
  • ¥ 298.0元
  • 市场价:498.0元
  • ¥ 298.0元
  • 市场价:598.0元
  • ¥ 169.0元
  • 市场价:299.0元
  • ¥ 89.0元
  • 市场价:129.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: