愿浪飒精神伴你左右,网络安全之路任重而道远。

PHP代码审计(1)-了解PHP代码审计

代码审计 Bains 4年前 (2022-12-14) 1581次浏览 0个评论
文章目录[隐藏]

代码审计目的

代码审计就是对目标的源代码进行分析,发现其程序错误、安全漏洞和违反程序规范的地方。提前做好代码审计工作,非常大的好处就是限于黑客发现系统的安全隐患,提前部署好安全防御措施,保证系统的每个环节在未知环境下都能经得起挑战。

代码审计基础

代码审计两种基本方式

  • 通读全文源码:通读全文发作为一种最麻烦的方法也是最全面的审计方法。特别是针对大型程序,源码成千上万行。当然了解整个Web应用的业务逻辑,才能挖掘到更多更有价值的漏洞。
  • 功能点审计:根据漏洞对应发生函数进行功能行审计,常会用到逆向溯源数据流方法进行审计。

代码审计两种基本方法

  • 正向追踪数据流:跟踪用户输入参数 -> 来到代码逻辑 -> 最后审计代码逻辑缺陷 -> 尝试构造payload。
  • 逆向溯源数据流:字符串搜索指定操作函数 -> 跟踪函数可控参数 -> 审计代码逻辑缺陷 -> 尝试构造payload。

现cms可分大体两类

  • 单入口cms:不管访问哪个模块都使用同一个入口文件,常见的MVC框架采用这种模式。
  • 多入口cms:每个模块都有一个入口文件(可以前端设置一个入口文件 index.php,后端创建一个入口文件admin.php,前后端的入口文件是独立的)。

代码审计方法

小编建议如果要进行代码审计,最好去熟悉你要进行代码审计的语言,亲自去开发一个程序,从程序员的角度出发做代码审计,能够更好的去思考问题,能够更为快速的定位问题。

代码审计通用思路:确定审计源码种类->确定cms类->(1)根据敏感关键字回溯参数传递过程/(2)查找可控变量,正向追踪变量传递过程/(3)寻找敏感功能点,通读功能点代码/(4)直接通读全文代码(确定该语言的各种漏洞诞生的函数)

(1)根据敏感关键字回溯参数传递过程

优点:只需搜索相应敏感关键字,即可以快速地挖掘想要的漏洞,具有可定向挖掘和高效、高质量的优点。

缺点:为由于没有通读代码,对程序的整体框架了解不够深入,在挖掘漏洞时定位利用点会花费一点时间,另外对逻辑漏洞挖掘覆盖不到。

(2)查找可控变量,正向追踪变量传递过程

查找可控变量,正向追踪变量传递的过程,查找可能存在安全漏洞的变量,从变量处发现安全问题

常见的可操控变量:name、id、password、pwd、select、search等

(3)寻找敏感功能点,通读功能点代码

通读功能点的代码,尤其关注于易出现漏洞的功能点

如:文件上传、留言板、登录认证功能、找回密码等通过从敏感功能点入手来查找安全问题。

(4)直接通读全文代码(确定该语言的各种漏洞诞生的函数)

需了解网站目录结构、函数集文件、配置文件、安全过滤文件、index文件

优点:了解程序的架构和业务逻辑,挖掘高质量漏洞,一般适合企业对自身的铲平审计。

缺点:耗费时间多,程序比较大。

常见PHP框架

  • zendframwork: (ZF)是Zend公司推出的一套PHP开发框架
  • Yii由国人开发的重量级的框架
  • CakePHP是国外的框架
  • Symfony,是一套国外的PHP开源框架
  • CodeIgniter(CI)轻量级框架,运行速度快
  • CanPHP框架是一个简洁,实用,高效,遵循apache协议的php开源框架
  • Laravel 是一个简单优雅的 PHP web 开发框架
  • SlimFramework是一个简单的 PHP5 框架用来创建 RESTful 的 Web 应用
  • ThinkPHP是一个快速、简单、面向对象的轻量级PHP开发框架
  • PHPUnit是一个轻量级的PHP测试框架
  • KYPHP支持多数据库,多语言,多模版,多app,多缓存,多编码格式,模板布局,自定义类,自动加载公共类库
  • initPHP是一款轻量级的php开发框架
  • SpeedPHP是一款全功能的国产PHP应用框架系统

一切皆有可能

一切输入都是有害的,可以控制的变量。

一切进入函数的变量都是有害的,有的变量到达有利用价值的函数(危险函数)。


本文标题:PHP代码审计(1)-了解PHP代码审计
本文链接:https://blog.langsasec.cn/index.php/2022/12/14/php%e4%bb%a3%e7%a0%81%e5%ae%a1%e8%ae%a11-%e4%ba%86%e8%a7%a3php%e4%bb%a3%e7%a0%81%e5%ae%a1%e8%ae%a1/
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
喜欢 (1)
[]
分享 (0)
Bains
关于作者:
我只是一个菜鸡
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址