@1kbfree
2018-03-31T16:03:38.000000Z
字数 1171
阅读 1145
代码审计
什么是代码审计
代码审计就是指对源码进行检查,寻找代码中的BUG,这是项需要掌握多方面技能的技术,比如编程,知道如何复现此漏洞,了解中间件等... ...
代码审计需要比较强的代码能力以及足够的耐心
为什么需要代码审计
代码审计是企业安全运营及安全从业者必备的基础能力。
代码审计用在比如企业安全运营,渗透测试,漏洞研究等。
并且在帮助公司,企业测试产品的时候,分2种测试:
而且,代码审计也是渗透人员必会的技能,因为我们只有知道了漏洞产生原理,才能更好的挖掘漏洞。
就好像我们渗透的时候,因为数据库的一些配置问题,如果有环境限制,比如目标数据库限制连接的IP,那么懂代码审计的我们就可以对源码包进行安全审计,从而来发现代码里存在的溃疡的,然后利用发现的漏洞来下一步渗透。
编程能力的要求
代码审计对编程基础是有一定要求的,就是至少要看得懂代码,并不是一些简单的判断语句,输出内容之类的。而是能看懂代码的逻辑,如果你有很多的函数是不知道意思的,你可以选择去百度。而且,如果你有其他编程语言基础,那么学这个也是不难的,因为代码具有相通性
PHP学习网站:
也还需要一些前端的基础(很简单的)。
环境准备
代码审计首先需要有一个能执行PHP脚本的环境,所以我们需要下载phpstudy(不是只有这一款,你可以随意选择,但是这个集成了多个PHP版本以及apache、nginx、mysql、phpmyadmin等,可以方便我们使用),代码审计的工具有RIPS。
代码审计思路
通常做代码审计都是检测敏感函数的参数,回溯变量,判断变量是否可控并且没有经过过滤,这是一个逆向追踪的过程。
但代码审计不止这一中手段,还可以先找出哪些文件在接收传入的参数,然后跟踪变量的传递过程,观察是否有变量传入到高危函数里面,或者传递的过程中是否有代码逻辑漏洞,这是正向追踪的方式。这样比逆向挖掘更安全。
还有一种是直接挖掘功能点漏洞,根据自身经验判断该类应用通常在哪些功能中会出现漏洞,自己全篇越读该功能的代码。
代码审计脑图
简易的:
详细的:
(这二张图都是从网上偷的~~)