CTF有时会碰到这种类型题,故在这里总结一下,日后有新的操作再补上

利用条件eval($_GET['exp']);

限制条件preg_match('[a-z0-9]/is', $exp)

CTF题php

php单双引号的区别:

单引号:php不会读取里面的变量,作为纯字符串处理

双引号:PHP会尝试读取里面的变量,或者反斜杠表示的特殊符号,例如\n\0

处理字符串变量替换的连接速度方面,php7前单引号会快些,而在php7之后就没区别了,详见

php正则

膜膜膜膜膜膜(这东西真的是奇淫技巧)

利用条件eval($_GET['exp']);

限制条件preg_replace('/[^\W]+\((?R)?\)/', '', $exp)

CTF题php