代码执行漏洞
原理: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修饰
第一个参数
第二个参数
第三个参数