【书评】聊聊打CTF的那本书
最近的《CTF特训营》一书挺火的,在朋友圈和公众号上刷屏了。同时,我也发现安全圈的一个怪现象,通常在朋友圈推荐书籍的人,大多是没看过那本书的。
我在第一时间就入手了此书,花了几个晚上翻了一遍。本着”不吐槽、不毒舌、舍己为人”的宗旨,今天就来聊聊这本书。
对于写书评,我一直觉得,若不认识作者,且无利益相关等“屁股束缚脑袋”的事情,写起来会轻松许多,因为这样比较容易做到“有好说好,有坏说坏”的中立态度。
先说好的。
据说此书三天销完3000册的首印数量。这对于IT书籍来说,其实是不错的销量了。要知道安全书籍能卖个5000册,就算正常水平了,上万册就已经是畅销书籍了。所以说,写书是不赚钱的,一般按书价的8%收取稿费。此书定价89元,正常稿费就是一本赚7.12元,畅销卖个一万册的话也就税前71200元。另外听说作者们只要了1%,即0.89元,即使卖一万册也才8900元。这种公益行为,还是令人偑服的。
个人一直觉得CTF是提升安全实战技能的最佳途径之一,有时面试我也习惯问下。此书算是国内第一本讲述CTF的书籍,起了个好头。相信在未来两三年内,CTF主题的书籍会逐渐出现,正如当年的“企业安全建设”这个话题一样,说不定明年也可能出现“从0到1:CTFxxx”之类的书籍。国内出版社的编辑们也不妨去找找有此话题出书意向的人,或者引进国外的优秀CTF书籍。
CTF本身就是一项偏于实战的训练方式,书籍内容自然也是比较偏于实战的,避免了无用的空头理论。虽然题目是刻意构造的,但有些解题思路还是令人眼前一亮,对实战也有一定帮助。另外,有些精心构造的题目很好地呈现对应漏洞类型的危险和常用攻击手法,对于开发有很好的安全教育价值。所以,我觉得此书除了在校生打比赛外,一些此前对安全了解不足的开发也可以看看。况且近两年,各行各业也开始流行搞行业的CTF比赛,比如金融业、工控业等等,将此书当作CTF参考书也还可以。
本书整体定位偏入门,但覆盖的安全领域还是比较广的,对于专注于某安全领域的同学,也可以拿来扩宽下思路。搞web的看看二进制,搞pc的看看Android,也是甚好。
在web篇中,本书汇总了几项常见漏洞类型,虽然知识点没那么全面,但简短精要地汇总了一些常见的漏洞利用技巧,是套不错的解题技巧。这点既是它的优点,也是它的缺点。因为这就像考试画重点一样,可以高效地应付考试,但对于解决实际问题依然缺少体系化的知识构建,知识点是零散的,实际问题的解决方法不可能总是单点知识就能解决。
再说坏的。
部分知识讲解的先后顺序颠倒。这是多人协作经常出现的问题,主要还是缺少一个主编审稿改稿。个人觉得一本书最好不要超过3人,一人写书太累,太多人写书,容易导致风格差异太大,知识点的衔接不连贯,甚至错乱重复。
以PWN篇为例,开篇讲的是PWN基础,里面先讲了写bbs段的exploit技巧,但下一节又开始介绍程序内存布局,讲BBS段是什么。还有其中的真题解析,直接扔了exploit代码(里面还留着三叶草syclover的名字……),一个空行都没留,看着好累啊。里面的ret2dl_resolve技术介绍得有点粗糙,其中有几个相关案例也只是简单帖下代码,解释稀少,应该是作者偷懒了,急着给答案。虽为“PWN基础”,但对基础人士其实不够友好。
同类型web漏洞案例过多,条件竞争漏洞(国内还是很多人习惯叫“竞争条件”)就列举了3个,其实可以把sqli和xss这种常见漏洞案例拿来讲讲,丰富案例,避免重复。
APK篇主要介绍一些常见工具的使用,太多知识只是蜻蜓点水,更关键的是居然没有CTF案例,这与书的主旨就不太符合了。个人觉得,全书里面写得最不理想的篇章就是APK篇了。
总体来说,还是推荐那些对CTF感兴趣的同学看看,还有一些信息安全的在校生可借此多提升下实战能力,以及想了解多个安全方向的同学也可以用来扩展思路。但对于想深入某一安全领域,以及应付复杂的业务场景问题,可能此书并不太合适。