• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

生命在于学习——代码审计工具

武飞扬头像
易水哲
帮助1

一、引子

在攻方面,传统的黑盒模式是通过扫描器扫描站点或利用NDAY来渗透的方式已经受到了很大的制约,现在及未来的渗透测试发展方向是白盒测试 , 也就是代码审计 , 无论是挖0day还是企业渗透测试 , 白盒都是最快最准确的挖掘姿势拿到源代码–>代码审计–>利用审计出来的漏洞制定措施,所以代码审计能力也越发重要。
最好是工具和人工结合使用。

二、审计工具

工欲善其事 必先利其器,使用自动化工具代替人工挖掘,可以显著提高审计工作的效率,学会利用自动化代码审计工具,是每个代码审计人员必备的技能
自动审计工具:

  • RIPS
  • Seay
  • fortify

三、代码审计环境搭建

phpstudy2018   php5.4   留言板源码
解压到www根目录
修改cs.com\lib\config.php 数据库配置
链接mysql数据库 , 创建数据库
create database message;
use message;
source D:\\phpStudy\\PHPTutorial\\WWW\\cs.com\\lib\\test_message.sql;
访问
http://cs.com
管理员/密码
admin/admin

四、RIPS

它是一款开源的,具有较强的漏洞挖掘能力的自动化代码审计工具,由PHP语言编写,用于静态审计PHP代码
也可以采用正则方式扫描代码发现漏洞;还能够采用自定义的语法扫描代码发现问题
官网:

http://rips-scanner.sourceforge.net/

在这里插入图片描述

解压下载的zip文件到Web服务器网站目录下即可。在浏览器中输入Web服务器地址和对应目录
主界面介绍:
学新通

功能 描述
subdirs 如果勾选上这个选项,会扫描所有子目录,否则只扫描一级目录,缺省为勾选
verbosity level 选择扫描结果的详细程度,默认为1(建议就使用1)
vuln type 选择需要扫描的漏洞类型。支持命令注入、代码执行、SQL注入等十余种漏洞类型,默认为全部扫描
code style 选择扫描结果的显示风格(支持9种语法高亮)。
/regex/ 使用正则表达式过滤结果
path/file 要扫描的目录
scan 开始扫描

访问

http://rip.com/

学新通

实验 : 使用RIPS 对留言板源码进行扫描
访问
输入地址 , 开始扫描
学新通

1、xss漏洞

学新通

访问对应地址 , 抓包复现

http://cs.com/admin/index.php

学新通
修改之后 , 放过数据包
学新通
直接跳转到首页 , 复现失败 , 因为在index.php也会做一个cookie的校验

2、文件上传漏洞

路径

File: E:\phpstudy_pro\WWW\cs.com/admin/admin_check.php

学新通

通过浏览网站发现只有修改头型 , 有上传点 , 测试

http://cs.com/user_edit.php

学新通

http://cs.com/upload/images/2022_09_20/Upload_2022_09_20_16_54_43_160791.php

学新通

存在任意文件上传 , 可以getshell , 查看源码

function upFile(){
	$dir = PATH."/upload/images/".date('Y_m_d');
	$dir_bak = "/upload/images/".date('Y_m_d');
	is_dir($dir) || mkdir($dir,0777,true);
	$fileName = date('Y_m_d_H_i_s', time())."_".(rand(100000,900000));
	$fileType = strrchr($_FILES["user_pic"]["name"], ".");
	$fileName = "Upload_".$fileName.$fileType;
	$destination =  $dir."/".$fileName;
	move_uploaded_file($_FILES["user_pic"]["tmp_name"],$destination);
	$filePath  = $dir_bak."/".$fileName;
	return $filePath;
}

没有做任何的过滤和限制 , 直接拼接的文件后缀
这个工具挺喜欢echo的,碰到就报XSS。

五、Seay

