黑盒
优点
- 直接针对功能进行安全测试,结果能够快速输出;
- 大部分黑盒测试方法比较通用,就是说对任何编程语言做的程序都能搞;
缺点
- 需累计一定量的渗透经验;
- 需要骚思路(骚思路不是每个人都能想得到的);
- 需大量测试,因为不明确对方的技术、范围;
- 容易被封、监控到;
- 容易误伤服务器、数据库 ;
白盒
优点
- 不需要大量测试,因为已经明确对方的技术、范围;
- 针对一些限定条件、过滤,能更快速发现绕过;
缺点
- 当代码、业务、封装嵌套多层时,需要代码审计的功力深厚,或花费时间较多;比如 很多框架的设置配置、启动流程比较复杂,需要对其比较了解;
- 部分审计方法不通用、比如强类型和弱类型、编译和脚本型都有一定区别,各个框架的设计模式和启动流程也大为不同;
总结
有新人可能会问,那我学黑盒好还是白盒好?
我说下我经历过的状况,现在安全行业一般是,乙方只用黑盒,很少有拿到代码的,所以不会做白盒。而甲方是黑盒、白盒一起上、白盒为了追求效率,优先使用代码审计工具,没有开源好用的就自己造一个,因为甲方的老板不会管你什么黑盒、白盒、灰盒还是什么鬼盒,老板只关心能不能搞好安全、保证安全;
基于以上的认识,在根据你的职业规划,就知道你要学黑盒还是白盒了;