- 博客(3)
- 收藏
- 关注
原创 NJCTF 2017-messager
但此处由于程序fork()出了子进程,子进程的崩溃并不影响主进程,所以此处我们可以通过爆破的方式突破canary保护,然后覆盖函数返回地址并将其改变为sub_400BC6,便可以成功获取flag文件值。分析可知,在第38行位置while循环中,每次发生连接程序就复刻(fork)一个子进程,然后跳出循环,调用sub_400BE9()函数与用户进行交互,如果函数正常返回,会打印出字符串“Message received!分析可知该函数打开flag文件,并将文件内容放入unk_602160处,
2023-12-06 20:49:20
175
1
原创 Fuzzing like a Caveman
这部分内容打破了我先前的认知,我认为覆盖率数据的获取都像AFL一样,通过二进制插桩的方法获取,但实际上覆盖率获取的方式有很多。,Fuzzing like a Caveman,这个内容很有意思,从最开始的一无所有尝试写出一个模糊测试工具,并不断进行优化。作者分析C语言实现中,在打开文件前,程序就做了很多的系统调用,每一次测试迭代了多次系统调用,用fork()+execvp()执行过程。第三阶段引入代码覆盖率,作者简单写了一个有校验的模拟测试程序,让读者体会代码覆盖率方法是如何在模糊测试中发挥作用的。
2023-11-01 20:24:09
27
1
原创 Fuzzing技术发展历程
2012年,USENIX安全顶会上发布一篇论文“Fuzzing with code fragments”,研究者开发了一款叫LangFuzz的工具,他们从firefox、webkit、chromium等开源的浏览器项目以及网络上去收集js测试样本,然后用ANTLR其进行AST语法树分析,再将样本拆分成非终止语法的代码片断,放入代码池中,最后再基于代码池的代码片断对输入样本作交叉变异,主要取同类型的代码片断作替换或插入,再运行生成的变异样本进行测试。但其内容人仍然值得学习和思考,以理解模糊测试研究的发展。
2023-11-01 15:47:32
108
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人