目录

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

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:\wangan\phpstudy_pro\WWW\main.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中的变量在使用的时候不像其他开发语言那样需要事先声明,PHP中的变量可以不经声明就直接使用,使用的时候系统自动创建,而且也不需要对变 量类型进行说明,系统会自动根据上下文环境自动确定变量类型。这种方式可以大大减少程序员编程中出错的概率,使用起来非常的方便。

5、文件漏洞

文件漏洞通常是由于网站开发者在进行网站设计时对外部提供的数据缺乏充分的过滤导致黑客利用其中的漏洞在Web进程上执行相应的命令。假如在 lsm.php中包含这样一段代码:include($b.”/aaa.php”.),这对黑客来说,可以通过变量$b来实现远程攻击,可以是黑客自已的 代码,用来实现对网站的攻击。可以向服务器提交a.php include=http://lZ7.0.0. 1/b.php,然后执行b.php的指令。

常见漏洞的防范措施

1、对于Session漏洞的防范

从前面的分析可以知道,Session攻击最常见的就是会话劫持,也就是黑客通过各种攻击手段获取用户的Session ID,然后利用被攻击用户的身份来登录相应网站。为此,这里可以用以下几种方法进行防范:一是定期更换Session ID,更换Session ID可以用PHP自带函数来实现;二是更换Session名称,通常情况下Session的默认名称是PHPSESSID,这个变量一般是在cookie 中保存的,如果更改了它的名称,就可以阻档黑客的部分攻击;三是对透明化的Session ID进行关闭处理,所谓透明化也就是指在http请求没有使用cookies来制定Session id时,Sessioin id使用链接来传递.关闭透明化Session ID可以通过操作PHP.ini文件来实现;四是通过URL传递隐藏参数,这样可以确保即使黑客获取了session数据,但是由于相关参数是隐藏的,它 也很难获得Session ID变量值。

2、对SQL注入漏洞的防范

黑客进行SQL注入手段很多,而且灵活多变,但是SQL注人的共同点就是利用输入过滤漏洞。因此,要想从根本上防止SQL注入,根本解决措施就是加 强对请求命令尤其是查询请求命令的过滤。具体来说,包括以下几点:一是把过滤性语句进行参数化处理,也就是通过参数化语句实现用户信息的输入而不是直接把 用户输入嵌入到语句中。二是在网站开发的时候尽可能少用解释性程序,黑客经常通过这种手段来执行非法命令;三是在网站开发时尽可能避免网站出现bug,否 则黑客可能利用这些信息来攻击网站;仅仅通过防御SQL注入还是不够的,另外还要经常使用专业的漏洞扫描工具对网站进行漏洞扫描。

3、对脚本执行漏洞的防范

黑客利用脚本执行漏洞进行攻击的手段是多种多样的,而且是灵活多变的,对此,必须要采用多种防范方法综合的手段,才能有效防止黑客对脚本执行漏洞进 行攻击。这里常用的方法方法有以下四种。一是对可执行文件的路径进行预先设定。可以通过safe_moade_exec_dir来实现;二是对命令参数进 行处理,一般用escapeshellarg函数实现;三是用系统自带的函数库来代替外部命令;四是在操作的时候进可能减少使用外部命令。

4、对全局变量漏洞防范

对于PHP全局变量的漏洞问题,以前的PHP版本存在这样的问题,但是随着PHP版本升级到5.5以后,可以通过对php.ini的设置来实现,设置ruquest_order为GPC。另外在php.ini配置文件中,可以通过对Magic_quotes_runtime 进行布尔值设置是否对外部引人的数据中的溢出字符加反斜线。为了确保网站程序在服务器的任何设置状态下都能运行。可以在整个程序开始的时候用 get_magic_quotes_runtime检测设置状态决定是否要手工处理,或者在开始(或不需要自动转义的时候)用 set_magic_quotes_runtime(0)关掉。

5、对文件漏洞的防范

对于PHP文件漏桐可以通过对服务器进行设置和配置来达到防范目的。这里具体的操作如下:一是把PHP代码中的错误提示关闭,这样可以避免黑客通过 错误提示获取数据库信息和网页文件物理路径;二是对open_basedir尽心设置,也就是对目录外的文件操作进行禁止处理;这样可以对本地文件或者远 程文件起到保护作用,防止它们被攻击,这里还要注意防范Session文件和上载文件的攻击;三是把safe-made设置为开启状态,从而对将要执行的 命令进行规范,通过禁止文件上传,可以有效的提高PHP网站的安全系数。

4 实验总结和感想

通过这个实验了解到代码审计工具可以作为辅助,大大提高漏洞分析和代码挖掘的效率。在源代码的静态安全审计中,使用自动化工具辅助人工漏洞挖掘,可以显著提高审计工作的效率。但工具到头来只是帮助提高效率,它们从来不是可以提高基础知识与技术的捷径,真正的审计还得靠我们一步一步的学习与经验的积累而来的。

