某大学信息安全竞赛——shellcode1 绕过strlen检查,绕过沙箱检查,执行orw shellcode拿到flag

news2024/11/21 7:52:16

题目自取:

链接:https://pan.baidu.com/s/1HrMqh-lX-mkfueVeLzoEJg 
提取码:oyel

介绍下这可恶的沙箱机制

这是一道非常让人蛋疼的题目,之前我只听说过沙箱,但是并没有自己实际接触过沙箱这个保护机制,大概作用就是开了沙箱之后,会禁用掉某些函数,一旦我们使用了这个函数,比如我们在栈溢出构造ROP,或者写入shellcode执行时,只要含有这些函数,这个程序就会崩掉,这题目就开了沙箱。

之前我有个疑问,这里明明没有exevce函数的引用,为什么我用pwntools工具写的 shellcode = asm(shellcraft.sh())或者网上抄来的execve(binsh)都不能打通呢??

这非常让人恼火,难道seccomp-tools错了???

后来问了学长才知道,原来是因为seccomp-tools这玩意它会显出所有可以用的,但是貌似不能用的不会完全显现,所以我们这里可以看到,这里只允许了orw的使用,其实很明显了,就是要写orw的shellcode去把flag拿出来。

反编译看看

ok,我们开始,首先放到IDA看看咋回事

 沙箱之前我们已经分析过了,这里就不细说了,就是主函数的思路也非常简单,就是拿一块内存buf,然后让你输入shellcode,然后判断长度,如果小于等于5字节,就执行shellcode,否则报错gameover。

显然5字节的shellcode玩个毛,几个基本的汇编指令就已经不止5字节了,很明显我们要绕过这个strlen检测,然后我在网上冲浪的时候发现了一个好文,这里贴一下

我想过绕过strlen函数,但是我都是在shellcode前面直接加\x00\x00的,发现这是行不通的,就很淦也让我产生疑问,这究竟是为什么呢??

我们来调试下
这是填入\x00\x00的情况
 

