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

admin 2022年12月19日13:01:16评论26 views字数 1774阅读5分54秒阅读模式

免责声明

本公众号所发布的文章及工具只限交流学习,本公众号不承担任何责任!如有侵权,请告知我们立即删除。

代码审计目的

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

代码审计基础

代码审计两种基本方式

  • 通读全文源码:通读全文发作为一种最麻烦的方法也是最全面的审计方法。特别是针对大型程序,源码成千上万行。当然了解整个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代码审计

历史推荐

漏洞复现-fastjson 1.2.24-rce

网络安全架构之应用层安全

工具推荐——super-xray

这是你的日常吗

网络安全架构之网络层安全

浪飒sec博客网正式上线

两本电子书

SRC经验分享-BP历史流量找到的信息泄露

漏洞复现-Tomcat8弱口令&&后台Getshell

超详细的渗透测试思维导图



原文始发于微信公众号(浪飒sec):PHP代码审计(1)-了解PHP代码审计

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月19日13:01:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   PHP代码审计(1)-了解PHP代码审计https://cn-sec.com/archives/1463422.html

发表评论

匿名网友 填写信息