
之前在看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如何发现网站被劫持并处理被劫持、登录器劫持怎么办等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)