2022_TQLCTF_Unbelievable_write
看一下保护
程序got表可写,无pie,libc版本为2.31,有tcache
看下main,一个菜单题,c1 c2 c3 三个选项。
初始化函数设置了ptr为一个0x10大小的堆块,为全局变量
c1函数为一个可控大小的malloc,向其读入内容之后立刻free掉,此处为与大多数题目不一样的地方,因为malloc之后立刻free,所以在tcache attack的时候需要绕过free的重重检查。
c2函数为一个可控地址的free,借助ptr,堆地址完全可控,该free可以访问到任意堆地址
c3为后门函数,检查全局变量target是否被修改,若被修改了则得到flag。
分析到这里,本challenge正如题目所描述,我们的目的是达成一次unbelievable write,即向target中写入数据。
这里给出一个非预期解,打tcache控制块tcache perthread struct,该控制块位于堆地址首部,与ptr存在固定偏移,因此我们可以利用一次free将其释放,然后通过修改tcache控制块内容实现tcache attack,达到任意地址堆块分配。则只需分配到ta ...
2025NepCTF
马上准备复现,难度中等偏下的感觉?
CADE-Detecting and Explaining Concept Drift Samples for Security Applications
发表会议:USENIXSec 2021
代码地址:https://github.com/whyisyoung/CADE
引子为了对抗概念漂移的问题,设计一个模型CADE来实现对漂移样本的检测以及分类。
检测偏离现有类的漂移样本提供解释来解释检测到的漂移。漂移检测模块:负责监测输入原分类模型中的数据是否存在问题,即检测漂移数据解释漂移模块:训练了一个基于距离的语义解释函数来对发现的漂移数据进行解释,并未是否需要对模型进行再训练提供一个参考。
由于概念漂移,部署基于机器学习的安全应用可能非常具有挑战性。无论是恶意软件分类、入侵检测,还是在线滥用检测,基于学习的模型都是在”封闭世界”假设下工作的,希望测试数据的分布与训练数据的分布大致匹配。然而,模型部署的环境通常是随时间动态变化的。这种变化既可能包括良性玩家的有机行为变化,也可能包括攻击者的恶意突变和适应。因此,测试数据分布正在从原始训练数据中转移,这可能会导致模型出现严重的故障。为了解决概念漂移问题,大多数基于学习的模型需要定期重新训练。然而,再训练往往需要标注大量的新样本(代价昂贵)。更重要的是,也很难确定何时应该重新训练模型。延迟再训 ...
pwn-tricks
该文档主要收录一些我觉得讲的很好的一些关于pwn的trick(为便于学习参与学习的大家可以在最后自增一列用于标记自己的学习进度,记录一下自己哪些是看过的了hhhhhhhhhhhhhhhhh)
tick name
url
keyboard看过了?
堆漏洞挖掘中malloc_consolidate与FASTBIN_CONSOLIDATION_THRESHOLD
https://blog.csdn.net/qq_41453285/article/details/97627411
1
Glibc PWN“堆风水”应用详解
https://www.freebuf.com/vuls/235626.html
1
关于fastbin合并问题的研究
https://bbs.kanxue.com/thread-257742.htm
1
PWN题目中malloc_consolidate()利用浅析
https://juejin.cn/post/6844903816031125518
1
the house of rabbit(超详细)
https:/ ...