您的位置:首页 > 编程语言 > PHP开发

PHP代码审计技巧——敏感函数

2019-10-19 11:25 260 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_33441500/article/details/102636539

PHP代码审计技巧——敏感函数

一,预定义的变量[常规外部提交的变量]
除$_GET $_POST $_COOKIE的提交外,还来源于 $_SERVER $_ENV $_SESSION等
二,regist_globle=on(未初始化的变量)
当on的时候,传递的值会被直接注册为全局变量直接使用。而off时,我们需要到特定的数组得到他,php>4.2.0 default 关闭。
三,变量覆盖(未被初始化的覆盖的前定义的变量)
如 $$ 使用不当,遍历初始化变量,extract() ,parse_str() 等
四,变量的传递存储(中转的变量)
存储于数据库,文件,(如配置,缓存文件等)
1,文件包含漏洞(包含任意文件)
require,include,require_once,include_once
2,代码执行(执行任意代码)
eval() 字符串当作代码来执行
assert() 调试函数,检查第一个断言是否为FALSE。(把传入的字符串作为php代码执行)
preg_replace()(preg_replace(/“xxxx”/e)) 执行正则表达式,实现搜索和替换功能。/e修正符使preg_replace()将其中的replacement参数当作PHP代码
create_function() 创建一个匿名函数,并返回都独一无二的函数名。
3,命令执行(执行任意命令漏洞)
exec() 执行一个外部程序
passthru() 执行外部程序并显示原始输出
proc_open() 执行一个命令,并且打开用来输入/输出的文件指针
shell_exec() 通过shell环境执行命令,并且将完整的输出以字符串的方式返回
system() 执行外部程序,并且显示输出
popen() 通过popen()的参数传递一条命令,并且对popen()所打开的文件进行执行
4,文件系统操作(文件目录读写漏洞)
file_get_contents()
file_put_contents()
fopen()
readfile()
copy()
rename()
rmdir()
file()
move_upload_file()
5,数据库操作(sql注入漏洞)
select from,mysql_connect(),mysql_query(),mysql_fetch_row()
6,数据库显示(xss漏洞)
print(),print_r(),echo(),sprintf(),die(),var_dump(),var_export()

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: