preg_replace的/e漏洞-ics-05-攻防世界
类似于ics-03
发现有page这个变量,通过?page=php://filter/convert.base64-encode/resource=index.php
通过base64解码得到index.php源码
在hackbar中增加header,进入这个函数
这里需要用到preg_replace的/e漏洞,“/e” 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码进行执行。如果这么做要确保 replacement 构成一个合法的 PHP 代码字符串,否则 PHP 会在报告在包含 preg_replace() 的行中出现语法解析错误。
所以可以构造
?pat=/abc/e&rep=system('ls')&sub=abc
得到目录
打开目录,最后发现有一个flag.php文件,通过cat命令查看文件,在f12中即可以得到flag