很明显它call了个寂寞,里面没指令,所以报错了
但是如果我们换成了 asm('xor eax,0x4141' 的话,我们可以看看啥情况。

 可以看到,这个414135即为指令xor eax,0x4141,这就做到了两点,一是绕过了strlen检测,二是call rdx的时候是有指令的,不会导致程序崩溃.

那由于沙箱把我们的execve函数禁用了,所以我们用pwntools生成的 asm(shellcraft.sh())或者网上抄来的execve(binsh)都不能打通,因为它们本质上都是调用exevce函数。

所以我们只能用orw shellcode去拿flag了,这种shellcode虽然不能拿到shell,但是可以打开flag文件,然后输出里面的内容,具体咋写这种shellcode呢?我们还是可以利用pwntools自带的功能,这里推荐一篇博客(3条消息) orw_shellcode_模板_orw的shellcode_huzai9527的博客-CSDN博客

#pwntools
shellcode = ''
shellcode += shellcraft.open('./flag')
shellcode += shellcraft.read(3,'rsp',0x100)
shellcode += shellcraft.write(1,'rsp',0x100)
payload1 = asm(shellcode)

 但是注意注意!!!这里不是'esp',而是‘rsp’,而且read的系统调用号是3,
修改一下就可以拿到shell啦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/540174.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PX4从放弃到精通(二十八):垂起过渡控制

文章目录 前言一、主程序二、update_transition_state()三、update_transition_state() 前言 固件版本:1.14.0 可加名片交流学习 一、主程序 代码位置: 构造函数,用初始化列表进行初始化工作…

图可视分析

G6简介 AntVG6是一个基于WebGL的图形可视化引擎,它提供了一种简单、高效、灵活的方式来创建各种类型的图形,包括流程图、关系图、树形图、桑基图、饼图等等。它的主要思想是将图形分解为节点和边,并使用数据来描述它们之间的关系。 它的特性包…

BMPFont使用教程--免费的位图字体制作工具字体制作(2)

1、下载windows免费的位图字体制作工具Bitmap Font Generator 下载地址:BMFont - AngelCode.com 2、打开软件-> Edit -> Open Image Manager 3、点击Image -> Import Image,选择字符对应的图片,id就填写下面的48,代表0,…

Redis 主从复制 哨兵 集群

哨兵:在主从复制的基础上,哨兵实现了自动化的故障恢复。缺陷:写操作无法负载均衡;存储能力收到单机的限制; Cluster集群:通过集群,Redis解决了写操作无法负载均衡,以及存储能力收到…

应用现代化中的弹性伸缩

作者:马伟,青云科技容器顾问,云原生爱好者,目前专注于云原生技术,云原生领域技术栈涉及 Kubernetes、KubeSphere、KubeKey 等。 2019 年,我在给很多企业部署虚拟化,介绍虚拟网络和虚拟存储。 2…

智能图像处理技术:开启未来视觉时代

写在前面技术论坛■ 智能文档图像处理技术■ 大模型时代的文档识别与理解■ 篡改文本图像的生成与检测 圆桌讨论未来愿景 写在前面 文档 是人们在日常生活、工作中产生的信息的重要载体,各领域从业者几乎每天都要与金融票据、商业规划、财务报表、会议记录、合同、…

【JAVA程序设计】(C00138)基于Servlet+jsp的药店管理系统

基于Servletjsp的药店管理系统 项目简介项目获取开发环境项目技术运行截图 项目简介 本项目是简单的药店管理系统,本系统使用servlet和jsp的技术,本系统有一种权限管理员: 其功能有:管理员管理(增删改查)、…

TypeScript为什么要有对象?怎样创建对象

什么是TypeScript的对象? 生活中,对象是一个具体的事物,比如:你的电脑、你的手机、古力娜扎、周杰伦(周董)等都是对象。 但在程序员的认知中万物皆对象。 这些具体的事物,都有自己的特征和行为: 特征&…

云his门诊业务模块常见问题分析和门诊业务使用流程

一、门诊医生如何查询往期病人 鼠标点击门诊医生站左侧患者列表,在弹出的页面点击已诊分页,在搜索框输入患者姓名,在结果中找到对应患者,点击详情按钮即可查询患者往期就诊信息,点击想要查询的门诊记录前方的方框即可…

[数据结构 -- C语言] 队列(Queue)

目录 1、队列 1.1 队列的概念及结构 2、队列的实现 2.1 接口 3、接口的实现 3.1 初始化队列 3.2 队尾入队列 分析: 3.3 队头出队列 分析: 3.4 获取队列头部元素 3.5 获取队列尾部元素 3.6 获取队列中有效元素个数 3.7 检测队列是否为空 3…

要想抢到演出票,总共分几步?

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 小黑 编辑 / SandLiu 卷圈 监制 / 姝琦 文案 / 小黑 产品统筹 / bobo 录音支持 / 声湃轩天津录音间 报复性听歌正席卷多地,一路狂飙的演唱会市场背后,是一票难求、与黄牛斗智斗勇的粉丝们。 是…

GPT专业应用:自动撰写宣传稿

●图片由Lexica 生成,输入:Staff working on product promotion 宣传稿是指按照有关政策文件或相关精神,以宣传某种主张、某项工作、某件事情等为目的,为获得理解、支持而撰写的应用文。基本格式包含四个要素,分别是标…

chatgpt赋能Python-numpy如何下载

如何下载Numpy 对于python编程者,numpy是不可或缺的一个库。它提供了一种操作向量、矩阵、数组的方式,使得我们能够高效地进行数据处理和科学计算,甚至还能进行线性代数运算和傅里叶变换等高级操作。 那么,在这篇文章中&#xf…

第十七章 使用PXE+Kickstart无人值守安装服务

文章目录 第十七章 使用PXEKickstart无人值守安装服务一、无人值守系统1、无人值守安装系统的工作流程2、PXE介绍 二、部署相关服务程序1、临时关闭防火墙2、配置DHCP服务程序(1)、安装dhcp服务程序(2)、编辑配置文件(…

为什么需要代理ip

使用代理IP的情况不限于某一特定行业,因为在不同行业中都可能需要根据不同需求和目的来使用代理IP。以下是一些行业中常见需要使用代理IP的情形: 1、爬虫行业 对于需要爬取网站数据的用户,使用代理IP可以帮助隐藏真实IP地址及请求头信息&am…

Flowable 生成的表都是干嘛的?(二)

一.简介 Flowable 默认一共生成了 79 张数据表,了解这些数据表,有助于我们更好的理解 Flowable 中的各种 API。 接下来我们就对这 79 张表进行一个简单的分类整理。 ACT_APP_*(5)ACT_CMMN_*(12)ACT_CO_*…

Linux之后台终端

1、后台终端 当我们连接一个终端并执行一个程序时,关闭终端时程序也被终结。比如想在终端中执行一个web服务器,想一直后台运行,可以使用screen这个工具 2、screen工具 screen工具不是自带的所以需要sudo apt update && sudo apt i…

excel 甘特图制作(详细)

文章目录 前言excel 甘特图制作(详细)1. 模板字段确认2. 冻结至F列3. 在第二行确认状态颜色4. 设置开始日期5. 先将第3行居中,然后状态那列设置下拉6. 填充任务7. 开启日期与结束日期设置单元格式为日期8. 填充任务9. 制作日期10. 制作日期交互11. 修改开始时间范围…

数说故事与华为云签署全面合作协议,共同升级数字世界营销新体验

5月16日,由广东省工业和信息化厅、广州市人民政府联合指导,华为主办的2023华为云城市峰会首站登录广州。为贯彻落实广东省高质量发展大会的工作要求,响应《广东省制造业高质量发展“十四五”规划》, 本次大会围绕“在工业 为工业”主题并邀请…

普通表转分区表

当一张表数据过大时,可以进行垂直拆分(每张表存储部分字段)和水平拆分(每张表字段完整,数据只存储一部分) 这里记录的是水平拆分 首先对数据进行备份 create table 备份表名 as (select * from 原表名);…