OWASP有多个项目,其中有安全开发指南,有代码审计指南和安全测试指南
在web渗透测试中,我们可以测试web应用和测试系统安全
在测试系统安全中,我们安装kali linux并已它为引子来体验工具带来的效率感
那么,在web渗透测试这一块在阅读了一些入门书籍和一些视频以后,有必要再看一份重量级的安全指南已核对自己对于web应用安全的知识性理解
同时观察自己学到的东西与这里的异同,让自己在实战中又更多的参考资料可以查询
这个指南能慢慢描述一些其他书和视频中没有的东西。一般在书和视频中有原理有工具有案例,这是普及知识的一种常识性操作,掌握这些是有必要的,它们都是一个引子,指引你更进一步的迈入安全行业的大门。然而,我们还得思考一下成长性问题:我学完了原理,工具后,那么下一步如何进步呢?这份安全测试指南,以及安全开发指南与代码审计指南将非常适合进阶。因为,它帮助我们慢慢的去思考,开发时不知道用什么代码编写而引入的安全漏洞问题;在得到源代码以后看什么地方就能确认有漏洞的存在;以及发现问题,测试问题的安全测试指南。
-
可以发现,这是web应用安全的进阶知识,有必要读一次
-
最严重的安全问题不是一般的问题,而是与业务逻辑和自定义应用程序设计密切相关的问题。自动化软件发生的是一般性的问题。
-
我们可以做一个选择,将时间花在自动化工具上解决掉很多一般性问题的缺陷;也可以选择花在本指南中描述的技术上,已发现更严重的非一般性的问题缺陷
一些优秀的工具,可以支撑你测试与发现问题的全过程,而前提是好马配好鞍,你自身也得具备发现和辨识得出这些工具的优缺点的知识面。 -
这里建议:非安全专家人员,还得已成长为重,多阅读指南描述的技术方面。工具对于我们来说太过于遥远,我们只是使用者,不是鉴定专家。最多可以干的事情就是更新一下工具的字典,更新一下版本和插件。要想真正意义上成长和突破,还是得多积累。
-
它让你接触更全面的安全性问题,提升更高级别的思维意识。
-
如同:你认为瞎子的R闪和E闪真的只是操作么,为什么玩不出牛头的二连?因为这些操作没过脑子。为什么团战还没有爆发你却闻到了气息,提前传送?全都不是操作,而是你的意识影响到了你的行为。说白了,就是你提前想到了类似的问题可能会发生。
-
它的意识告诉我们,安全是没有银弹的。威胁建模,风险评估,等其他精彩只言片语拔高意识。
-
开源一定是对的?对于大企业来说,一定是。因为你把问题藏起来,别人破解可能会付出几个月的时间才发现你的系统中最严重的漏洞。但是,如果你开源以后,很多严重的漏洞都被修补得差不多了。再遇到别人攻击时,敌人需要付出的时间成本和知识超越性成本已几何的倍数提升。
-
开源的目的不是解决安全,正因为源代码都给别人了才更加不安全。开源的目的是尽快把超级严重的漏洞都修补一下,给测试人员节省大量宝贵的时间。在这样的情况下,如果还被人攻击成功,你也会因此而结识到你的人生中最重要的朋友。不要提供证据送他入狱,应该因此机会马上把他招聘过来。没有什么面试技巧高于这样的方式了。
-
别去给中小企业测试:它们流动资金就几十万,愿意在安全里面投入几十上百万?不破产才怪。你好心帮他们,他们反手就把你的测试证据送入局里,已正义之名来打击正义。不要排斥windows,其实windows不好,linux也不好,谁给你的钱最多,才是最好的。不是吗?
-
渗透测试中大部分是发现并利用特定技术中的已知漏洞,而web应用大部分是自己定制开发出来的。web应用程序领域的渗透测试更类似于纯研究。
-
自动化的黑盒测试是无效的:web应用扫描工具是无效的。这样的意识不妨碍我们使用web应用扫描工具。
举例1:一个网站是这样的: http://www.host/application?magic=value
维护人员为了远程而写的管理页面是: http://www.host/application?magic=sf8g7sfjdsurtsdieerwqredsgnf-g8d
你见过哪个web扫描器工具能爆破这么长的字符串吗?见过的话,你真的发财了。
举例2:用户登录A网站跳转到B网站的功能,在A网站登录生成一个密码学的hash值,发送给B站点去匹配,如果匹配成功就认为这是合法用户
在黑盒测试中,我们发现的只是一串128位的哈希值随着用户的变化而变化,更别说测试一下了。如果要测试的话,工具怎么写?别的网站没有了这些认证时又怎么办?
-
通过以上两个案例,将我们的意识带入到了从软件的整个生命周期来思考:从定义方案,设计方案,开发方案的功能,部署应用环境,维护应用等多方面来思考与多方面测试,而不是仅在最后产品上线时用个扫描器去测。既然目的是解决安全提高效率,而不是试探别人的能力水平有多高的话,那就从全局中的各个环境中多角度测试。
-
要试探别人的能力很简单,只要你是大企业有钱,就会有敌人或同行窥探到你。不需要你试探人心,社会会给你好好上一课什么叫安全事件。
-
威胁建模侧重于在设计过程中识别安全缺陷,安全代码分析和审查侧重于在开发过程中识别源代码中的安全问题,渗透测试侧重于在测试或验证过程中识别应用程序中的漏洞。