PHP代码审计敏感函数合集

article/2025/10/9 20:47:08

在这里插入图片描述

PHP代码审计

通常去代码审计的时候基本是正则的挖掘思路

通常代码审计的话,大部分就是通过关键的函数,和关键的变量去审计

img

img

敏感函数

PHP操作数据库函数

mysqli_connect()
//建立与MySQL数据库的连接
mysqli_connect_errno()
//判断连接数据库是否成功
mysql_connect_error()
//输出连接错误的错误信息
mysql_select_db()
//设置连接的数据库
mysqli_set_charset()
//设置与MySQL数据库传送数据时使用的字符集
mysqli_query()
//执行并发送SQL语句
mysqli_affected_rows()
//获得前一次操作的所影响的行数
mysqli_fetch_all()
//从结果集中取出所有行作为关联或索引、混合数组
mysqli_fetch_assoc()
//从结果集中取出所有行作为关联数组
mysqli_fetch_row()
//从结果集中取出所有行作为索引数组
mysqli_fetch_array()
//从结果集中取出所有行作为混合数组
mysqli_insert_id()
//获得上一次insert操作的id
mysqli_num_rows()
//获得结果集中的记录条数
mysqli_num_rows()
//获得结果集中的记录条数
mysqli_close()
//关闭数据库连接

PHP文件上传函数/文件操作函数

deldot
in_array
intval
strrchr
strtolower
strrpos
str_ireplace
strstr
substr
trim
file_put_contents()
//函数把一个字符串写入文件中。
fputs()
//函数写入文件
copy — 拷贝文件
delete — 参见 unlink 或 unset
fflush — 将缓冲内容输出到文件
file_get_contents — 将整个文件读入一个字符串
file_put_contents — 将一个字符串写入文件
fputcsv — 将行格式化为 CSV 并写入文件指针
fputs — fwrite 的别名
fread — 读取文件(可安全用于二进制文件)
fscanf — 从文件中格式化输入
fwrite — 写入文件(可安全用于二进制文件)
move_uploaded_file — 将上传的文件移动到新位置
readfile — 输出文件
rename — 重命名一个文件或目录
rmdir — 删除目录
unlink — 删除文件

PHP命令执行命令注入函数

popen()
pcntl_exec()
escapeshellarg — 把字符串转码为可以在 shell 命令里使用的参数
escapeshellcmd — shell 元字符转义
exec — 执行一个外部程序
passthru — 执行外部程序并且显示原始输出
proc_close — 关闭由 proc_open 打开的进程并且返回进程退出码
proc_get_status — 获取由 proc_open 函数打开的进程的信息
proc_nice — 修改当前进程的优先级
proc_open — 执行一个命令,并且打开用来输入/输出的文件指针。
proc_terminate — 杀除由 proc_open 打开的进程
shell_exec — 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。
system — 执行外部程序,并且显示输出

PHP代码执行函数

eval()
//eval() 函数把字符串按照 PHP 代码来计算,如常见的一句话后门程序:<?php eval($_POST[cmd])?
assert()
//与eval类似,字符串被 assert() 当做 PHP 代码来执行
preg_replace()
//preg_replace()函数原本是执行一个正则表达式的搜索和替换,但因为存在危险的/e修饰符,使 preg_replace() 将 replacement 参数当作 PHP 代码
create_function()
//create_function主要用来创建匿名函数,如果没有严格对参数传递进行过滤,攻击者可以构造特殊字符串传递给create_function()执行任意命令
array_map()
//array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。 回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致
call_user_func()/call_user_func_array ()
//call_user_func — 把第一个参数作为回调函数调用,其余参数是回调函数的参数。
//call_user_func_array — 调用回调函数,并把一个数组参数作为回调函数的参数
array_filter()//array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
//依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 true,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
usort()uasort()
//usort() 通过用户自定义的比较函数对数组进行排序。
//uasort() 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联 。

PHP输出/打印函数

echo()
print()
printf()
sprintf()
print_r()
var_dump()
die()

PHP文件下载

fopen()
readfile()
file_get_contents()

PHP文件删除

unlink()

PHP文件读取

file_get_contents()
readfile()
highlight_file()

