【PHP代码审计】RIPS代码审计工具
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大
少走了弯路,也就错过了风景,无论如何,感谢经历
前言
代码审计工具可以辅助我们进行白盒测试,大大提高漏洞分析和代码挖掘的效率。 常用的代码审计工具之后,选取其中的PHP源码审计工具 —— Rips 做详细的使用说明
工具介绍
在源代码的静态安全审计中,使用自动化工具辅助人工漏洞挖掘,一款好的代码审计软件,可以显著提高审计工作的效率。学会利用自动化代码审计工具,是每一个代码审计人员必备的能力。 代码审计工具按照编程语言、审计原理、运行环境可以有多种分类。目前商业性的审计软件一般都支持多种编程语言,比如VCG(VCG)、Fortify SCA,缺点就是价格比较昂贵。其他常用的代码审计工具还有findbugs、codescan、seay,但是大多都只支持Windows环境。针对PHP代码审计,这里只介绍免费的支持linux环境的 PHP 代码审计软件——Rips
RIPS是一款开源的,具有较强漏洞挖掘能力的自动化代码审计工具。它使用PHP语言编写的,用于静态审计PHP代码的安全性。VCG(VisualCodeGrepper),是一款支持C/C++、C#、VB、PHP、Java和PL/SQL的免费代码安全审计工具。它是一款基于字典的检测工具,功能简洁,易于使用。Fortify SCA(Static Code Analyzer)是由Fortify软件公司(已被惠普收购)开发的一款商业版源代码审计工具。它使用独特的数据流分析技术,跨层跨语言地分析代码的漏洞产生,目前支持所有的主流开发语言。
RIPS 使用教程
RIPS是一个用php编写的源代码分析工具,它使用了静态分析技术,能够自动化地挖掘PHP源代码潜在的安全漏洞。渗透测试人员可以直接容易的审阅分析结果,而不用审阅整个程序代码。由于静态源代码分析的限制,漏洞是否真正存在,仍然需要代码审阅者确认。RIPS能够检测XSS, SQL注入, 文件泄露,Header Injection漏洞等。
由于RIPS审计效率不是很高,如果审计一个大型的cms源码会花掉很多的时间,所以考虑过后决定选择前面课程中下载的代码进行审计,同学们学会工具的使用方法之后,可以课后自己下载一套cms源码来尝试进行分析
打开浏览器,输入url:http://localhost/rips
这就是rips的主界面,接下来我会向你一一介绍这些选项的含义
subdirs:如果勾选上这个选项,会扫描所有子目录,否则只扫描一级目录,缺省为勾选
verbosity level:选择扫描结果的详细程度,缺省为1(建议就使用1)
vuln type:选择需要扫描的漏洞类型。支持命令注入、代码执行、SQL注入等十余种漏洞类型,缺省为全部扫描
code style:选择扫描结果的显示风格(支持9种语法高亮)
/regex/:使用正则表达式过滤结果
值得注意的是:官方宣称rips只支持在firefox中使用
接下来在path/file中输入扫描目录:/var/www/html/codeaudit, 点击scan:
可以看到,扫描结果以图标的形式给出,非常直观。
rips对扫描到的课程存在漏洞的代码,不仅会给出解释,还会给去相应的利用代码,比如:
比如上图中,扫描到一个命令注入漏洞cmdinject1.php(确实是我们之前命令注入章节的实验代码),打开详情,可以看到它给出的解释是Userinput reaches sensitive sink.,即用户能够输入敏感信息, 造成命令注入漏洞。
点击左边的问号,会为你解释什么是命令注入漏洞:
点击左边的红色按钮,还能生成漏洞利用代码:, 比如,就拿这个漏洞来举例,再bash一栏种输入uname -a,点击creat,再将生成的代码保存为testcode.php:
在testcode.php保存目录执行命令:php testcode.php localhost/codeaudit/cmdinject:
可以看到成功返回服务器版本信息。
另外,help信息中还给出了漏洞的修补方案:
翻译过来就是:
将代码限制为非常严格的字符集或构建允许输入的命令的白名单。 不要试图过滤恶意的命令,攻击者总是能绕过。 尽量避免使用系统命令执行功能。
示例代码: modes = array(“r”,“w”,“a”);
if(!in_array(modes=array(“r”,“w”,“a”);if(!inarray( _ GET [“mode”],$
modes))exit;
你以为你有很多路可以选择,其实你只有一条路可以走
【PHP代码审计】RIPS代码审计工具相关推荐
- 第38篇:Checkmarx代码审计/代码检测工具的使用教程(1)
Part1 前言 Checkmarx是以色列研发的一款代码审计工具,是.NET开发的,只能在Windows下使用.很多人喜欢把它和fortify进行比较,其实很难说两款工具孰优孰劣,各有秋千吧,两 ...
- php代码审计靶场,RIPS --代码审计靶场(第一关)-华盟网
靶场代码: class Challenge { const UPLOAD_DIRECTORY = './solutions/'; private $file; private $whitelist; ...
- java代码审计_Java代码审计入门篇
本期斗哥带来Java代码审计的一些环境和工具准备. Java这个语言相对于PHP来说还是比较复杂的,所以一开始接触到Java源码审计的时候会遇到一些关于环境和配置上一些困难,本文记录斗哥在开始去审计J ...
- 代码审计--12--源代码审计思路(上)
一.引子 一个Java应用的代码审计工作应该从哪里入手,对于新手来说也许会不知所措,如果在不了解整个应用系统情况下(包括业务功能.框架使用等)盲目的直接去阅读项目中源代码,往往会迷失在代码中导致漏洞误 ...
- 代码审计--13--源代码审计思路(下)
三.按照业务类型正向审计 前面提到逆向回溯的审计方式针对特征明显的安全漏洞挖掘是非常有效的,但是同样会有很多弊端,通过逆向回溯的方式只能对通用漏洞进行快速审计,不能全面挖掘更有价值的漏洞,如果在时间允 ...
- java代码审计_Java代码审计| Spring框架思路篇
Java的WEB框架是Java进阶课程,当要进行Spring的漏洞分析,要有一定的Java代码知识储备. Java后端标准的学习路线:JavaSE->JavaEE->Java Web框架 ...
- [ 代码审计篇 ] 代码审计案例详解(二) XXE代码审计案例
- 代码审计--49--PHP代码审计中常见的漏洞(一)
经过漫长时间的迭代更新,内容从一开始的碎片化网罗搜集,到排版与整合划分,再到学习与实践验证,最后摒弃初始,用自己的语言与实践结论通俗的将它展现出来.强化知识技能的同时也为读者带来更好的阅读体验. 本篇 ...
- 怎么学php代码审计,记一次简单的php代码审计
PHP代码审计所需工具: (1) 环境:PHPstudy 我这里直接使用phpstudy.其他的如:xampp,lamp等集成环境都可以. Phpsyudy官网地址:https://www.xp.cn ...
- 【代码审计】审计基础
目录 0x001 代码审计概念 0x002 了解常见函数 常用输出函数 获取当前进程所有变量/函数/常量/类 需要了解的超全局变量 0x003 审计之初 审计流程 审计了解 制定计划 0x004 如何 ...
最新文章
- 2021科大讯飞-车辆贷款违约预测赛事 Top1方案!
- 第十三周学习进度情况
- 【转载】关于c++中的explicit
- Rhythmk 学习 Hibernate 05 - Hibernate 表间关系 [ManyToOne,OneToMany]
- Xtrabackup 安装使用
- Android root概念
- SAP Spartacus forms.scss的引用问题
- 修改表字段属性_使用postman修改SAP Marketing Cloud contact主数据
- Windows Sysinternals Desktops v1.0 发布 - 超简单的虚拟桌面程序
- Create MSSQL Procedure
- eclipse 导入appcompat-v7 包
- [Mongodb]安装与启动
- EasyExcel 冻结固定表头 和搜索
- 冯小刚“开撕”崔永元,娱乐圈炒作就要进入3.0时代
- 软考计算机专业英语,软考计算机专业英语常用词汇(首字母S)
- Python序列 数据类型 创建方式 Tuple元组 Str字符串 List列表 dict字典 Set集合 range,zip,map,enumerate
- 程序员在上海税前12000的工资,真实发到手能拿到多少?
- 金科科技学院计算机系统,金陵科技学院教务管理系统登录入口二本公办院校
- STK。如何规定“视线”的范围
- android 8三星note8,去年发布的三星Note8到底还值不值得买,三星Note8深度体验!!!...