常见危险函数及特殊函数(一)

一、PHP代码执行函数
1.PHP代码执行函数-eval & assert & preg_replace
常见危险函数及特殊函数(一)_第1张图片
函数 eval() 语言结构是 非常危险的, 因为它允许执行任意 PHP 代码。 它这样用是很危险的。如果您仔细的确认过,除了使用此结构以外 别无方法, 请多加注意,不要允许传入任何由用户 提供的、未经完整验证过的数据。
2.常见危险函数及特殊函数(一)_第2张图片
Code
需要被执行的字符串
代码不能包含打开/关闭 PHP tags。比如,‘echo “Hi!”;’ 不能这样传入:’’。但仍然可以用合适的 PHP tag 来离开、重新进入 PHP 模式。比如 ‘echo “In PHP mode!”; ?>In HTML mode! 除此之外,传入的必须是有效的 PHP 代码。所有的语句必须以分号结尾。比如’echo “Hi!”'会导致一个 parse error,而’echo “Hi!”;'则会正常运行。
return 语句会立即中止当前字符串的执行。
代码执行的作用域是调用 eval() 处的作用域。因此,eval() 里任何的变量定义、修改,都会在函数结束后被保留。
3.常见危险函数及特殊函数(一)_第3张图片
常见危险函数及特殊函数(一)_第4张图片
在这里插入图片描述
输出结果
常见危险函数及特殊函数(一)_第5张图片
在这里插入图片描述
执行结果
常见危险函数及特殊函数(一)_第6张图片
在这里插入图片描述
在这里插入图片描述
正常调用
常见危险函数及特殊函数(一)_第7张图片
回调函数
常见危险函数及特殊函数(一)_第8张图片
二、包含函数
常见危险函数及特殊函数(一)_第9张图片
三、命令执行函数
1 exec()
执行一个外部程序
.2 passthru()
执行外部程序并且显示原始输出
3 proc_open()
执行一个命令,并且打开用来输入/输出的文件指针
4 shell_exec()
在这里插入图片描述
常见危险函数及特殊函数(一)_第10张图片
四、文件操作函数
常见危险函数及特殊函数(一)_第11张图片
任意文件读取,写入, 删除往往是上面几个函数受到了控制(当然还有其他函数)
读取:可以读取配置等文件,拿到key
写入:可以写入shell代码相关的内容
删除:可以删除.lock文件而可以重新安装覆盖
在这里插入图片描述
可以读取百度的内容,输入一些
在这里插入图片描述
执行之后的结果
在这里插入图片描述
五、特殊函数
常见危险函数及特殊函数(一)_第12张图片
bool in_array (mixed needle, arrayhaystack [,bool s t r i c t = F A L S E ] ) 在 h a y s t a c k 中 搜 索 n e e d l e , 如 果 没 有 设 置 s t r i c t 则 使 用 宽 松 的 比 较 。 该 函 数 有 一 个 特 性 , 比 较 之 前 会 进 行 自 动 类 型 转 换 i n a r r a y ( strict=FALSE]) 在haystack中搜索needle,如果没有设置strict则使用宽松的比较。 该函数有一个特性,比较之前会进行自动类型转换 in_array( strict=FALSE])haystackneedle,strict使inarray(a,array(1,2,3)}的返回值是真。
常见危险函数及特殊函数(一)_第13张图片
输出提交的内容来判断他是不是字符串
用intval转换
常见危险函数及特殊函数(一)_第14张图片
将变量V设置为1,来判断变量的值是否在数组里,与数组的值是否相等,输出结果
常见危险函数及特殊函数(一)_第15张图片

你可能感兴趣的:(常见危险函数)