代码执行漏洞
原理:web应用本身过滤不严,即参数可控,导致攻击者可以通过恶意请求将代码注入到应用中执行。

挖掘思路:
1、用户能够控制函数输入
2、存在能够执行代码的危险函数

常见的危险函数有:
eval、assert、回调函数、动态函数执行、preg_replace函数

案例:
eval、assert


传入参数?cmd=system(ipconfig);


回调函数call_user_func、call_user_func_array、array_map
语法:




或者


动态函数



或者


preg_replace正则
重点:$pattern 存在/e模式修正符修饰允许代码执行
正则表达式语法规则->/表达式[修正符]/
(1)普通字符作为原子
preg_match



preg_match_all



(2)特殊字符作为原子,即需要反斜杠转义



(3)通用字符类型作为原子



(4)自定义原子表作为原子



(5)限定符


pattern1


pattern2


pattern3


(6)边界限定


(7)反向引用
匹配日期



(8)/e修饰
第一个参数



第二个参数


第三个参数

