PHP代码审计技巧——敏感函数
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()
- 【PHP代码审计】 那些年我们一起挖掘SQL注入 - 6.全局防护Bypass之一些函数的错误使用
- PHP常用技巧总结(附函数代码)
- PHP常用技巧总结(附函数代码)
- 加密部分内容(敏感信息,如密码,用户名等...)(PHP代码函数)
- [置顶] PHP语言代码漏洞审计技巧笔记分享
- php代码审计函数
- 审计总结:PHP源码审计敏感函数字典
- php 代码功能性技巧
- 提高PHP代码质量的36个技巧
- PHP正则删除html代码中a标签并保留标签内容的方法[原创]_php技巧_脚本之家
- 挖洞姿势:特殊的上传技巧,绕过PHP图片转换实现远程代码执行(RCE)
- PHP技巧:php过滤危险html代码
- PHP代码审计实战之MetInfo CMS
- PHP清除HTML代码、空格、回车换行符的函数
- 简单实用的php分页函数代码
- 使用php判断浏览器的类型和语言的函数代码
- Php header()函数语法及使用代码
- PHP的require()函数可以在一行代码中多次读取
- php 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
- php实现的DateDiff和DateAdd时间函数代码分享