PHP代码审计敏感函数合集

PHP代码审计敏感函数合集_第1张图片

PHP代码审计

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

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

PHP代码审计敏感函数合集_第2张图片

PHP代码审计敏感函数合集_第3张图片

敏感函数

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 代码来计算,如常见的一句话后门程序:
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() 打印对象信息时自动调用

你可能感兴趣的:(web渗透,php,mysql,数据库)