软件介绍

  • Seay代码审计 , 由阿里巴巴尹毅使用C#开发的针对PHP代码安全审计软件
  • 执行审计常见web安全漏洞,并且能够进行代码调试,函数定位,语法高亮等。
  • 运行在Windows系统上

Seay实践:

  1. 新建项目,打开源码文件夹,点击自动审计即可
  2. 误报可能会很多,扫描完成生成报告即可查看

学新通

实验 : 使用Seay源代码审计工具对留言板源码进行扫描

1、Exec命令执行

命令执行 Exec 函数 , 找到函数 , 右键定位 函数 , 发现是自定义函数 , 并不是命令执行 , 误报

学新通

2、sql注入

学新通

直接拼接的sql语句 , 变量值可控 , 存在sql注入漏洞 , 可以通过echo当前语句 , 直接查看sql语句

接着又是 命令执行 Exec 函数

学新通

误报

3、sql注入

学新通

直接拼接的sql语句 , 变量值可控 , 存在sql注入漏洞 , 可以通过echo当前语句 , 直接查看sql语句

剩下的sql注入全是直接拼接的就不一个一个介绍了 , 然后Exec函数是误报

4、文件上传

学新通

没有对文件名做任何的处理和过滤 , 可以直接上传webshell

5、伪造客户端ip

学新通

burp插件就可以演示 , 但是这个源码中没有调用这个函数的地方

小总结

Seay 感觉还不错  , 最起码sql注入可以检测出来 , 不会有xss误报 , 然后函数定位功能很好用
缺点 : 逻辑漏洞无法检测 , 当然这也是工具的通病

六、fortify

Fortify SCA ,是HP的产品 ,是一个静态的、白盒的软件源代码安全测试工具。
它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应
用软件的源代码进行静态的分析,分析的过程中与它特有的软件安全漏洞规则集
进行全面地匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并给予整理
报告。扫描的结果包含详细的安全漏洞信息、安全知识说明、修复意见。

Foritfy SCA

主要包含的五大分析引擎

数据流引擎 : 跟踪,记录并分析程序中的数据传递过程所产生的安全问题。
语义引擎 : 分析程序中不安全的函数,方法的使用的安全问题。
结构引擎 : 分析程序上下文环境,结构中的安全问题。
控制流引擎 : 分析程序特定时间,状态下执行操作指令的安全问题。
配置引擎 : 分析项目配置文件中的敏感信息和配置缺失的安全问题。

特有的X-Tir跟踪器 : 跨跃项目的上下层次,贯穿程序来综合分析问题

支持的语言

1. asp.net     
2. VB.Net     
3. c#.Net     
4. ASP     
5. VBscript     
6. VS6     
7.java     
8.JSP     
9.javascript     
10. HTML     
11. XML     
12. C/C       
13.PHP     
14.T-SQL     
15.PL/SQL     
16. Action script      
17. Object-C (iphone-2012/5)     
18. ColdFusion5.0 - 选购     
19. python -选购     
20. COBOL - 选购     
21.SAP-ABAP -选购
学新通

1、导出报告

点击tools-reports,有两种报告模式:Generate BIRT Report 和 Generate Legacy Report

选择 Generate BIRT Report

学新通

不过默认导出的是英文报告 , 一般很少使用该功能

2、xss漏洞

学新通

主要介绍工具如何使用 , 关于漏洞的分析 , 复现 , 前面已经搞过了 , 该漏洞是误报

3、弱口令

学新通

4、文件上传

工具扫出来提示的是 路径操控

学新通

5、sql注入

学新通

学新通

搜索行sql注入 , 可以看到是直接拼接的sql语句, 虽然有单引号保护 , 但是可以通过闭合单引号绕过

七、工具的不足

工具本身存在一定量的误报或者漏报
扫描结果需要大量人工确定甄别
csrf, 越权, 逻辑漏洞等扫不到
如用多种语言开发的软件,则需单独分析

不能自动收集常见的代码安全问题

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhhkbkag
系列文章
更多 icon
同类精品
更多 icon
继续加载