条件竞争漏洞复现(Race Condition)
条件竞争漏洞复现(Race Condition)0x00概述条件竞争是指一个系统的运行结果依赖于不受控制的事件的先后顺序。当这些不受控制的事情没有按照开发者想要的方式运行时,就可能出现bug。这个术语最初来自两个电信号相互竞争来影响输出结果。
条件竞争主要出现在如下领域
电子系统,尤其是逻辑电路
计算机,尤其是多线程程序和分布式程序
由于目前的系统中大量采用并发编程,经常对资源进行共享,往往会产生条件竞争漏洞。
这里我们主要考虑计算机程序方面的条件竞争。当一个软件的运行结果依赖于进程或线程的顺序时,就可能会出现条件竞争。简单考虑一下,就可以知道条件竞争需要如下条件:
并发,即至少存在两个并发执行流。这里的执行流包括线程,进程,任务等级别的执行流。
共享对象,即多个并发流会访问同一个对象。常见的共享对象有共享内存,文件系统,信号。一般来说,这些共享对象是用来使得多个程序执行流相互交流。此外,我们称共享对象的代码为 临界区。在正常写代码时,这部分应该加锁。
改变对象,即至少有一个控制流会改变竞争对象的状态。因为如果程序只是对对象进行读操作,
由于在并发时,执行流的不确定性很大,条 ...
杀软对抗
杀软对抗前言:基于目前主流的r3层动态对抗技巧且针对360核晶,卡巴斯基edr以及bitdefender进行思路讲解,不包含钓鱼,不包含内核,以及流量对抗。
木马(cs4.5二开或者以上版本以及havoc)
厂商360核晶:由于本人日常并不对抗360,也没有深入了解过,简单测试了一下核晶在动态层面基本上是必杀shell指令的,针对这一点我们可以采用bof的形式去执行一些 cmd命令同样可以实现,并且鉴于360对白加黑进行大面积的封禁,上线方式也改为分离式上线(未测试单文件),维权方式可推荐计划任务或者服务的形式当然这里,需要通过win api的形式实现。
卡巴斯基edr:基于大量的测试,卡巴斯基对于cs的上线并不像其它杀软非常敏感,更多的查杀重心是放在内存的扫描之上,cs4.9.1执行shell指令并不会被查杀,但当运行一段时间之后内存会被查杀,所以对抗方式其实可以使用二开的cs或者换用其它的c2,当然长时间的sleep规避(可以hook sleep自己实现sleep加密)也是存在一定效果的,这里即使我们进行注入依旧会被查杀。
bitdefender:个人测试中属于对连网和行为检测非常 ...
机器学习视频教程
机器学习视频教程前言机器学习方面的视频教程
链接网易版吴恩达机器学习课程
https://www.bilibili.com/video/BV1LE411h7P4/?vd_source=b9c5bfe87527051f73cd5ccc7880600e
吴恩达21版Deeplearning.ai深度学习
https://www.bilibili.com/video/BV12E411a7Xn/
李宏毅2021/2022春机器学习课程
https://www.bilibili.com/video/BV1Wv411h7kN/
浙大胡浩基机器学习
https://www.bilibili.com/video/BV1qf4y1x7kB/
机器学习绪论
机器学习绪论绪论机器学习技术的分类人工智能主要包括感知智能(比如图像识别、语言识别和手势识别等)和认知智能(主要是语言理解知识和推理)。它的核心是数据驱动来提升生产力、提升生产效率。
机器学习相关技术属于人工智能的一个分支。其理论主要分为如下三个方面:
传统的机器学习:包括线性回归、逻辑回归、决策树、SVM、贝叶斯模型、神经网络等等。
深度学习(Deep Learning):基于对数据进行表征学习的算法。好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。
强化学习(Reinforcement Learning):强调如何基于环境而行动,以取得最大化的预期利益。其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。和标准的监督式学习之间的区别在于,它并不需要出现正确的输入/输出对,也不需要精确校正次优化的行为。强化学习更加专注于在线规划,需要在探索(在未知的领域)和遵从(现有知识)之间找到平衡。
在现实生活中,机器学习技术主要体现在以下几个部分:
数据挖掘(Data ...
数据结构-哈希表uthash的使用
数据结构-哈希表uthash的使用
数据分析入门活动赛事,利用Pandas分析美国选民总统
数据分析入门活动赛事,利用Pandas分析美国选民总统1、赛前准备1.1 前言本次赛事由开源学习组织Datawhale主办,主要带领学习者利用Python进行数据分析以及数据可视化,包含数据集的处理、数据探索与清晰、数据分析、数据可视化四部分,利用pandas、matplotlib、wordcloud等第三方库带大家玩转数据分析~还有丰富礼品等你来领取哦~学习赛事地址:https://tianchi.aliyun.com/competition/entrance/531837/introduction
1.2 数据集来源介绍所有候选人信息该文件为每个候选人提供一份记录,并显示候选人的信息、总收入、从授权委员会收到的转账、付款总额、给授权委员会的转账、库存现金总额、贷款和债务以及其他财务汇总信息。数据字段描述详细:https://www.fec.gov/campaign-finance-data/all-candidates-file-description/关键字段说明
CAND_ID 候选人ID
CAND_NAME 候选人姓名
CAND_PTY_AFFILIATION 候选人党派
...
攻防世界高手进阶区——stack2
攻防世界高手进阶区——stack2
看题目啥都没有
一,分析文件
checksec
发现居然存在栈溢出保护,这是以前做题没看到过的,可能会有新的知识点。
运行文件
貌似是一个输入数字计算平均值的程序。
ida打开
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 unsigned int m; // [esp+34h] [ebp-74h] char v13[100]; // [esp+38h] [ebp-70h] unsigned int v14; // [esp+9Ch] [ebp-Ch] v14 = __readgsdword(0x14u); setvbuf(stdin, 0, 2, 0); setvbuf(stdout, 0, 2, 0); v9 = 0; puts("********************************************** ...
攻防世界高手进阶区——Recho
攻防世界高手进阶区——Recho
题目什么也没给。(在这个题困了好久,一直在学基础,但是发现了一个更好用的学习网站,基本 ROP - CTF Wiki (ctf-wiki.org))希望对你们有用,估计以后就转战ctfwiki了。先做完这个题吧。
做题经历1234567891011121314151617181920int __cdecl main(int argc, const char **argv, const char **envp){ char nptr[16]; // [rsp+0h] [rbp-40h] BYREF char buf[40]; // [rsp+10h] [rbp-30h] BYREF int v6; // [rsp+38h] [rbp-8h] int v7; // [rsp+3Ch] [rbp-4h] Init(); write(1, "Welcome to Recho server!\n", 0x19uLL); while ( read(0, nptr, 16uLL) > 0 ) / ...
攻防世界高手进阶区——dice_game
攻防世界高手进阶区——dice_game
题目里面啥都没有。
一.分析文件
checksec
只有栈溢出保护关闭了,其他都是开着的。
运行
可以看出是要猜数字,猜对50次。
ida逆向
1234567891011121314151617181920212223242526272829303132333435363738394041__int64 __fastcall main(int a1, char **a2, char **a3){ char buf[55]; // [rsp+0h] [rbp-50h] BYREF char v5; // [rsp+37h] [rbp-19h] ssize_t v6; // [rsp+38h] [rbp-18h] unsigned int seed[2]; // [rsp+40h] [rbp-10h] unsigned int v8; // [rsp+4Ch] [rbp-4h] memset(buf, 0, 0x30uLL); // 给buf赋值为0 *(_QWORD ...
攻防世界高手进阶区 ——实时数据检测
攻防世界高手进阶区 ——实时数据检测
1.分析文件
先checksec一下发现啥都没有开,完全就是裸奔。
运行一下运行发现就是想要把key的值改为0x2223322。
直接上ida
1234567891011int locker(){ char s[520]; // [esp+0h] [ebp-208h] BYREF fgets(s, 512, stdin); imagemagic(s); // 存在格式化字符串漏洞 if ( key == 0x2223322 ) return system("/bin/sh"); else return printf(format, &key, key);}
当key=0x2223322时,获得shell。
1234int __cdecl imagemagic(char *format){ return printf(format);}
跟进函数imagemagic发现存在格式化字 ...