您的位置:首页 > 编程语言 > PHP开发

用HTML+PHP写一个留言板来进行XSS测试&学习 第三篇(简单的过滤标签功能实现&绕过)

2017-04-09 16:58 716 查看
这次我们要给前一篇文章写的简易“入库”留言板添加一个功能,实现初级的过滤

留言板代码请看:http://blog.csdn.net/qq_38219257/article/details/69808812

因为是功能示范,暂时就写一个过滤<script>标签的简单方法

这次用到了PHP中的 过滤器

filter_var  期中的参数FILTER_CALLBACK可以自定义数组进行过滤,用户可以自己构造函数,定义过滤规则

function convertScript($string) //自己构建一个函数,以字符串作为形参
{
return str_replace("<script>", "", $string);//返回值中进行替换操作,将<script> 替换为空
} //
fwrite($log,filter_var($_POST['user'], FILTER_CALLBACK, array("options"=>"convertScript"))."\r\n");
fwrite($log,filter_var($_POST['desc'], FILTER_CALLBACK, array("options"=>"convertScript"))."\r\n")

就我的理解,filter_var后面的 数组进行了关联这一过程,将前面的变量作形参传给options关联的convertscript(),取得返回值进行关联。

把这段代码加到读文件操作的后面即可以达到过滤目的

那又该如何绕过呢?

因为不是循环检测,所以它只会过滤一遍,我们可以构造<scr<script>ipt> 或者大小写混合(甚至在这个例子中全用大写就可以绕过)如 <ScrIpT>。

就是这些思路,没有什么难点,如果有什么错误的地方恳请大家指出。。

下一篇试试宽字节绕过环境的搭建吧,敬请期待。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  XSS php html