如何回显HTML标记,绕过CMS过滤器

时间:2016-05-04 17:50:54

标签: php html comments strip-tags

我目前正在处理一个被锁定在过时的CMS中的网站,该网站是从非合作/无响应的提供商处获得许可的。我需要添加rel =' canonical'标签到每个页面,但管理员WYSIWYG编辑器被证明是一个痛苦。当我切换编辑器的源选项卡时,我可以查看代码并输入我自己的添加内容,但是当我单击应用时,当我回顾编辑器源选项卡时,会过滤掉许多标签。

值得注意的是,我对PHP的经验非常有限。也就是说,我认为它可能会使用与strip_tags类似的东西来评论或删除他们认为会成为问题的任何内容。我试验了一下我可以从过滤器中学到什么,并在下面发布了一些相关结果。

例如:输入

<?php
echo "<h2>PHP is Fun!</h2>";
?>

在保存更改后生成此结果

<!--?php
echo "<h2-->
<p>
    PHP is Fun!&quot;; ?&gt;</p>

并输入

<?php
echo "<head> <link rel='canonical' href='http://example.com/blog' />"
?>

结果

<!--?php
echo "<head-->
<link href="http://example.com/blog" rel="canonical" />
<p>
    &quot; ?&gt;</p>

因此,为了变得聪明,我想欺骗编辑关闭这样的评论:

<?php
echo "--><?php <head> <link rel='canonical' href='http://example.com/blog' />"

?>

导致

<!--?php
echo "----><!--?php <head-->
<link href="http://example.com/blog" rel="canonical" />
<p>
    &quot; ?&gt;</p>

我的观察结果是它将开始用所述标签中的注释替换任何打开的php标签,然后查找下一个>并使用它来完成注释。 <head></head>被完全剥离,任何内容都被遗忘。

知道这一点并看到输出可以任何PHP向导设计一种方法来击败评论和剥离头标记?我知道有两个头元素是无效的,但是从我的research大多数浏览器都接受并继续。

0 个答案:

没有答案