PHP魔术方法

__construct()//每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作__destruct()//某个对象的所有引用都被删除或者当对象被显式销毁时执行__call() //在对象上下文中调用不可访问的方法时触发__callStatic() //在静态上下文中调用不可访问的方法时触发__get() //用于从不可访问的属性读取数据__set() //用于将数据写入不可访问的属性__isset() //在不可访问的属性上调用isset()或empty()触发__unset() //在不可访问的属性上使用unset()时触发__sellp() //使用serialize时触发__wakeup() //使用unserialize时触发__toString() //把类当作字符串使用时触发__invoke() //当脚本尝试将对象调用为函数时触发__set_state()//当调用 var_export() 导出类时,此静态方法会被自动调用。__clone()//当使用 clone 复制一个对象时自动调用__debuginfo()//使用 var_dump() 打印对象信息时自动调用

http://chatgpt.dhexx.cn/article/Bw6q0U5u.shtml

相关文章

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

000 前言 最近也是边挖src边审计代码&#xff0c;总结下最近的php代码审计的一些思路&#xff0c;我一般按照顺序往下做&#xff0c;限于能力水平&#xff0c;可能会有不对或者欠缺的地方&#xff0c;希望各位师傅能够指导。 001 前期工作,需要的工具&#xff08;我使用的) …

PHP代码审计 -- 文件上传

工具&环境 工具&#xff1a;Seay源代码审计系统&#xff0c;文本编辑器一个 环境&#xff1a;phpstudy&#xff0c;网站源码是 zbzcms步骤 1&#xff0c; 将zbzcms网站源码放入phpstudy&#xff0c;根据网站安装引导完成网站搭建&#xff1b; 2&#xff0c;打开Seay&…

PHP代码审计

代码审计顾名思义就是检查源代码中的缺点和错误信息&#xff0c;分析并找到这些问题引发的安全漏洞&#xff0c;并提供代码修订措施和建议。 PHP代码审计 审计套路 通读全文法 (麻烦&#xff0c;但是最全面) 敏感函数参数回溯法 (最高效&#xff0c;最常用) 定向…

【PHP代码审计】——开启你的代码审计生涯

作者名&#xff1a;Demo不是emo 主页面链接&#xff1a;主页传送门创作初心&#xff1a;舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座右…

【代码审计】--- php代码审计方法

代码审计需要掌握的点 PHP编程语言的特性和基础Web前端编程基础漏洞形成原理代码审计思路不同系统、中间件之间的特性差异 代码审计思路 方法一 ---- 检查敏感函数的参数&#xff0c;然后回溯变量&#xff0c;判断变量是否可控&#xff0c;并且有没有经过严格的过滤&#xf…

DAY31:代码审计基础( PHP 篇)

DAY31&#xff1a;代码审计基础( PHP 篇) 1、PHP 代码审计基础 1.1、代码审计概述 ​ 代码审计&#xff08;Code audit&#xff09;是一种以发现程序错误&#xff0c;安全漏洞和违反程序规范为目标的源代码分析。软件代码审计是对编程项目中源代码的全面分析&#xff0c;旨在…

PHP代码审计(全)

前言 官方文档&#xff1a;php.net php官方文档是非常详情&#xff0c;好用的&#xff0c;在遇到不清楚作用的函数时可以进行查询 白盒测试做代码审计最主要的知识是要去了解一个漏洞应该有哪些防御方式&#xff0c;因为大部分的漏洞都是因为修复没有做的全面&#xff0c;或…

PHP代码审计——PHP中常见的敏感函数列表

文章目录 前言一、PHP中的敏感函数——命令注入漏洞 1&#xff09;exec() 2&#xff09;system () 3&#xff09;passthru () 4&#xff09;shell_exec () 5&#xff09;popen() **/** proc_open() 二、PHP中的敏感函数——代码注入漏洞 1&#xff09;…

Idea快速选中一行的四种方式

一、鼠标连续点三下 二、end键将光标移到行尾 &#xff0c; ctrlw 选中行 三、end键将光标移到行尾 &#xff0c; shift home 选中行 四、home 键 光标移到行首、然后 点击shift end

