目录
1 代码审计
1.1名词解释
1.2代码审计的重要性
1.3代码审计的步骤
1.4代码审计的内容
1.5常见的代码审计工具
2 RIPS
2.1什么是RIPS
2.2 RIPS的安装过程
3典型漏洞分析
3.1 文件包含漏洞分析
3.2 SQL注入漏洞分析
3.3 命令注入漏洞分析
代码审计(Code audit)是一种以发现程序错误,安全漏洞和违反程序规范为目标的源代码分析。软件代码审计是对编程项目中源代码的全面分析,旨在发现错误,安全漏洞或违反编程约定。 它是防御性编程范例的一个组成部分,它试图在软件发布之前减少错误。 C和C ++源代码是最常见的审计代码,因为许多高级语言(如Python)具有较少的潜在易受攻击的功能(例如,不检查边界的函数)。
顾名思义就是检查源代码中的安全缺陷,检查程序源代码是否存在安全隐患,或者有编码不规范的地方,通过自动化工具或者人工审查的方式,对程序源代码逐条进行检查和分析,发现这些源代码缺陷引发的安全漏洞,并提供代码修订措施和建议。
99%的大型网站以及系统都被拖过库,泄漏了大量用户数据或系统暂时瘫痪。
提前做好代码审计工作,非常大的好处就是将先于黑客发现系统的安全隐患,提前部署好安全防御措施,保证系统的每个环节在未知环境下都能经得起黑客挑战,进一步巩固客户对企业及平台的信赖。
RIPS是一款开源的,具有较强漏洞挖掘能力的自动化代码审计工具。它使用PHP语言编写的,用于静态审计PHP代码的安全性。
VCG(VisualCodeGrepper),是一款支持C/C++、C#、VB、PHP、Java和PL/SQL的免费代码安全审计工具。它是一款基于字典的检测工具,功能简洁,易于使用。
Fortify SCA(Static Code Analyzer) 一款商业版源代码审计工具。它使用独特的数据流分析技术,跨层跨语言地分析代码的漏洞产生,目前支持所有的主流开发语言。
代码审计工具可以辅助我们进行白盒测试,大大提高漏洞分析和代码挖掘的效率。在源代码的静态安全审计中,使用自动化工具辅助人工漏洞挖掘,一款好的代码审计软件,可以显著提高审计工作的效率。
代码审计工具按照编程语言、审计原理、运行环境可以有多种分类。商业性的审计软件一般都支持多种编程语言,比如VCG、Fortify SCA,缺点就是价格比较昂贵。其他常用的代码审计工具还有findbugs、codescan、seay,但是大多都只支持Windows环境。接下来主要介绍一下RIPS的简单实用以及典型漏洞分析过程。
官网:RIPS - free PHP security scanner using static code analysis
点击下载
根据自己的需求下载版本(在这里是最新版)
由于RIPS需要运行在PHPstudy环境下,所以安装路径选择在phpstudy的文件下面
如上图,是我的安装路径。(由此,RIPS全部安装完成,不需要任何配置)
运行RIPS需要开启PHPstudy,如上图所示。
接下来打开浏览器,运行RIPS。
http:127.0.0.1/rips(这个路径是安装在WWW后面的路径)
Path/file:是需要进行代码审计的文件的绝对路径,接下来我会用DVWA这个靶场进行演示,漏洞类型可以自行选择,首先利用文件包含漏洞,选好之后,开始扫描。
忽略警告,选择继续即可。
上图,是一些网站用到的函数。
如上图,成功运行。成功验证POC的存在。
接下来对SQL注入进行分析。
下面对结果进行分析。
从上面可以看出,对输入没有进行任何过滤,我们可以开始进行注入。
漏洞复现,注入语句:
-1’ union select group_concat(user_id,first_name),group_concat(user,password) from users#
high用limit进行限制,可以用注释符号进行注释。
low级别没有做任何过滤,采用一般的注入语句进行验证。
语句:127.0.0.1&ipconfig,如下图所示。