5.1.10. Sink¶
5.1.10.1. 任意代码执行¶
eval
- assert
php 7.2 之后 assert 不能传入字符串表达式
call_user_func
5.1.10.2. 执行系统命令¶
pcntl_exec
exec
passthru
popen
shell_exec
system
proc_open
5.1.10.3. Magic函数¶
__construct()
构建对象的时被调用__destruct()
销毁对象或脚本结束时被调用__call()
调用不可访问或不存在的方法时被调用__callStatic()
调用不可访问或不存在的静态方法时被调用__get()
读取不可访问或不存在属性时被调用__set()
给不可访问或不存在属性赋值时被调用__isset()
对不可访问或不存在的属性调用isset
或empty()
时被调用__unset()
对不可访问或不存在的属性进行unset
时被调用__sleep()
对象序列化时被调用__wakeup()
对象反序列化时被调用__toString()
当一个类被转换成字符串时被调用__invoke()
对象被以函数方式调用时被调用__set_state()
调用var_export()
导出类时被调用__clone()
进行对象clone时被调用__debugInfo()
调用var_dump()
打印对象时被调用
5.1.10.4. 文件相关敏感函数¶
move_uploaded_file
file_put_contents
/file_get_contents
unlink
fopen
/fgets
5.1.10.5. SSRF¶
file_get_contents()
fsockopen()
curl_exec()
fopen()
readfile()