中国电子商会信息工程测试专业委员会主办
今天是 2024年 04月 08日 星期一
中国电子商会信息工程测试专业委员会
Integrity archives
诚信档案
技术前沿 您的位置:主页 > 诚信档案 > 技术前沿 >
渗透测试_缓冲区溢出
2023-06-02 返回列表

缓冲区溢出

程序漏洞从哪里来?

  • • 罪恶的根源:变量

  • • 数据与代码边界不清

  • • 最简漏洞原理---- shell脚本漏洞

  • • 大部分的漏洞是因为程序没有去判断用户输入的内容导致的

举例说明:

└─# cat a.sh
#!/bin/bash
echo $1

上面是一个很简单的脚本,意思就是这个脚本后面可以跟一个参数,该脚本返回这个参数。如下图所示:

图片

但是这个脚本是有漏洞的,如果我们这样写,就会直接执行系统命令;注:除了;向&&、|等符号都可以;

图片

什么是缓冲区溢出?

  • • 当缓冲区边界限制不严格时,由于变量传入畸形数据或程序运行错误,导致缓冲区被"撑爆",从而覆盖了相邻内存区域的数据;

  • • 成功修改内存数据,可造成进程劫持,执行恶意代码,获取服务器控制权等后果;

如何发现漏洞

  • • 代码审计

  • • 逆向工程

  • • 模糊测试

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

    • • 数据生成器:生成随机、半随机数据

    • • 测试工具:识别溢出漏洞

注:

  • • windows和Linux有安全机制:

    • • DEP:阻止代码从数据页被执行

    • • ASLR:随机内存地址加载执行程序和DLL,每次重启地址变化。

 

 

二维码
中国电子商会信息工程测试专业委员会 电话:010-87660482 传真:010-87660482 邮箱:ceietn@sina.com 地址:北京经济技术开发区博兴六路17号院1号楼3层(100176)
Copyright © 2021-2027 中国电子信息工程与测试网 版权所有 主办单位:中国电子商会信息工程测试专业委员会 技术支持:电设信科(北京)技术有限公司 备案号:京ICP备11002915号-001