来源:自学PHP网 时间:2015-04-17 12:00 作者: 阅读:次
[导读] 参考 http://www.2cto.com/Article/201208/148301.html帮公司做一个企业展示网站,直接百度了xdcms模版,感觉样式还是可以的,看了一下后台功能,也不错。于是就采用了他,开始搭建。简单的处理了...
参考 http://www.2cto.com/Article/201208/148301.html 简单的处理了一下前台界面,公司的网站就发布了。 出于惯性,百度了一下xdcms 0day果断发现中招了。。。 直接拿网站开刀,直接爆出了 管理员账号和加密之后的密码,,, 网上的东西果然很蛋疼。。 开始,有点懒,想把密码设置复杂点点,这样一来即使爆出来了,也解不开。。。 后来一想,自己真的蛋疼得不行,root的权限,都没降权,存在注入,,,还不管。。。 果断分析差生注入的原因,漏洞页面 留言板,漏洞产生原因,后台接受post传递过来的数据,直接把数据写入到了数组中。构造sql语句的时候直接把数组的键名当成了,sql语句的条件,没有结果过滤,变金数据库中了。 解决办法:既然是post传递过来的参数直接成了5个元素的数组.调用count首先判断一下 post传递过来的数组的元素个数是否正确,正确的话继续开始判断数组键值的内容是否为空(这里的判断一定要把数组键值带上判断)。 代码如下: 实际使用的只有数组中的5个元素,通过count判断元素个数。通过empty($fields['name'])来限制,数字的键值名字对应。。。 简单的就这么修改一下,能起到作用,有不完善的地方还请指导。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com