file_put_contents()的妙用
2019-03-18 19:47:20
今天偶然在群里看到这个骚操作
file_put_contents()第二个参数是可以传入数组的,那么在存在某些正则校验的时候,就可能带来绕过的可能
例如有如下代码
<?php
$text = $_GET['text'];
if(preg_match('[<>?]', $text)) {
die('fuck!!!!');
}
file_put_contents('shell.php', $text);
如果我们想写入一个php文件,正常的话传入
text = <?php phpinfo();
会被正则匹配到,无法写入
如果我们将本段代码以数组的形式传入,数组会强制转化为字符串,这样就绕过了正则的匹配,达到了getshell的目的
虽然出现了Warning,但是文件是被写入了的