目录

  1. 1. 前言
  2. 2. 审计思路
  3. 3. 系统分类
  4. 4. 审计方法
  5. 5. 前台漏洞挖掘
    1. 5.1. 寻找文件
      1. 5.1.1. 非框架

LOADING

第一次加载文章图片可能会花费较长时间

要不挂个梯子试试?(x

加载过慢请开启缓存 浏览器默认开启

PHP代码审计

2025/4/17 Web PHP 代码审计
  |     |   总文章阅读量:

前言

参考:

https://mp.weixin.qq.com/s/y9d04tnRaKHQBfZubj1cKg


审计思路

  1. 敏感函数查找

    • 危险函数:evalsystem

    • SQL注入:selectfrom

    • XFF注入:HTTP_CLIENT_IPREMOTE_ADDR

  2. 通读全文代码

    • 函数集文件:functioncommon等关键词,一般是公共函数统一调用

    • 配置文件:config 等关键词,了解功能配置与数据库配置;观察参数值,如果存在双引号可能存在代码执行

    • 安全过滤文件:filtersafecheck 等关键词,waf

    • index文件:入口文件,可知 CMS 的架构,运行流程、包含到的文件、核心文件有哪些等

  3. 根据功能点定向审计

    • 文件上传:任意文件上传、sql注入(文件名可能记录到数据库)
    • 文件管理
    • 登入认证
    • 找回密码:重置管理员密码、验证码爆破

系统分类

原生非开发框架:WordPress、phpMyAdmin

  • 无额外抽象层
  • 传统 PHP 项目的路由访问一般是直接访问对应文件
  • 容易出洞
  • GitHub 上居多

框架二开CMS:ThinkPHP、Laravel、Yii

  • MVC 等标准化结构,多数不支持直接访问
  • 内置功能:路由、ORM、模板引擎等
  • 安全性:内置CSRF防护,XSS过滤等
  • 社区支持:文档
  • Gitee 上居多

自研框架系统


审计方法

黑白盒结合

黑盒:XSS、CSRF、越权、文件操作

白盒:SQL注入、SSRF、鉴权、XXE


前台漏洞挖掘

  • 无需授权即可访问
  • 后台文件/功能点,但存在鉴权但可绕过

寻找文件

非框架

寻找鉴权文件,关注哪些文件有包含鉴权文件

因为非框架类的路由通常是直接访问文件,所以可以考虑直接把所有 php 文件的文件名作为字典,丢 bp 或者 yakit 里面爆破看返回包