目录

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 命令注入漏洞分析


1 代码审计

1.1名词解释

代码审计(Code audit)是一种以发现程序错误,安全漏洞和违反程序规范为目标的源代码分析。软件代码审计是对编程项目中源代码的全面分析,旨在发现错误,安全漏洞或违反编程约定。 它是防御性编程范例的一个组成部分,它试图在软件发布之前减少错误。 C和C ++源代码是最常见的审计代码,因为许多高级语言(如Python)具有较少的潜在易受攻击的功能(例如,不检查边界的函数)。

顾名思义就是检查源代码中的安全缺陷,检查程序源代码是否存在安全隐患,或者有编码不规范的地方,通过自动化工具或者人工审查的方式,对程序源代码逐条进行检查和分析,发现这些源代码缺陷引发的安全漏洞,并提供代码修订措施和建议。

1.2代码审计的重要性

99%的大型网站以及系统都被拖过库,泄漏了大量用户数据或系统暂时瘫痪。

提前做好代码审计工作,非常大的好处就是将先于黑客发现系统的安全隐患,提前部署好安全防御措施,保证系统的每个环节在未知环境下都能经得起黑客挑战,进一步巩固客户对企业及平台的信赖。

1.3代码审计的步骤

  1. 配置审计分析环境
  2. 熟悉业务流程
  3. 分析程序架构
  4. 工具自动化分析
  5. 人工审计结果
  6. 整理审计报告

1.4代码审计的内容

  1. 前后台分离的运行架构
  2. WEB服务的目录权限分类
  3. 认证会话与应用平台结合
  4. 数据库的配置规范
  5. SQL语句的编写规范
  6. WEB服务的权限配置
  7. 对抗爬虫引擎的处理措施

1.5常见的代码审计工具

RIPS是一款开源的,具有较强漏洞挖掘能力的自动化代码审计工具。它使用PHP语言编写的,用于静态审计PHP代码的安全性。

VCG(VisualCodeGrepper),是一款支持C/C++、C#、VB、PHP、Java和PL/SQL的免费代码安全审计工具。它是一款基于字典的检测工具,功能简洁,易于使用。

Fortify SCA(Static Code Analyzer) 一款商业版源代码审计工具。它使用独特的数据流分析技术,跨层跨语言地分析代码的漏洞产生,目前支持所有的主流开发语言。

2 RIPS

2.1什么是RIPS

代码审计工具可以辅助我们进行白盒测试,大大提高漏洞分析和代码挖掘的效率。在源代码的静态安全审计中,使用自动化工具辅助人工漏洞挖掘,一款好的代码审计软件,可以显著提高审计工作的效率。
   代码审计工具按照编程语言、审计原理、运行环境可以有多种分类。商业性的审计软件一般都支持多种编程语言,比如VCG、Fortify SCA,缺点就是价格比较昂贵。其他常用的代码审计工具还有findbugs、codescan、seay,但是大多都只支持Windows环境。接下来主要介绍一下RIPS的简单实用以及典型漏洞分析过程。

2.2 RIPS的安装过程

官网:RIPS - free PHP security scanner using static code analysis

点击下载

根据自己的需求下载版本(在这里是最新版)

由于RIPS需要运行在PHPstudy环境下,所以安装路径选择在phpstudy的文件下面

如上图,是我的安装路径。(由此,RIPS全部安装完成,不需要任何配置)

运行RIPS需要开启PHPstudy,如上图所示。

3典型漏洞分析

3.1 文件包含漏洞分析

接下来打开浏览器,运行RIPS。

http:127.0.0.1/rips(这个路径是安装在WWW后面的路径)

Path/file:是需要进行代码审计的文件的绝对路径,接下来我会用DVWA这个靶场进行演示,漏洞类型可以自行选择,首先利用文件包含漏洞,选好之后,开始扫描。

忽略警告,选择继续即可。

这是扫描进度提示。

在这里有四个选项可以查看相关内容。

User input 是网站用户输入的内容。

上图,是一些网站用到的函数。

这里会直接显示可能存在漏洞的部分。

定位在源代码中的位置。

也会给一些验证POC以及修复建议。

然后打开DVWA环境,利用POC进行验证。

如上图,成功运行。成功验证POC的存在。

3.2 SQL注入漏洞分析

接下来对SQL注入进行分析。

下面对结果进行分析。

从上面可以看出,对输入没有进行任何过滤,我们可以开始进行注入。

漏洞复现,注入语句:

-1’ union select group_concat(user_id,first_name),group_concat(user,password) from users#

medium采用了转义函数。

high用limit进行限制,可以用注释符号进行注释。

3.3 命令注入漏洞分析

low级别没有做任何过滤,采用一般的注入语句进行验证。

语句:127.0.0.1&ipconfig,如下图所示。

medium级别对符号进行了简单的转义

对“&&”进行了过滤,那么我们可以采用“&”试一下或者可以用“;”把两个&分隔开

high级别转义了很多符号,我们同样可以跳过。

