【逆向学习记录】Tcachebin CISCN_2019_PWN17 Write up

本文记录了一次逆向学习的过程,详细解析了CISCN2019_PWN17的解题思路,涉及到整数溢出、双精度free、tcachebins的利用等技术。通过doubleFree构造地址泄露,篡改字符串并绕过后缀检查,最终实现命令执行。同时对比了tcachebins与fastbins的区别。
摘要由CSDN通过智能技术生成

1 概述

这几天做了一个libc2.27的题目,了解到tcachebin的基础内容,发现利用这个tcachebin,反而导致漏洞更好利用了

2 CTF题目

题目1:CISCN2019_pwn6
参考:pwn6_exp
题目2:CISCN2019_pwn17

3 解题思路

3.1 题目解析

1,输入内容,基本上没有任何内容提示

在这里插入图片描述

2、反编译查看

1、存在一个check,绕过这个check,是一个整数溢出

在这里插入图片描述
如果输入的input_number等于这个值,通过类型强转化为signed int(32位),就是0 了
在这里插入图片描述

2、在执行shellcode之前,还有第二个比较操作,需要满足

在这里插入图片描述

3、即使输入shellcode,也需要满足下面这个条件:异或

在这里插入图片描述
绕过方法:
1、shellcode 计算异或之后输入
2、在shellcode之前添加一段指令,保证 strlen 很短,shellcode不用校验

4、查找漏洞点

free之后,没有置空,可以造成double free
在这里插入图片描述

4 EXP解读

主要思路:

  • 通过doubleFree构造“泄露”可用的地址
  • 通过覆盖可以,篡改已知字符串
  • 绕过最后的check,进行命令执行

1、绕过check,目前的堆栈是:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值