静态代码编码安全审计: PHP源代码审计工具RIPS相关推荐

  1. 实验一 静态代码编码规范审计实验

    实验一 静态代码编码规范审计实验 一.PHPstudy 搭建 DVWA DVWA 是 OWASP 官方编写的 PHP 网站,包含了各种网站常见漏洞,可以学习攻击及修复方式.一个好的靶场,是黑客和网络安 ...

  2. linux添加审计账户_眼镜蛇W眼镜蛇白盒品白源代码审计工具 白帽子版

    写在最前,Cobra-W就像手中的一把剑,这把剑好不好用是Cobra-W的事,如何使用是你的事,希望能有更多的人参与到Cobra-W的变化中来...请使用python3.6 运行该工具,已停止维护py ...

  3. 法人和其他组织统一社会信用代码编码规则,附有源代码

    第18位校验码生成标准 链接如下: http://qyj.saic.gov.cn/wjfb/201509/t20150929_162430.html 第17位效验码生成文档 链接如下: http:// ...

  4. php设计一个盒子类代码_PHP白盒审计工具RIPS源码简析

    RIPS是一款对PHP源码进行风险扫描的工具,其对代码扫描的方式是常规的正则匹配,确定sink点:还是如flowdroid构建全局数据流图,并分析存储全局数据可达路径:下面就从其源码上略探一二. 1. ...

  5. php 简析对象,PHP白盒审计工具RIPS源码简析

    RIPS是一款对PHP源码进行风险扫描的工具,其对代码扫描的方式是常规的正则匹配,确定sink点:还是如flowdroid构建全局数据流图,并分析存储全局数据可达路径:下面就从其源码上略探一二. 1. ...

  6. 静态代码分析工具简介

    静态代码分析工具简介 什么是静态代码分析 静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法.结构.过程.接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数不匹配,有歧义的嵌套语句 ...

  7. 陌陌安全开源了 Java 静态代码安全审计插件

    近日,陌陌安全开源了 Java 静态代码安全审计插件 MOMO Code Sec Inspector,侧重于在编码过程中发现项目潜在的安全风险,并提供一键修复能力. MOMO 安全团队认为,绝大部分 ...

  8. php代码实现做网络安全的功能,基于PHP关键词审计技巧?网络安全源代码审计

    网络安全学习中,源代码审计是较为重要的一项.源代码审计分为白盒.黑盒.灰盒.审计方法也有多种.但是基于关键词审计技巧有什么?是很多人都想了解的. 以下是基于php审计关键词审计技巧总结: 在搜索时要注 ...

  9. coverity代码检测工具介绍_微服务测试之静态代码扫描

    静态代码扫描为整个发展组织增加价值.无论您在开发组织中发挥的作用如何,静态代码扫描解决方案都具有附加价值,拥有软件开发中所需要的尖端功能,最大限度地提高质量并管理软件产品中的风险. 背景 微服务架构模 ...

  10. PVS-Studio C/C++/C++11 静态代码分析工具

    PVS-Studio C/C++/C++11 静态代码分析工具 静态代码分析仪是一种检测代码缺陷.分析对比 商业代码的工具,它分析源代码和它生成的目标 文件,但并不实际运行源代码.应用于对安全性. 稳 ...

最新文章

  1. Openstack-L 路由注入方式
  2. 设计模式 策略模式
  3. 开发转运维有什么好点的理由_企业微信SCRM哪家好点?
  4. boost::fill相关的测试程序
  5. HDU2255(带权二分图的最大匹配)
  6. 旅行商问题的n种解法
  7. stlink 升级固件以后失败_ST-Link不能下载程序的几种解决办法
  8. 由input type=file /获取的file.type为空字符串引申浏览器是如何获取文件的MIME类型...
  9. 编译OpenJDK12:LINK : warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
  10. 远程登录shell命名sftp_开发好物推荐13强于XShell远程连接FinalSHell
  11. 安卓控制新大陆云平台(三)
  12. 测量计算机编程fx500,工程测量中fx-500P计算器基本程序.doc
  13. 使用火焰传感器和Arduino制作火灾探测器
  14. No debugging symbols found in a.out
  15. Android模拟器加速——让你的android模拟器和真机速度一样
  16. 关机提示 ”task host window任务宿主正在执行关闭任务并且正在停止已运行的任务“我是这样解决的
  17. CSS中的clear属性
  18. HTTP/2 协议详解
  19. 齐博X1 万能参数配置接口
  20. IT小白如何从职场新人到行业翘楚,看一个IT高管的发展路线

热门文章

  1. java图片转视频_java实现图片转换为视频
  2. 智能浪潮:增强时代来临
  3. matlab利用数值 积分的方法求,MATLAB求数值积分的方法
  4. silverlight 初始页面进行安装主应用(初始安装xap,本地加载xap),实现silverlight程序成桌面应用程序。
  5. Unity实现鼠标点击指定位置导航角色
  6. 华三服务器bios中查看硬盘,H3C服务器升级BIOS
  7. read H264 Nal
  8. pp助手苹果版_微商相册助手ios版下载-微商相册助手苹果版下载v1.0.8
  9. pp助手苹果版本_pp 助手停止服务/共享 ID 结束,旧版应用还能这样下载
  10. 【系统】VMware虚拟机安装黑苹果系统macOS 12.5详细步骤