美文网首页
通用代码审计思路

通用代码审计思路

作者: Echocipher | 来源:发表于2018-12-20 00:43 被阅读0次

免责声明:本博客只是为了自己代码审计学习过程中的笔记总结,请勿用于非法的用途,否则造成的严重后果与本文作者无关

常见代码审计思路有如下几种:

  1. 根据敏感关键字回溯参数传递过程。
  2. 查找可控变量,争相追踪变量传递过程。
  3. 寻找敏感功能点,通读功能点代码。
  4. 通读全文代码。

敏感函数回溯参数过程

该方式使用最多,因为大多数漏洞是由于函数的使用不当造成的,此外如SQL注入,也有一些特征,比如SELECT,INSERT等,在结合from以及where等关键字就可以判断是否为sql语句,再通过字符串的识别,就可以判断有没有使用单引号过滤。比如,HTTP头中的HTTP_CLIENT_IP以及HTTP_X_FORWARDFOR等获取到的ip没有经过过滤就拼接到sql语句中,并且他们存在于$_SERVER变量中,不受GPC的影响,我们就可以通过查找相应关键字来快速寻找漏洞。

优点是仅需要搜索相应敏感关键字,就可以快速挖掘漏洞,可定向挖掘,高效,高质量,但也因为没有通读代码,对程序整体框架不熟悉,定位时候会花费时间,逻辑漏洞挖掘较为困难。

通读全文代码

如上所述,在企业中如果做安全运营时,对自身代码进行审计,需要了解整个业务的逻辑,才能挖掘到更多有价值的漏洞,通读全文也是需要一定的技巧,要看大体的代码结构,根据文件命名大致了解程序实现了什么功能,关键文件是什么,在查看程序目录结构时,尤其注意以下几个文件:

  1. 函数集文件:通常包含functions或者common等关键字,这些文件里有一些公共函数,提供给其他文件统一调用,大多数文件在文件头部包含其他文件,比较好的方式是在index.php或者其他功能行的文件中的头部进行寻找。
  2. 配置文件:通常包含config等关键字,配置文件包括web程序运行必须的功能性配置以及数据库信息,可以了解到程序的小部分功能。

看配置文件时,可以注意观察配置文件中的参数值是单引号还是双引号,如果是双引号,可能会存在代码执行漏洞。

  1. 安全过滤文件:关系到我们找到的可疑点可不可以利用,通常命名中有filter,safe,check等关键字,主要是对参数进行过滤,目前大多数函数会使用addslashes()函数进行过滤。
  2. index文件:由于是程序的入口文件,所以对我们了解程序架构,运行流程,包含文件等有很大帮助。

优点是可以更好的了解程序的架构以及业务的逻辑,缺点就是花费时间较多。

根据功能点定向审计

等有一定的代码审计经验之后,通常对功能点可能存在的漏洞有大致的了解,我们就可以先运行程序,浏览以下程序有什么功能,程序文件是怎么分配的,了解存在形式之后,可以寻找存在漏洞概率较大的进行简单的黑盒测试,之后再去读代码,提高审计速度。

example:

  1. 文件上传:未限制上传文件格式/SQL注入
  2. 文件管理:任意文件操作/XSS
  3. 登陆认证:任意用户登陆/越权
  4. 找回密码:爆破/算法破解

相关文章

  • 通用代码审计思路

    免责声明:本博客只是为了自己代码审计学习过程中的笔记总结,请勿用于非法的用途,否则造成的严重后果与本文作者无关 常...

  • 代码审计思路

    代码审计思路 敏感函数回溯参数过程 根据敏感函数来逆向追踪参数的传递过程,是目前使用的最多的一种方式。 通读全文代...

  • 代码审计思路之PHP代码审计

    00×0 前言 最近也是边挖src边审计代码,总结下最近的php代码审计的一些思路,我一般按照顺序往下做,限于能力...

  • PHP代码审计简单思路

    PHP常用框架 Zendframwork、Yii、Laravel 、ThinkPHP。。。 这里举例因为think...

  • 【代码审计】PHP代码审计

    1. 概述 代码审核,是对应用程序源代码进行系统性检查的工作。它的目的是为了找到并且修复应用程序在开发阶段存在的一...

  • 基础关-1

    题目:key在哪里? 题目页面 思路:第一步:进行代码审计查看线索 进行提交验证:

  • 读书笔记|《布林克现代内部审计》(2)

    第一篇 现代内部审计基础 第2章 内部审计通用知识体系 【CBOK】 通用知识体系common body of k...

  • 代码审计

    代码审计工具 1、三款自动化代码审计工具教程2、seay源代码审计系统 PHP核心配置详解 注意PHP各个版本中配...

  • 🎐代码审计

    ?源代码审计分为白盒、黑盒、灰盒 白盒:拥有源代码进行审计黑盒:不知道源代码的情况下进行渗透审计灰盒:介于黑盒与白...

  • 2021-12-06-java代码审计初步认知

    一、代码审计的定义代码审计是一种以发现安全漏洞,程序错误和程序违规为目标的源代码分析技能。 二、代码审计需要的能力...

网友评论

      本文标题:通用代码审计思路

      本文链接:https://www.haomeiwen.com/subject/zocekqtx.html