劫持TLS绕过canary的ROP技巧

劫持TLS绕过canary的ROP技巧,第1张

之前在看ctfwiki的时候,有关劫持TLS的攻击技术仅仅是一笔带过,最近终于找到原题来练练手,深入学习一下。

这道题是starctf的babystack。整个题目非常简单,创建了一个线程,线程函数内存在栈溢出,而且溢出字节可达到0x10000。

main函数:

start_routine函数

这种技术有两个前提:

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

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

原理

当程序在创建线程的时候,顺便会创建一个TLS(Thread Local Storage),该TLS会存储canary的值,而TLS会保存在stack高地址的地方。所以,当我们溢出足够大的字节,就可以控制TLS结构体,进而控制canary,实现ROP。

TLS结构体:

解题:

首先启动gdb,断点下在我们输入完成的地方。这里我们输入了abcd\nab。

我们可以看到,我输入的abcd\ncd存在栈的0x7ffff77edf40。

然后我们使用canary命令,确定当前canary的值为0xb32920cddd174c00。pwndbg顺便给出了栈上其他地方存在0xb32920cddd174c00的地址。而这些地址很有可能就是TLS中存放canary的地址。

接下来,我们写个脚本逐个尝试。我们首先假设canary为0xdeadbeef,然后将函数返回地址劫持到main函数,随后我们溢出足够长的字节,并写入我们设定的canary。

那么这个offset是多少呢?

因为TLScanary就应该是我们刚才调试出来的几个值中的一个。所以,我们逐个尝试,如果返回了main函数,就说明我们劫持成功。

我们计算一下偏移:

我们将这几个值设为offset都去试试。

最终我们在offset=6120的时候,成功返回了main函数。

接下来,常规ROP即可。

文章推荐 PWN记一次unlink学习 被过滤了引号的SQL注入如何破? 从一道题入门JAVA反序列化漏洞 你不能不知道的的JWT相关漏洞 CTF学习资料和练习平台收集汇总

可以观察site收录的内容看看近期的快照有无被篡改成与网站实际标题不相符的,然后检查下网站首页文件indexhtml或indexphp有无被修改,看看TDK里的内容是否被篡改成加密的内容,如果发现有以上症状的话,那就是说明网站被劫持了,处理的方案有2种,一种是通过备份进行还原,另一种就是对程序代码进行全面的安全审计和网站漏洞修复,清理掉木马后门做好安全加固。

解决办法如下:

1、让玩家下载360急救箱急救

2、网站及列表还有登陆器link全部换成>

3、如果登陆器出现闪退等暴力劫持,也可以使用防劫持插件

第一步

下载360急救箱到桌面

第二步

鼠标右键点击“360急救箱”,选择“解压到360急救箱”

第三步

双击打开"360急救箱文件夹"

第四步

打开文件夹里的“点我开始清理登录器劫持exe”程序

第五步

点击“开始急救”按钮,其他上什么都不用点

第六步

发现登录器劫持驱动,处理。选择立即重启。重启后直接打开登录器即可进入游戏。如十载沉默登录器被查杀掉了,重启电脑后网站上下载登录器即可

利用搜索引擎规则漏洞或某些特定程序,欺骗百度蜘蛛,快速获得排名但也容易被 K 站。

我直接讲一下百度蜘蛛劫持代码的步骤

第一步:配置 asp 版的劫持程序

第二步:如果 shell 主页没有<!--#include file="connasp"-->,我们就自己添加一下,一般情况 asp网站都有的

第三步:修改调用代码代码的意思是 判断来访路径 是搜索引擎程序,还是真实客户访问,进行内容抓取,也就是快照,然后判断跳转然后把代码上传到 connasp 文件里面

做完以上步骤,可以刷下外链,快速吸引蜘蛛,刷外链等快照更新就可显示我们自己网站的快照,并进行判断来路跳转了

不过建议大家还是不要违规,毕竟白帽seo才是正规的seo优化网站的方式,白帽seo不懂可以去搜外网学习 *** 作方式。

以上就是关于劫持TLS绕过canary的ROP技巧全部的内容,包括:劫持TLS绕过canary的ROP技巧、seo如何发现网站被劫持并处理被劫持、登录器劫持怎么办等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9609494.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存