在ctf的web方向中php特性是常考考点,本文试图根据ctfshow总结常见的php特性。

preg_match

  • 数组默认返回false

  • ^是开始,$是结束。
    /^php$/im代表多行匹配,遇见回车换行,每行都该是php,空行被忽略
    /^php$/i代表视作一行,必须是php这个字符串的大小写
    

strpos

查找字符第一次出现的位置,没出现和第一位出现都是false,其余是true

intval

  • 默认按10进制转换。$base设成0后根据变量形式自动转换,开头0x或0X按16进制转换,0为8进制转换,否则全部按照10进制转换。

  • 传入数组时空数组返回0,非空返回1。

  • 会忽略字符串后面的字母,只要前面的数字

md5绕过

a=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2&b=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB_%07%FE%A2

file_put_contents

第一个参数是文件名,第二个是内容。

赋值优先级大于and优先级