Xcode快捷键修改 复制一行、删除一行

快速目录 Xcode快捷键修改 复制一行、删除一行0.移动选中行1.修改权限2.修改快捷键配置文件复制一行删除一行 3.设置修改Xcode快捷键4.其它注意参看 Xcode快捷键修改 复制一行、删除一行 主要是用Android Studio 开发习惯了&#xff0c;在Xcode上又没有&#xff0c;比如复制当…

竖行选中快捷键

今天选中代码时需要竖行选中&#xff0c;就回顾了一下竖行选中的快捷键 这是个很实用的快捷键。 在myeclipse中竖行选中是AltShiftA&#xff0c;进入竖行选中状态&#xff0c;按Esc退出 在idea中竖行选中的快捷键是Alt鼠标选中

idea 删除当一行或者选中行的快捷键

之前前端开发一直使用VSCode&#xff0c;常用快捷键删除一行或者当前选中的几行代码&#xff0c;使用idea的时候发现快捷键并不相同&#xff0c;查看发现idea的快捷是&#xff1a;Ctrl Y&#xff0c;比手动删除代码方便很多。 通过File->Setttings->Keymap可以查看已经…

java开发银行柜员业务绩效考核系统

导读:当今社会己进入信息社会时代,信息己经受到社会的广泛关注,被看作社会和科学技术发展的三大支柱(材料、能源、信息)之一。信息是管理的基础,是进行决策的的基本依据。在一个组织里,信息己作为人力、物力、财力之外的第四种能源,占有重要的地位。然而,信息是一种非…

Python模拟银行管理系统(面向对象)# 谭子

一、系统需求说明 本项目计划实现一个银行管理系统&#xff0c;包括开户、查询、取款、存款、转账、锁定、解锁和退出功能。 银行管理系统一览表 序号 模块 子模块 说明 1 菜单模块 显示菜单 验证管理员身份&#xff0c;显示功能菜单 2 开户模块 注册&#xff0c;生…

核心银行系统 之一 历史与发展

核心银行系统是银行信息系统中实现客户关系管理、产品与服务、业务流程、财务核算与管理、风险管控、辅助管理与决策等银行业务最核心功能的系统&#xff0c;是银行信息系统的基础和核心。 核心银行系统的英文名字 CORE Banking System&#xff0c;其中CORE是Centralized Onli…

银行信贷系统java_java毕业设计_springboot框架的银行信贷系统

这是一个基于java的毕业设计项目,毕设课题为springboot框架的银行信贷系统, 是一个采用b/s结构的javaweb项目, 开发工具eclipsei/eclipse, 项目框架jspspringbootmybatis, 银行信贷系统采用mysql进行数据存储, 并基于mybatis进行了orm实体关系映射, 该银行信贷系统系统通过模块…

支付系统开发

支付系统开发 一、工程结构 pay-common-parent 项目的Maven父配置工程 pay-common 公共工程&#xff0c;所有项目均可引用 pay-common-config 公共配置工程 pay-common-core 公共核心工程&#xff0c;service工程共用 pay-common-web 公共…

手把手搭建Java网上银行系统【附源码】(毕设)

一、项目简介 本课程演示的是一套基于Java的SSH框架实现的网上银行系统 或 银行管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。 详细介绍了网上银行系统的实现&#xff0c;包括&#xff1a; 1.项目介绍 2.环境搭建 3.系统功能…

银行综合前置系统IFS

&#xff08;布尔公司简介&#xff09; 法国布尔集团是一家国际性综合IT集团&#xff0c;业务及分支机构遍及全球100多个国家。布尔公司重点面向四大行业&#xff0c;即金融、电信、公共事业和制造业&#xff0c;为其提供量身定作的解决方案。 &#xff08;产品概述&#xff0…

C语言版的银行管理系统

C语言版的银行管理系统。可以模拟ATM及柜台操作&#xff0c;实现用户登录、查询、取款、存款、开户、销户等一系列操作&#xff0c;代码清晰简洁&#xff0c;注释详细明了。 下面废话不多说&#xff0c;上代码啦。 void main() {//cc22052402char userName[8];char userPWD[7]…