首页 > 编程语言 >PHP代码审计(三)——方法技巧

PHP代码审计(三)——方法技巧

时间:2024-03-28 17:48:24浏览次数:26  
标签:审计 文件 技巧 程序 过滤 PHP 任意 目录 函数

前期准备

源码,环境

网站目录结构

  • 主目录
  • 模块目录
  • 插件目录
  • 上传目录
  • 模板目录
  • 数据目录
  • 配置目录
  • 配置文件:一般类似config.php等文件。保存一些数据库相关信息、程序的一些信息。先看看数据库编码,如果是gbk则可能存在宽字节注入。如果变量的值用双引号、则可能存在双引号解析代码执行的问题。
  • 公共函数文件
  • 安全过滤文件
  • Index入口文件:Index文件一般是整个程序的入口,详细读一下index文件可以知道程序的架构、运行流程、包含那些配置文件,包含哪些过滤文件以及包含那些安全过滤文件,了解程序的业务逻辑。

看输入

用户输入哪些被过滤,哪些无过滤,以及过滤方式是怎样的

敏感函数参数回溯

大多数漏洞产生的原因是由于函数的使用不当造成的。所以,根据敏感函数来逆向追踪参数的传递过程是比较有用的一种审计方法。

推荐工具:Seay源代码审计系统

主要是利用正则匹配一些高危函数、关键函数以及敏感关键字。

然后分析判断敏感函数的上下文,追踪参数源头。

尝试控制可控的参数变量。

功能分析

首先是用浏览器逐个访问浏览,看看这套程序有那些功能。

根据相关功能,大概推测可能存在那些漏洞。
常见功能漏洞:

  • 程序初始安装
    • 绕过install.lock逻辑
  • 站点信息泄漏
    • 物理路径
    • 服务器相关信息
    • 组建相关信息
  • 文件上传
    • 任意文件上传漏洞
    • 文件名注入
  • 文件管理
    • 任意文件操作
    • 任意文件读取
    • 跨目录浏览
    • 文件名XSS
    • 任意文件覆盖
  • 登陆认证
    • Cookie算法破解
    • 绕过认证
    • 任意用户登陆
    • 万能密码
  • 数据库备份恢复
    • 下载数据库备份文件
    • 执行SQL语句
    • Sql导出一句话
  • 找回密码
    • Token破解
    • 重置管理员账户
  • 验证码
    • 验证码爆破
    • 验证码绕过

标签:审计,文件,技巧,程序,过滤,PHP,任意,目录,函数
From: https://www.cnblogs.com/smile2333/p/18102226

相关文章

  • PHP代码审计(二)常见漏洞篇
    注入类命令注入将用户输入拼接到命令行中执行导致的任意命令执行问题<?php$command='ping-c1'.$_GET['ip'];system($command);//system函数特性执行结果会自动打印?>此处输入ip参数无任何过滤限制get输入ip=127.127.127.127如果是非法输入:ip=127.127.127.127;......
  • 经典的八个PHP高级工程面试题(附答案)
    更多:https://www.shanhubei.com/archives/55139.html1.php如何实现不用自带的cookie函数为客户端下发cookie。对于分布式系统,如何来保存session值。这个题有点绕。考的还是COOKIE和SESSION的基础知识。服务端通过set-cookie命令来通知客户端保存cookie。只要按照......
  • 传奇私服低等级战士PK技巧全面解析
    在新开传奇私服发布网中三职业战士职业是PK当中的主力军,传奇私服这个游戏有一个特点就是无论你等级多少都可以直接进行PK。没有复杂的PK申请系统,但是我们很多的玩家朋友对这个游戏的PK技巧不是非常了解,今天我们就来和大家一起详细分析一下,传奇私服中低等级战士的PK技巧。低等......
  • 「PHP系列」PHP变量
    文章目录一、PHP变量1.基本变量赋值和输出2.变量类型自动转换3.使用变量存储数组4.使用变量存储对象5.可变变量(VariableVariables)6.全局变量和局部变量7.注意事项:二、PHP变量作用域1.全局变量和局部变量2.函数内的全局变量访问3.超全局变量4.静态变量5.变......
  • PHP round 和number_format 区别
    number_format和round有什么区别?number_format()和round()在PHP中的底层计算方法并不完全一样,主要体现在它们的目的和结果表现形式上的差异,同时也可能影响到精度:round()函数主要用于对浮点数进行数学意义上的四舍五入,它的重点在于数值本身的精度调整。该函数接收两个参......
  • 基于PHP+vue的社区居民互助交流系统016gm
    。开发环境开发语言:php后端框架:Thinkphp/Laravel前端框架:vue.js服务器:apache数据库:mysql运行环境:phpstudy/wamp/xammp等社区互助平台的功能分为管理员和用户两个部分,系统的主要功能包括首页,个人中心,用户管理,租房信息管理,失物招领管理,宠物代遛管理,停车位出租管理,其他管......
  • Thinkphp/Laravel校园二手书交易系统oc81w
     开发语言:php后端框架:Thinkphp/Laravel前端框架:vue.js服务器:apache数据库:mysql运行环境:phpstudy/wamp/xammp等 性能非的功能分为管理员,卖家用户和用户三个部分,系统的主要功能包括首页、个人中心、用户管理、卖家用户管理、图书分类管理、二手图书管理、求购图书管理、......
  • 【Python系列】Python 中 YAML 文件与字典合并的实用技巧
    ......
  • 使用 HTML 标签给网页文本添加下划线的小技巧
    HTML中的 <u> 标签在细节上为我们的文本增添了额外的视觉效果。它就像是一位细心的编辑,用下划线为我们的文本穿上了一件新装,既突出重点又不失优雅。1.基础语法什么是<u>标签<u> 标签是HTML中用于为文本添加下划线的标签。它可以用来表示非超链接的下划线文本,虽然......
  • 第9章 能量审计
    <回到目录第9章能量审计让能量最大化非常重要。当所做的事情能让自己能量充沛时,我们往往能把事情做得更好。因此,大部分时间(75~80%)应该做一些能让你能量充沛的事情。长期坚持下去,你将会见证奇迹。拿两种不同颜色(最好是红色和绿色,其他的也行)的荧光笔(如果没有荧光笔,用......