windows 缓冲区溢出漏洞-不安全函数

#include <stdio.h>
//#define sz1 "hello"
int main(int argc, char *argv[])
{
    //char sz1[8] = "hello";
    //const char *sz1 = "hello";
    char sz1[8];
    char sz2[8];
    memset(sz1,0x00,sizeof(sz1));
    strcpy(sz1,"hello");
    printf("sz1=[%s]\n",sz1);
    while(1)
    {
        memset(sz2,0x00,sizeof(sz2));
        printf("please input passwd:\n"); 
        //gets(sz2);
        scanf("%s",sz2);
        //fgets(sz2,sizeof(sz2),stdin);
        printf("---sz1=[%s]\n",sz1);
        printf("---sz2=[%s]\n",sz2);
        if(0 == strcmp(sz1,sz2))
        {            
            printf("----hello world-----\n");
            break;
        }
        else
        {
            printf("----ERROR----\n");
            continue;
        }
    }
    return 0;
}

-----------------测试结果---------------

sz1=[hello]

please input passwd:

12345678ayang

---sz1=[ayang]

---sz2=[12345678ayang]

----ERROR----

please input passwd:

hello

---sz1=[ayang]

---sz2=[hello]

----ERROR----

please input passwd:

ayang

---sz1=[ayang]

---sz2=[ayang]

----hello world-----

时间: 2024-10-10 09:11:32

windows 缓冲区溢出漏洞-不安全函数的相关文章

Microsoft Windows 智能卡认证缓冲区溢出漏洞 (CVE-2017-0176)

Windows 是一款由美国微软公司开发的窗口化操作系统. Windows 的智能卡认证模块gpkcsp.dll中存在缓冲区溢出漏洞,如果系统开启远程桌面(RDP)服务并且加入域,远程攻击者可以通过发送恶意代码利用此漏洞在目标计算机执行任意代码,进而控制整个系统. 受影响系统: Windows XP through SP3 Windows Server 2003 through SP2 该CVE-2017-0176替代了原来标注的CVE-2017-9073. 解决办法 官方升级: Microso

PCMan FTP Server缓冲区溢出漏洞分析与利用

简要介绍 这个软件是台湾国立阳明大学医学系的一个学生在大四的时候写的,这个漏洞是有CVE的(CVE-2013-4730),软件应该还挺普及的,这是一个缓冲区溢出漏洞 具体exp可以点这里 实验用poc(其实这里直接对USER命令溢出都是可以的,即不用知道账号密码即可远程代码执行,USER命令的buf距离返回地址是2000) import socket as s from sys import argv # if(len(argv) != 4): print "USAGE: %s host <

数据库缓冲区溢出漏洞原理(栈)

背景 在数据库系统中已经发现了许多安全漏洞,其中比较严重且危害性比较大的有:缓冲区溢出和SQL注入2种. SQL注入主要依赖于结构化查询语言,每种数据库略有出入:SQL注入漏洞的利用,最主要的威胁是提权:后台维护人员或黑客攻击,可以借此获得DBA权限.需要说明的是,这里所说的SQL注入并不是应用系统的SQL注入,而是数据库自身的注入漏洞,这种漏洞比应用系统的注入漏洞危险性更高:对于SQL注入漏洞的存在,主要是由于数据库中提供的系统或用户函数存在的参数检查不严和语句执行的缺陷.SQL注入漏洞不是本

实验一:缓冲区溢出漏洞实验20115116黄婧

缓冲区溢出攻击:通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,造成程序崩溃或使程序转而执行其它指令,以达到攻击的目的. 一.实验要求 1.为了监控实验进程,我们采用私有课程方式,进入实验楼课程,单击加入私有课程,输入邀请码2YTE6J9X,个人信息中输入学号+姓名; 2.实验报告在博客园 发Blog公开,重点是实验过程中的运行结果(要有截图),遇到的问题.解决办法(不要是空洞的方法如“查网络”.“问同学”.“看书”等)以及分析(从中可以得到什么启示,有什么收获,教训

践踏堆栈-缓冲区溢出漏洞

践踏堆栈-缓冲区溢出漏洞 打算写这篇文章是因为在网上看过一篇论文,讲了缓冲区溢出破坏堆栈来执行恶意程序的漏洞.该论文请见参考资料1.这篇文章会涉及一些汇编的基础知识,以及虚拟内存的一些基本概念等.当然用来调试程序的系统是linux,工具是gcc.很久没有看过汇编和C语言了,错漏之处,还请指正. 1.概要 文章标题有提到堆栈和缓冲区,那么就先来探讨下这几个名词的定义.这里的缓冲区,指的就是计算机内一块连续的内存区域,可以保存相同数据类型的多个实例.C程序员最常见的缓冲区就是字符数组了.与C语言中其

缓冲区溢出漏洞实验20125118

一.实验描述 缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况.这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段.这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢出会引起返回地址被重写. 二.实验准备 系统用户名shiyanlou,密码shiyanlou 实验楼提供的是64位Ubuntu linux,而本次实验为了方便观察汇编语句,我们需要在32位环境下作操作,因此实验之前需要做一些准备. 1.输入命令安装一些用于编译32位C程序的东西: sudo apt

CVE2016-8863libupnp缓冲区溢出漏洞原理分析及Poc

1.libupnp问题分析: (1)问题简述: 根据客户给出的报告,通过设备安装的libupnp软件版本来判断,存在缓冲区溢出漏洞:CVE-2016-8863. (2)漏洞原理分析: 该漏洞发生在upnpSDK库中,upnp/src/gena/gena_device.c.文件的create_url_list函数中,由于对输入数据未进行有效检验,造成对缓冲区溢出,可以导致服务器拒绝服务或崩溃:攻击者也可以精心制造一个攻击URL,通过subscribe request的callback header

缓冲区溢出漏洞攻击原理

转自互联网 0x00 缓冲区溢出概念 缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量溢出的数据覆盖在合法数据上, 理想的情况是程序检查数据长度并不允许输入超过缓冲区长度的字符,但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患,操作系统所使用的缓冲区,又被称为"堆栈".在各个操作进程之间,指令会被临时储存在"堆栈"当中,"堆栈"也会出现缓冲区溢出. 0x01 缓冲区溢出原理 程序员通过往程

NTPD 栈缓冲区溢出漏洞(CVE-2014-9295)

漏洞描述 Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化. ntpd 4.2.8之前版本,在实现上存在多个栈缓冲区溢出漏洞,远程攻击者通过构造的数据包,可触发ntpd函数crypto_recv() (用autokey进行身份验证), ctl_putdata(), configure()缓冲区溢出,用ntpd进程的权限执行任意代码. 解决方法 NTP---目前厂商已经发布了升级补丁以修复这个安