首页 > 其他分享 >劫持TLS绕过canary pwn89

劫持TLS绕过canary pwn89

时间:2024-04-06 14:34:37浏览次数:29  
标签:TLS 覆盖 pwn89 创建 canary 线程 pthread

劫持TLS绕过canary pwn88

首先了解一下这个东西的前提条件和原理

前提:

  1. 溢出字节够大,通常至少一个page(4K)

  2. 创建一个线程,在线程内栈溢出

原理:

在开启canary的情况下,当程序在创建线程的时候,会创建一个TLS(Thread Local Storage),这个TLS会存储canary的值,而TLS会保存在stack高地址的地方。

那么,当我们溢出足够大的字节覆盖到TLS所在的地方,就可以控制TLS结构体,进而控制canary到我们想要的值,实现ROP

然后具体写一下这个题目,毫无疑问canary是开启的

ida打开看一下

main函数里面就这些,我来解释一下pthread_create这个函数,相当于创建了一个进程去执行start函数,而pthread_join让

一个线程等待另一个线程结束。如果代码中没有pthread_join主线程就会很快结束从而使整个进程结束,从而使创建的线程没有机会开始 执行就结束了。

加入pthread_join后,主线程会一直等待直到等待的线程结束自己才结束,使创建的线程有机会执行。

跟进start函数看一下

跟进lenth和readn

相当于,我们一开始输入一个长度,然后readn函数会把我们再次输入的东西放入s中,因为长度最大可以到0x10000,而s长度只有0x1010所以有栈溢出

有canary保护我们可以通过覆盖高地址来覆盖掉TLS,然后就是正常的ROP然后栈迁移到bss段执行one_gadget

exp:

这里覆盖的长度应该大于等于0x1900,否则可能无法覆盖掉TLS进而覆盖掉canary

标签:TLS,覆盖,pwn89,创建,canary,线程,pthread
From: https://www.cnblogs.com/CH13hh/p/18117401

相关文章

  • 请求被中止: 未能创建 SSL/TLS 安全通道”的原因及解决办法
    4个解决办法,我用的第四个方法就解决了,注册表手动添加的重启后不管用,第四个方法直接用程序改一下方便 首先得保证服务器是否支持tls1.2去注册表里查或者百度怎么查,基本大多数都用的是1.2      1.  代码前加这个 ServicePointManager.Expect100Continu......
  • canary(金丝雀保护)
    canary(金丝雀保护)一.介绍Canary的意思是金丝雀,来源于英国矿井工人用来探查井下气体是否有毒的金丝雀笼子。工人们每次下井都会带上一只金丝雀。如果井下的气体有毒,金丝雀由于对毒性敏感就会停止鸣叫甚至死亡,从而使工人们得到预警。我们知道,通常栈溢出的利用方式是通过溢出......
  • zhipuai的GLM-4模型API访问出现错误: ConnectError: TLS/SSL connection has been clo
    1简介访问zhipuai的GLM-4模型的API时,挂上梯子后访问失败,显示ConnectError:TLS/SSLconnectionhasbeenclosed(EOF)(_ssl.c:1131)报错信息如下{ "name":"ConnectError", "message":"TLS/SSLconnectionhasbeenclosed(EOF)(_ssl.c:1131)",......
  • Data encapsulation of HTTP, TLS, TCP and IP
    数据包封装过程 原文:TLSrecordsizehasanimportantimpactontheperformanceofHTTPS.Herewediscusstheeffectofrecordsizeondataencapsulation,asshowninFigure2.TCPisabyte-streamprotocol,whichcansplitmessagefromtheupperlayerofT......
  • 安卓使用HttpCanary进行抓包
    IOS抓包软件Stream的安装与使用使用「Stream」进行IOS抓包同样的代码,有时候在安卓端会出现不同的问题,所以还需要进行安卓的抓包另外安卓非Root用户的抓包比较麻烦,需要安装指定版本的HttpCannary(小黄鸟)HttpCanary介绍1、观看抓包软件的結果还能抓取音频以及视频。2、可以自动式......
  • Centos 上python3 pip3安装报错:WARNING: pip is configured with locations that requ
    pip3安装报错:WARNING:pipisconfiguredwithlocationsthatrequireTLS/SSL,howeverthesslmoduleinPythonisnotavailable.在网上查一下原因是openssl版本不兼容导致,centos默认带的openssl版本太低,要升级openssl版本。openssl  下载地址:https://www.openssl.org/s......
  • TLS数据包重组
    TLS解密参考以下链接:Wireshark解密TLS报文_在线tls解密-CSDN博客总结:配置环境变量wireshark首选项配置 TLS解密例子Frame2700 Frame2714 分析:Frame2700tcp共分8个segment,Frame2700大小是800bytes,Frame2700大小总大小是1360,Frame2700中剩余的560是下一......
  • FileZilla 服务器 报Warning: FTP over TLS is not enabled, users cannot securely l
    FileZilla服务器报Warning:FTPoverTLSisnotenabled,userscannotsecurelylogin.1.登录至FTP服务器 2.选择编辑->设置->SSL/TLS设置->。。。。。[看图操作],注:证书导出路径不能有中文字符 3.选择编辑->设置->SSL/TLS设置->选择上一步操作导出的证书,注意导出......
  • 14-TLS指纹
    day14TLS指纹校验原理和绕过浏览器可以正常访问,但是用requests发送请求失败。后端是如何监测得呢?为什么浏览器可以返回结果,而requests模块不行呢?https://cn.investing.com/equities/amazon-com-inc-historical-data1.指纹校验案例1.1案例:ascii2dhttps://ascii2d.net/......
  • Gateway API 实践之(九)FSM Gateway 的双向 TLS
    FSMGateway流量管理策略系列:故障注入黑白名单访问控制限速重试会话保持健康检查负载均衡算法TLS上游双向TLS网关开启mTLS(双向TLS验证)的功能是一种高级安全措施,它不仅要求服务器向客户端证明其身份,同样要求客户端提供证书以证实其身份。这种双向验证极大地增强了通信的安全性......