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

来源:互联网 发布:网络词pc是什么意思啊 编辑:程序博客网 时间:2024/06/14 11:00

这次我们要给前一篇文章写的简易“入库”留言板添加一个功能,实现初级的过滤

留言板代码请看: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>。


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


下一篇试试宽字节绕过环境的搭建吧,敬请期待。

1 0
原创粉丝点击