目录
1 PHP源代码审计工具RIPS
1.1 RIPS简介
2 RIPS的安装和使用
2.1 rips安装
2.2 rips介绍
2.3 rips扫描的过程和结果
3 典型漏洞分析
4 实验总结和感想
1 PHP源代码审计工具RIPS 1.1 RIPS简介在安全工作中,代码审计是很重要的一项技能。在面对大规模的代码时,使用自动化工具辅助人工漏洞挖掘,可以显著提高审计工作的效率。学会利用自动化代码审计工具,是每一个代码审计人员必备的能力。
RIPS用于 PHP 脚本漏洞的静态源代码分析器.
RIPS 是最流行的静态代码分析工具,可自动检测 PHP 应用程序中的漏洞。通过对所有源代码文件进行标记和解析,RIPS 能够将 PHP 源代码转换为程序模型,并检测在程序流程中可能被用户输入(受恶意用户影响)污染的敏感接收器(可能存在漏洞的函数)。除了发现漏洞的结构化输出之外,RIPS 还提供了一个集成的代码审计框架.
使用了静态分析技术,能够自动化地挖掘PHP源代码潜在的安全漏洞如XSS ,SQL注入,敏感信息泄漏,文件包含等常见漏洞;也可以采用正则方式扫描代码发现漏洞;还能够采用自定义的语法扫描代码发现问题。渗透测试人员可以直接容易的审阅分析结果,而不用审阅整个程序代码。当然,最后去校验结果必须是我们自己去做.
RIPS 能够检测 XSS, SQL 注入, 文件泄露, Header Injection 漏洞等等,如图1.1
图1.1.1
2 RIPS的安装和使用 2.1 rips安装进入rips官网:http://rips-scanner.sourceforge.net/,点击here后进行下载,如图2.1.1
图2.1.1
将rips解压后的文件夹移动到网站根目录下,如图2.1.2
图2.1.2
浏览器访问localhost/rips-0.55即可访问主界面,如图2.1.3
图2.1.3
也可以下载汉化版,如图2.1.4
图2.1.4
2.2 rips介绍最上方是所有功能按钮菜单,如图2.2.1
图2.2.1
上到下,由左到右依次是要扫描的源码路径 扫描级别 扫描类型 代码样式 正则表达式
subdirs:如勾选上这个选项,会扫描所有子目录,否则只扫描一级目录,缺省为勾选。
verbosity level:选择扫描结果的详细程度,缺省为1(建议就使用1)。
vuln type:选择需要扫描的漏洞类型。支持命令注入、代码执行、SQL注入等十余种漏洞类型,缺省为全部扫描。
code style:选择扫描结果的显示风格(支持9种语法高亮)。
/regex/:使用正则表达式过滤结果。
path/file: 要扫描的目录。
scan: 开始扫描。
2.3 rips扫描的过程和结果在程序的顶部"源码的绝对路径"文本框中输入你想要扫描的项目的绝对路径
(如E:wanganphpstudy_proWWWmain.php),然后根据个人的需求来选择扫描漏洞的范围,是否扫描根目录等,最后点击扫描即可。可以看到,扫描结果以图标的形式给出,非常直观。扫描后即可查看扫描报告。如图2.3.1
图2.3.1
rips 对扫描到的课程存在漏洞的代码,不仅会给出解释,还会给去相应的利用代码。如图2.3.2
图2.3.2
扫描之后注意到右侧有四个按钮,如图2.3.3。
图2.3.3
分别点开后如图2.3.4所示
图2.3.4
我们注意到左侧有四个小按钮,如图2.3.5
图2.3.5
第一个按钮可以查看代码,定位到出现漏洞的地方,如图2.3.6
图2.3.6
第二个按钮用于缩略,如图2.3.7
图2.3.7
第三个按钮可以查看帮助(这也是最有用的),在帮助说明中会解释什么是文件包含漏洞,漏洞是如何产生的,漏洞的样例代码,还会给出poc,如图2.3.8
图2.3.8
3 典型漏洞分析常见PHP网站安全漏洞
1、session文件漏洞
Session攻击是黑客最常用到的攻击手段之一。当一个用户访问某一个网站时,为了免客户每进人一个页面都要输人账号和密码,PHP设置了Session和Cookie用于方便用户的使用和访向。
2、SQL注入漏洞
在进行网站开发的时候,程序员由于对用户输人数据缺乏全面判断或者过滤不严导致服务器执行一些恶意信息,比如用户信息查询等。黑客可以根据恶意程序返回的结果获取相应的信息。这就是月行胃的SQL注入漏洞。
3、脚本执行漏洞
脚本执行漏洞常见的原因是由于程序员在开发网站时对用户提交的URL参数过滤较少引起的,用户提交的URL可能包含恶意代码导致跨站脚本攻击。脚本执行漏洞在以前的PHP网站中经常存在,但是随着PHP版本的升级,这些间题已经减少或者不存在了。
4、全局变量漏洞
PHP中的变量在使用的时候不像其他开发语言那样需要事先