代码审计工具学习之RISP(安装以及初步操作)相关推荐

  1. 代码审计工具Checkmarx安装环境和安装过程

    Checkmarx是以色列研发的一款代码审计工具,使用.NET开发,CheckMarx CsSAST仅仅支持windows安装,只有代码扫描引擎(code Engine)支持linux和windwos ...

  2. LBM模式学习·保姆级安装及初步使用教程

    在学习LBM模式的过程中,我感觉LBM模式流程简短.运行方便,但是可供参考的材料较为有限,对于一个独立学习LBM模式的初学者非常不友好(我就是这个初学者哈哈,此前从未独立运行过任何模式),因此萌生了写 ...

  3. fiddler的下载安装和初步操作

    fiddler简介 Fiddler是一款HTTP协议调试代理工具,它能够抓取记录本机所有HTTP(S)请求.其运行机制其实就是本机 127.0.0.1上监听8888端口的HTTP代理 Fiddler无 ...

  4. sqlite数据库下载安装和初步操作和所遇到的问题near sqlite3:syntax error

    1.下载sqlite数据库:http://www.sqlite.org/download.html 如果是在window上安装需要在 Windows 区下载预编译的二进制文件.如图下载下载 sqlit ...

  5. Syncthing-P2P文件同步工具学习

    Syncthing-P2P文件同步工具学习 简介 windows安装 其他 linux安装 linux vps安装配置 linux vps内安装syncthing 简介 开源的文件同步工具,基于P2P ...

  6. webpack前端构建工具学习总结(一)之webpack安装、创建项目

    npm是随nodeJs安装包一起安装的包管理工具,能解决NodeJS代码部署上的很多问题: 常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器 ...

  7. Linux学习-67-日志服务器设置和日志分析工具(logwatch)安装及使用

    15.5 日志服务器设置过程 使用"@IP:端口"或"@@IP:端口"的格式可以把日志发送到远程主机上.可以解决:管理几十台服务器,每天的重要工作就是查看这些服 ...

  8. 【安卓学习之开发工具】VMware虚拟机安装ubuntu

    █ [安卓学习之开发工具]VMware虚拟机安装ubuntu █ 相关文章: [安卓学习之开发工具] Android Studio学习 1 - 入门篇 [安卓学习之开发工具] Android Stud ...

  9. Django 学习(一)Django安装以及初步使用

    刚入门学习Django,目的是希望建立一个属于自己的页面.从零开始,持续学习- 首先要安装好Python----最好安装现流行的Python3.X版本 Python安装好后,安装Django Djan ...

  10. Linux安全运维学习⑤ ---- yum工具进行软件的安装与卸载 (与依赖关系列表理解)

    需求:卸载vim编辑器工具 1.该软件的名称 rpm -qa | grep "vim" 一共发现了四个相关文件 2.卸载 rpm -e 卸载common 需要先卸载 enhance ...

最新文章

  1. winsock2之最简单的win socket编程
  2. [Spring 深度解析]第4章 Spring之AOP
  3. GridView:根据单元格的值给单元格着色
  4. web page web form php,Web Pages Razor
  5. Jenkins持续集成环境之tomcat的安装和配置
  6. 通过委托增强Spring数据存储库
  7. 用java程序设计一个快递_Java编程语言的优点快递
  8. 自定义控件之绘图篇(三):区域(Range)
  9. mysql 5.7和8.0区别_SpringBoot 2.0 教程实战 MySQL 读写分离
  10. 小红书面试题——paddingNum,用逗号分割数字串
  11. debian开机打开浏览器_使自動起動! 我学到了!原来“文件”可以跟“应用程序”一样,都能设置开机自启!!...
  12. 斐讯路由器K2弹广告-刷机过程
  13. c语言知识点总结300字,大二学年自我总结300字 .doc
  14. 如何实现一个游戏地图编辑器
  15. 分布式计算原理之分布式协调与同步(1)——分布式事务
  16. vo bo po dao pojo dto
  17. 基于离散小波变换 (DWT)的图像信息隐藏算法
  18. u2硬盘测试软件,Buffalo HD-PET320U2移动硬盘检测报告
  19. 珠三角地区调查研究咨询市场知名公司信息情况
  20. 云客Drupal源码分析之合并数组

热门文章

  1. BUCK电路中,输入电压增加后,电感电流曲线变化的推导 // 《精通开关电源设计》P44 图2-3
  2. 软件测试自学指南---从入门到精通V1.0
  3. 【VS2010安装教程】
  4. 高校后勤管理系统java代码_java毕业设计_springboot框架的高校后勤信息管理系统...
  5. ArcPad 10 的安装和部署
  6. [CM311-1A]-Android 分区管理以及系统启动流程和目录解析
  7. windows内核驱动开发(WDK环境搭建)
  8. eXeScope 注册机制破解
  9. 基于Packet Tracer 的校园网络设计方案(计算机网络与课程实验)(一)——子网划分方案规划
  10. android imagebutton 点击效果缩小,ImageButton和ZoomButton使用